From nobody Mon May 25 21:16:02 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=1779487956; cv=none; d=zohomail.com; s=zohoarc; b=YMmdRXqfmhVA5npsFKSGg/2IANjDeShS721Myck9hi79xPE6yi9qC+IVwCIgPxGHTMjT99SGWLeO9Jo1QNmsjx29HeHn2ADI/HgZE0vC/V1tWaTIahY1L6W/s5ryWDOV7OnwaykmmPMKO0XYsuQvL608P/U7Umvb/VlHMyROKRc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487956; 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=sLV/++7GOPxan22wzPWZY8hINYyGhnOVQ+d4bHJxmhQ=; b=jwNnKYKCEZW2cUmjKSJMcloOos7Cqy1lFkgKYB2V4TxDMLzug7C1REOl7sloGibUcogR9ZQEG9auKqUcGJV6ZY7JdB3V9e52IxeYr8Zd+Aq282lmsLw0O5XI839+LFLIlul4pNLchggXfZfHlnRC6Fl4AjXp3HrtaH1gc+1JU2o= 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 177948795642150.10054278598045; Fri, 22 May 2026 15:12:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxd-0007eX-IK; Fri, 22 May 2026 18:03: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 1wQXxY-0007bj-SM for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:12 -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 1wQXxW-0007gQ-Rt for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:12 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-36a3aff302aso2206488a91.1 for ; Fri, 22 May 2026 15:03:10 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487389; x=1780092189; 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=sLV/++7GOPxan22wzPWZY8hINYyGhnOVQ+d4bHJxmhQ=; b=q43NpuPhbm8QehiLh1+2eg2d3Ub5dmbAocHJJvsz2Wgxxta86JeR+U4xDgLaDCCuI4 /YXYGMKak9fy3lQJvdz+GtnM4vDZrspVBJi666T2yQ2dlSWXO6wChsHXOAXilEwEQts/ +0C/nsGQKujgYeNKo3qUIoHcgebRNse7HtmhEE6JjJaSlJxmNC0NmU7vlINZtD8b38ks pZin8sesGwOJqpnP4hbHOTzHyXr+xObDoNsd/1q+9ohFNKa3v+F++lObfQTUTVaReXd6 STqVWU9u6B0sgFwfE9n97e5LUzV/ZQmEmc1ovBs8PaVWB5NR41GzjMaPJ0tZ7jNyccxw XBAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487389; x=1780092189; 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=sLV/++7GOPxan22wzPWZY8hINYyGhnOVQ+d4bHJxmhQ=; b=LASHSAJib5G408FDzrqgzftq8bTtMOOruBIVoZYznRDeF7R6MVCm2t467+mEEA2J+G ibjNsrCP/bk+mSuOG1zGOoOIV5+UphRITd21jjpUORzXvxU7v6z013O+2RnuF8A1AW/d YAdqdJLlQpEU/fzOYW6yxc+HvjFgYhRYAcZ/z1Z+iFKzFWrCHLnG5jrAFGCTgcIibFuV aNMPYhOq2ZU7x+WAh89rbyZu0Dl31ikFsGRUDi+Di1ah56tQMc1aao8ay7YXjfd+JliE 8Fbt2IW3yTfXzpqUyCQEXtcc2/gbrXiN1Si0g44TNuV19dN9NM9GosPamwW/fkO+xtHM LHFQ== X-Gm-Message-State: AOJu0YwQUsnhQC/dc/qyU5kZk7RZCz0UPFYDSUktFut/8XbY5UNBDoWl TI2NMdXT4Ik2lPwHTmfQ6Z6xhmmbzfdhwGzaI+/3XM+VxSDJkqW+D5djvAT9bOjpKOxEM2Hk1oD DnMTl X-Gm-Gg: Acq92OHZLmNRBDe7mbD5ID4kJbeu4b4UAyLZoZLruHKal0c/XbQB/Zxb/pDgaoXkcI1 gfY5eMMtX7r3i3kbCZHqVhb7uEtqNdAcmFZuYdYj/pvxWeHoxKhW7Y0dM1MrSplajZa8SPnnstQ rJFk12JkWw/00LZa/bTKr/+IvBVF0zWzdC7CBvkDW+KyAh+5oU/wAGWRuVLApa08dadRIaAYs77 RvofV5D8D64c3/HIJ72GFnoRAKlQj6vE61nBH0pi+yCEywG5S9Yn6MTS8q9H4dMkkGmD+qW10Gi iqsmnTFpFLBiyQ7kObcD/0jwwu/gBtXea6H5f8URspkSa6EScHOXnejnlUWfp29KfkpUCiX3e5I bDmyKSv6//ktKfgG8VKID88M82Sr4ILCG9mo8uII9CjHNy8flFlTacUf4TfHbM14AUSS1BKBByd 4UvE1aKQpYx8CRANrreEErPN8XfhGD X-Received: by 2002:a17:90b:4ac4:b0:35f:b572:ece9 with SMTP id 98e67ed59e1d1-36a6741dd7dmr4973096a91.5.1779487389281; Fri, 22 May 2026 15:03:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 01/64] target/arm: Implement ID_AA64ISAR3 Date: Fri, 22 May 2026 15:02:03 -0700 Message-ID: <20260522220306.235200-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487957489158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 9 +++++++++ target/arm/cpu.c | 1 + target/arm/helper.c | 8 ++++++-- target/arm/cpu-sysregs.h.inc | 1 + 4 files changed, 17 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/cpu.c b/target/arm/cpu.c index c47b70ac69..e1ea41fdc5 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1747,6 +1747,7 @@ static void arm_clear_aarch64_idregs(ARMCPU *cpu) SET_IDREG(&cpu->isar, ID_AA64ISAR0, 0); SET_IDREG(&cpu->isar, ID_AA64ISAR1, 0); SET_IDREG(&cpu->isar, ID_AA64ISAR2, 0); + SET_IDREG(&cpu->isar, ID_AA64ISAR3, 0); SET_IDREG(&cpu->isar, ID_AA64PFR0, 0); SET_IDREG(&cpu->isar, ID_AA64PFR1, 0); SET_IDREG(&cpu->isar, ID_AA64PFR2, 0); 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 Mon May 25 21:16:02 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=1779487960; cv=none; d=zohomail.com; s=zohoarc; b=NbpqHD0Odv5WL2nG/NBsH5+pBNa11RN4ZOIdPKmWH9jdqBm4k1GjMPPNVZexDBEb3iYMsSDkOAXso6to+RG/dxHBlzDVWBdfjdECIkXNM1gIAkyxoLY8fA0JAyjj25oenpnFlwnwOSxPR1OF04SexsmiZODxoBQTJi1jCO10oGc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487960; 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=9KAmMasghQ2k1SbDkxCbc6Hed/eJmrx7WdrZtwajox0=; b=NzuTUeblYqvn+np++y35YJ4algK/MXbasvhQkR1W6sPAVrginslOJnWHAIdPf191EbKfG/wPXQ25hV+Cm7JYsFIXtJpnWxHQkOzT0bnVymUjyjo406dIQSmhG74/yi4vIep79Uw8PiiWhccxTACcOWrAndp79H23a0PmuAof0J0= 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 1779487960854492.7850626491853; Fri, 22 May 2026 15:12:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxd-0007eV-Hj; Fri, 22 May 2026 18:03: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 1wQXxa-0007cv-L2 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:14 -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 1wQXxY-0007go-K2 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:14 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-3697c35eab7so4706352a91.0 for ; Fri, 22 May 2026 15:03:12 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487391; x=1780092191; 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=9KAmMasghQ2k1SbDkxCbc6Hed/eJmrx7WdrZtwajox0=; b=QGu2RGN/vrTIYuNeyS4RzY2HThnu2yRGCHGDa7mVfC6ZvhqHPrwLkdfWp3B+c6clxS 5yrimbcsCLt1r5pa0MpTaVDItN9JNpXHZmzGlEFABSXFPZAKduS8pnWT5NkquM2cC7F1 zbRDy0CsJYQ1CktrkZP0Sj0OZqqqHv1VLRTND5R7piFvk5b6QwcI4rDV6GIfKekj40bw NNgkrFk3NlsIGCAjqEPxic50+FMIUKi2M5xfjURtGjqm8D7OQGvkW65H7z/B+mWM060s FlsKzkJ4+Y5YLIYda+LJWY9XC4SXRZ8rC4Z7x3s6CvqrpLASu2B17HQflIAKbZ46zywf ilsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487391; x=1780092191; 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=9KAmMasghQ2k1SbDkxCbc6Hed/eJmrx7WdrZtwajox0=; b=fbFxHv6uyRq9jd2Jzy0LNp3IHvHsAWiQeoxvYM3jVuFTtoWxexfX/uOSjcXGhMnpNC yOFd+u9px6QT5sdvqr6YXUhxx2xnCZ1x2gq/G3MMtUz53UlJx/c2tTYHyMSLiqTzDmhR hrssEfNIzzU3fjmiE8HrbLSNX9AC0AJcQCF8SbelPYgGUk9NlsOW37PVvETSXP9tOK8p i5VaqgmG6X1n29VVB/aLOcssRPoAkTexbf5AClWTmBdXzqKeBdzJv/HWKboYxbIMBDrv wSpEAMkgl+3QrJO877WgRntdceGFzCeG29KsoRVCW4Iz/T9G0WcyadYqZScXACJBZ04t RuaA== X-Gm-Message-State: AOJu0YzRQ+76Lr0/jtdmx95Ka/0Z0dymkpnCdNk6mgIrcHrLESKpwaEj NZgwoVeW/Zi3L1T+z6RT+ukPvLg6YPK/vsyTmb4N8WWkVFeZ9Q9WktK/m/4slJXm5uXPBvIWFCd uCTDt X-Gm-Gg: Acq92OGALGfJ/ZelSeqI3ZHc9bJnUhLO4hjncT692GB0udLuQbGgBGhYeKDQpiV9hzG uq/er5bfiWyTcVTtZjvO4W48c9hrr0Ia6et/74CfoS0oOnUcwziI/S56vDfgtRP3VZ+XPT4HLzv TexqO9vNHlnDADH0bWjgPJW5OcHEZEy9X0dDBcIiRxDB0MVkyqaUy3kgKS6MqM/R2zkQ0/rCpts Q8eAVcFHrrf/ViRBXbOvw7gaLCZi9Sb2Fg+6ZxmUVEQWgcm9SeIvhg8xUX3nEU+p4n3h74Ai1xn 99byI820F+zeD4oP3widfvllfwZ+ZF2aSztWb6bJygmk9/lcjz+AwrcXs4eBcirNTErJOF28HxG 8FyilEmCyNDKZBfIDKdftOqealFdlHjED2t07usCsmOl9ez6/iy2VhrbSxw+dGXxcH7RdoZUcqs ZvsDrAb0uSv1YrygJtRtEXLr99TLUy X-Received: by 2002:a17:90b:2f83:b0:369:e4d4:7460 with SMTP id 98e67ed59e1d1-36a6784d120mr5539229a91.21.1779487390804; Fri, 22 May 2026 15:03:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 02/64] target/arm: Implement FEAT_FAMINMAX for AdvSIMD Date: Fri, 22 May 2026 15:02:04 -0700 Message-ID: <20260522220306.235200-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487961563158500 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 | 38 ++++++++++++++++++++++++++++++++ target/arm/tcg/a64.decode | 5 +++++ 6 files changed, 76 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 3e3971db3f..b5f953ab0a 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6475,6 +6475,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..cb55a2b441 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,40 @@ 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. + */ +#define DO_FAMINMAX(NAME, TYPE, MIN) \ +TYPE TYPE##_##NAME(TYPE a, TYPE b, float_status *s) \ +{ \ + float_status local =3D *s; \ + set_flush_to_zero(false, &local); \ + set_flush_inputs_to_zero(false, &local); \ + 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 Mon May 25 21:16:02 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=1779487490; cv=none; d=zohomail.com; s=zohoarc; b=Mz63TedTDgXMHemQmHE6TAiE9B/jbxIcgu2RialUfFJN2TBGgCARo/xnT+g+YUtJHIGKLyp/7ld/ojrRUHpY2ftjS272fMWbo/qfBFDGz0Hu9Sbq59heJzWmK5nAvof11kJwVIA4L88ie2hFPtVUJhBTpHd9IU7ycUGfya2XIt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487490; 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=hqxv3/s9g9FpdtmiuZfUp6vXRNrDfUsFtVIgK8Hro8g=; b=V4b3Z7JDR3NlDnnYf2UmSH1zi1blQMBO1Pny2ZB5RN9it0NegaOR4H3BRFcVw7A8POGe8HSXwiKIgLeTqp4EQX8a4UDGpiPNfoTbI/ju6DB/MEbgm7+TDvC/LtAXdwddH6NsVE4p51GFabIsJ+U5KL3JmWxPzA83n1h0ckdoZs0= 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 1779487490138130.44329312102343; Fri, 22 May 2026 15:04:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxe-0007fS-B7; Fri, 22 May 2026 18:03:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQXxc-0007di-6P for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:16 -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 1wQXxZ-0007h7-Ba for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:15 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-367c2a39fcfso3680204a91.3 for ; Fri, 22 May 2026 15:03:12 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487392; x=1780092192; 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=hqxv3/s9g9FpdtmiuZfUp6vXRNrDfUsFtVIgK8Hro8g=; b=pdWm+ipCJa5YlkMR8Dw0h+BFBybCqMU6eGkXjJdK+8YsvJqvcRneA4AUjmaFb44AmT X5L3muCnGSXUlMN0vVLdVv7ER2kBrB+BjvvVNI5/r/qz0iZ54SNg8AYjgvn+lReJaUVi ZPd6LCts37UrTcsqaN2aHGA84H/4+r0xUhdv8wTZOzr3lJW7MudYHQmix2DPEE5zfXsZ g+0r8OBrG1R2mKMlkYtgTaCHWo3uMzRLjwFWuaO8w1LLSdsuzEWGWZtqpZ0kSpGAUFcD EViHSkcaJyntla/m8jlFxD/UUxtHD/Inm/o2Mz8i/dpD2/1zZE8mQSt5TVR7669uAc2h SRiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487392; x=1780092192; 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=hqxv3/s9g9FpdtmiuZfUp6vXRNrDfUsFtVIgK8Hro8g=; b=bSIjfA9RrGAcycgNViRcCHjS37HJovgrnXyvTAsp1rQ3q9yUtBPSr/1QnmjoG9sXTy 42dyQK3aJygFAUnS9kp/mmcIsxDsLaD5zuVRcnE0xRyZBmjkhOFHdLWyst8+eYHXTxpT Z4s+CD/c0Vp6aGobjjCRKFQAo3JrBubcgTjenOXgN82dUYNFVbhspHSE2vFm4Qt7WNRL vy4/ze7qXWE9uf7vo+rqLfbXw0usP+xPMA3LXXRALAtca1eHnRRLLpjtvwl0JuQ/r9mS K2pelhkTGB9Ahj+5PZ8ib/K8oNwUPrvEsnbLIUSpQ138JLKQVbz/vdjNJKpFKzht/H2A /9NQ== X-Gm-Message-State: AOJu0YxjsVKQyIwFALwxHYaGjzuyskIDIuzXD8wJl9QRV6B72GOTJy4x ttcDxxLRA9zBEaKpQyxyR4/RNrKUHi4Y5KqXO+5EU1SBFuxsz/FZB9Q8eAiChnfvJUFyjI3NS4z LCreS X-Gm-Gg: Acq92OHHgSeNen7o7S3IYSolH/fCrg0dOvDLwRxOTlgMFL0YRoRBaMYWQexuoEBDT63 m4qUSrR1lAZoVHUX4glsQxhRHblMV7TgZ4v4RqccHSwuTYd28QpCYcksBMWSzVr4BBTcmV67Xyh JNYoc01hKRWdchB4m6RD40wFDcd3ZMbk7YQzjAeyjL/WHq5bmBEFC8/8A2oPhrNqjGrWfRcZLet L4Ps6XPFIqGY4Tr4z5aE0UWQ8EGTYzMBVurUybnlVUnfq1eRH1U5SmARJdRJMfudcUSjxahyv2D NVQ+MsiT8L/H96hbkFwTkAmyB5pWdQIlORiXx7+iSpzBUjB2mlrYKXSMPWPNOD1Ki2lePgleFxz 3ZMaVimZNc0tC3a3yMHSogbhO5lksiNpeVX8+wUh4eo9kD/bdlaG+F4dIC69LtQu8L9x82MXgsP BbdcvWRpuGQfelXw3hsO08Zd7p9K3k X-Received: by 2002:a17:90b:3807:b0:366:2e1f:393 with SMTP id 98e67ed59e1d1-36a676291d3mr5724200a91.21.1779487391703; Fri, 22 May 2026 15:03:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 03/64] target/arm: Implement FEAT_FAMINMAX for SME Date: Fri, 22 May 2026 15:02:05 -0700 Message-ID: <20260522220306.235200-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487491531158500 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. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 Mon May 25 21:16:02 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=1779487535; cv=none; d=zohomail.com; s=zohoarc; b=WMOzhG+8Kyz1AuXSiReUIFYmlrOAp6+kzmvgwFSnhnQc/iwy8nxfaSbUuTOAMQGt1iWLdnNMB77Apa1rB8Ubm7tgxOkTnqdZCu97XjzfrfA6IWNnKLaAntnT2QxAGlxwV3hLLMA5/2HOnUCOvG/qDF2457VwgcuN1kNtZUjlzYQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487535; 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=GaNcSBy+W7zw8Y6jf8tkpnAcLzTXgHre4SrWOgQk2Rg=; b=SM429AxXW7psKzSugcHaehxyLNgZk7npTdnw7/ErR4bRDD0q1d89vumm3UQaTw5gDUKIifXfw0SuPM+nm0FxCQscASetW+1JXkLnDm6fI4wMbUWR9fGlBOE4kcCfK0QGSXcfjvNQACesn+OQFR6CdO1q2oL6d108uEcmM5oZyIA= 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 1779487535695965.9072216704297; Fri, 22 May 2026 15:05:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxf-0007gF-H4; Fri, 22 May 2026 18:03:19 -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 1wQXxc-0007ds-Bb for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:16 -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 1wQXxa-0007hf-3f for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:15 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-365eecc5885so7239956a91.0 for ; Fri, 22 May 2026 15:03:13 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487393; x=1780092193; 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=GaNcSBy+W7zw8Y6jf8tkpnAcLzTXgHre4SrWOgQk2Rg=; b=sKa7u4LUtWtjbutn0is+YBQbhPFsacQwPVxkWo/oCW+L0mW2aCwXBC4Qz8NHQoRTEh htjq1QaXuxgM2QnbKddEGN0AaSg6SPn/r3Oy5LoMSDbP4CMaVbru58Dkev38I4hd2JLk UvkA+ddgmSvJTV2j2yIMnf6iCh1fG9ZRooTbHzTgUcmrrXaJxuQMfr6Xw2Ud4mA/wE4r 1VYv4vMSAZBqo+Hh1fUfxmLKqAn6rNQUH2TEaioTTU6ITTlK7Yl17K9y6AxGXUKbGHH1 u2hH2tSkO8gxxkN9Ujv+BH+r/38EmrdBafB1nz8DRuUAKTs93SKVjec5z4YCrR7DBT+o kTtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487393; x=1780092193; 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=GaNcSBy+W7zw8Y6jf8tkpnAcLzTXgHre4SrWOgQk2Rg=; b=oLHH94LM9QAs5YzS9lVxQyOnoTSV4KlzGHgoaSj3sRHzFsubLFGluwYvsAJP192MPh SrDqTjrBamcI8ZVzrvxxZzQXECbA8TfctZWELmo0VzYTllPFtO8XgpRBJqDhIBHQUroT qbzx051RAaHzRtXOzhM0JaFu88LZxhVDvAXfNvcEK1pKrPEap7+NeI9n0lggWivUebQ0 9Z64eQ+ESInRgqoVyv8XpxEG8W3Rjd5MLEX6K6vlKX3t/A1Q+0Vad2DAsTwNNMlanvGO XTm75eEcXUN0Dxfzfw9kuWIr/eOSEMssYMKqASJDojNN7qrl4UF1ap6me4M1NcetXk7s /gVA== X-Gm-Message-State: AOJu0YzN/b3RzUlxzFRE+jJKGLOr+v3/cC9Fq2e1NX3HN+csdVa7EJh6 khczNLc6N0YaSV694fluICl4pQ8yxlSQQSw5E3RRKUwaDxJ3wXc2qzo/INcxYYqd23UOYirpFDG CzNbr X-Gm-Gg: Acq92OG91U+qlXVW4/G71z2JoLDt2euHmpM0c6rKz6YttF/sBfitrNkWgN6c8/o34sJ 2K0Gqi9gyLqqAAvb7cVILNOXeCkfgxcTyA76wKys/9SITX5s0Rt5qAIf+vu3wtObwuvTbrg8I3/ Y6xVjgku9CwtSF26DUsuv3OUvVWclJaiD/TdTD8zZKCk40i7QBVZXPMfOBuC0OEu+d5Yu+lv9Cq Am/wDH7bMaJlTozjd+7wkV/dtMKux3CiGq2APu7L0rLxZMbat/WhqcUL0kHazk/dOXDMWtQT+Xy DhFBSWGDlaE6Zpan2/rADcQkfB29+emO+nt6mIpG0NEyC2eLRovsqhUgI6iF3ViWOJvOrlKkD+1 hUOJ4CVjZqaEMmKP5zsceCtBBGcJTrybCQEC4TklB2mFiCmLNzea+YcBdOE5PxOuYgApnPefCf9 Com5Z3Ru9Y0c8D/Igqs9ok6WQQNC0b X-Received: by 2002:a17:90b:578c:b0:368:b176:c5a8 with SMTP id 98e67ed59e1d1-36a675ff469mr5339565a91.15.1779487392404; Fri, 22 May 2026 15:03:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 04/64] target/arm: Implement FEAT_FAMINMAX for SVE Date: Fri, 22 May 2026 15:02:06 -0700 Message-ID: <20260522220306.235200-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487538019154100 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/translate.h | 7 +++++++ target/arm/tcg/sve_helper.c | 8 ++++++++ target/arm/tcg/translate-sve.c | 20 ++++++++++++++++++++ target/arm/tcg/sve.decode | 2 ++ 6 files changed, 62 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/translate.h b/target/arm/tcg/translate.h index 77fdc5f3a1..273399a732 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -872,4 +872,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_STREAMING_SME2(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/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..e08802c816 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4254,6 +4254,26 @@ 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) =20 +static gen_helper_gvec_4_ptr * const sve2_famax_zpzz_fns[4] =3D { + NULL, + gen_helper_sve2_famax_h, + gen_helper_sve2_famax_s, + gen_helper_sve2_famax_d +}; +TRANS_FEAT_STREAMING_SME2(FAMAX, aa64_sme2_or_sve2_faminmax, + gen_gvec_fpst_arg_zpzz, + sve2_famax_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve2_famin_zpzz_fns[4] =3D { + NULL, + gen_helper_sve2_famin_h, + gen_helper_sve2_famin_s, + gen_helper_sve2_famin_d +}; +TRANS_FEAT_STREAMING_SME2(FAMIN, aa64_sme2_or_sve2_faminmax, + gen_gvec_fpst_arg_zpzz, + sve2_famin_zpzz_fns[a->esz], a) + typedef void gen_helper_sve_fp2scalar(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_i64, TCGv_ptr, TCGv_i32); =20 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 Mon May 25 21:16:02 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=1779487454; cv=none; d=zohomail.com; s=zohoarc; b=VsV4Dm9M1HSHsTw1DLFX1KNNcH7+Cep13KzVAkl/dBaaXoIOb1Q4fzB78Be08n7p25dyjavviXuCoxWjAjMyOeZ5HPD3oAz9wBbA17WECEXPtI4a6oouto9vSS3NI+yKvWZkH1R5QQUf7cJMATwHErnz+Sz40dV47Ao4NDwxcIA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487454; 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=KmXdq9ODYKdXc+cytYsEHp3t3uaJcjbDztZoPpOdHO4=; b=ebKMb3rbOTcOcfBZkFuGLGPbueX8DqYp6ZDL1OXXgKGjWYwF28rkUHb7Ks8EBlTn3iATO/jFhBknWG7URe1osGbUZtBi5Gr8BLj4Y5Mv/+8tHcXa3h7L7nSMqaxbn+GBvYwZGxazkLRTWNe1ZTN01FgP21Zyw5IPoXDHhNWLPos= 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 1779487454772491.528786129697; Fri, 22 May 2026 15:04:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxi-0007iD-C7; Fri, 22 May 2026 18:03: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 1wQXxd-0007en-E7 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:17 -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 1wQXxa-0007i3-SH for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:17 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-36608b2f2dcso5101246a91.2 for ; Fri, 22 May 2026 15:03:14 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487393; x=1780092193; 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=KmXdq9ODYKdXc+cytYsEHp3t3uaJcjbDztZoPpOdHO4=; b=gSrALNNz3V42YHOiAR73vjFvgcYz2eZ1ZStTLcDfWkGb5wFP78fr95oV+UiGU1LNsY u1x9lMCzbYNwZE0hGdPUvolKCWch/vTTq5xK0fVV/Ro2Pmbem0LCFan9LeaGmJ/cprS1 etG0Jn2MIY8PjgIfeS7wg4oHsoawuC9qGV4rGEPdyOqlGs6fZdI61nVwpN8/4Owcd3L9 mW+6o98gi12Cj1RNZ4Lx3MPrztzlTcDKZAKpbNmV24DEhtI5rclH8oCqZ7f7DPLGAtNQ j9RIid2xEfJhmx+wVB3YxlLAKZCiXfOGIghpgy2rmOpqPvYlfn9n9nPW7RiFZHwciZ/2 MJcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487393; x=1780092193; 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=KmXdq9ODYKdXc+cytYsEHp3t3uaJcjbDztZoPpOdHO4=; b=Oy0wLagEirOmjHVitQgoDEuwNqNh68A/4uOK4PyiZNAt1filntTo3CZ9s55yLCCf5Y jC91yDI2RddOafcu2plDJ8BfUBC+Q03vxgXQKM2hL2tKUcRLuyZJYo5Hh+vrTNASC59Q ab/jK+Ew3K0kiqGAzWV/pCMd+Nylq7KX3difVEdFqPZmh2eeee6SsBeMVU7qZU2PaGuB AMstmLABn4AclhC6cj5ZkR4ter/cDdLB4oRqrfbkG1U2rOZF4e/Pb57T6SYKH8ZJB+h3 DBsOmvK1Z7a3NORg5UPrOwPf3EDpHBbDQOOc0JXnN5zTcKry+3KUvP1vNrlemDXNVcde 7+6w== X-Gm-Message-State: AOJu0YzAPTAJN9w1aKgyArLcBAWVzMzUxEd3bCrHEBN7ULqTlRmrpGk9 1TjFF16SHHJWdhjQ17wPuejcl8fkwO+rgliZ/GnhlTXXwdaQsoTnnKgRUFg/VJmeJUMw8Kt/xW0 PBjNZ X-Gm-Gg: Acq92OFQUd3FueSzn5DHgHFvNfHt0f7VEragrDtU63tvZxKQHgOvTCumq9a9zkbh3oZ XXRu+GbPPfxR/fHgD9pSvYW/BDyMtlwYOl96gNTmAR1WCua391Pn1VZfiwq7ZA9ClCB8axu48Oq cnuUo079u1ZXLOi9H8/sq6d6PQkaHrZnAMR84ljdtIjwiudDfJ+eHxM8u1R15/8It7QTi41yisj lNxlyZRP7W61s8jIBFuIuDvxqKTpDlm14NeWv5k0TOcuJ81jQTdV1qvyg+P4EXEOlbw6ZNRbKR1 YltjtEVIagtYIPiYDmjKEKgW21uUu/rDo/WQ1tXNK0ZFuVngNieEewSaFscKmB8IMEd3jDfBA0i 2xZ0yP6l51/W8LpNy1ugIZexO+ezAzEb3Knp8Ynp+jnwf86mphk3lssikp41zqpCdQU6udvQsvu GH960QRnq9zNseQqadB4U/Gom1rws/ X-Received: by 2002:a17:90b:5188:b0:369:7421:b36f with SMTP id 98e67ed59e1d1-36a678479d6mr4947674a91.21.1779487393331; Fri, 22 May 2026 15:03:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 05/64] target/arm: Enable FEAT_FAMINMAX for -cpu max Date: Fri, 22 May 2026 15:02:07 -0700 Message-ID: <20260522220306.235200-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487457110154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 4 ++++ docs/system/arm/emulation.rst | 1 + 3 files changed, 6 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 3af5a37776..c5ffe21368 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -218,6 +218,7 @@ 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_faminmax, ARM_HWCAP2_A64_FAMINMAX); =20 return hwcaps; } 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 Mon May 25 21:16:02 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=1779487455; cv=none; d=zohomail.com; s=zohoarc; b=aZ0G9EVYHHJ7dHl3N+q6bW/o1sHpJYjPOb0/Sz+9qCJzP/GB72O/BTxIhlObCpUyw1Nw5VJ9d/Hm4hiPXXtog9OREBmnyWd75mlD5MYceQiBSI3aHfFPmm4uiDBni1WJBIZaZTVCPhDFyqCjP+kb6uc5En1ULcl58NWrnEgSyNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487455; 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=oXKbBj9vfpMdfO5YBe22u+O5v1SBtZ+DB85h6LpJLhE=; b=Cl6lXY3QaSwnNMaw8wE3Cv/UqoOzejMGPlYVpIBuXuoDY8uKC4MGmdQuZHtSEWLGOJL/ErPPjPOsP2HK32gxaSD1IpfL+gWEjuB4ctArOsKGY6Kpoe/YDz0oZ/YBW/lDDym6gWn7eb48YiiX0gHzZ1nQPBFhS0UuGgdXyP380ag= 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 1779487455254431.7092599756935; Fri, 22 May 2026 15:04:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxf-0007gg-Vq; Fri, 22 May 2026 18:03:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQXxd-0007eo-J1 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:17 -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 1wQXxb-0007kN-K2 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:17 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-365eecc5885so7239967a91.0 for ; Fri, 22 May 2026 15:03:15 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487394; x=1780092194; 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=oXKbBj9vfpMdfO5YBe22u+O5v1SBtZ+DB85h6LpJLhE=; b=Bl0J7k7q3pJJFc71ZuL4yfsoAfJz7o0U4RZICURsE14NUVn2uyNdMI5tG3DTXjMq8r RZ6Ukl4LSyTpkGrQD6neTJIkWFi9XIEL/y9Niu/ePiL1dv/n2IYADeUypKWlP4dSw7gF lkPO7m00aobImVQgeIvbr00X3KD/xj6CyYDmy0wxDdKv+QIYcILIRxAmn1RRqZqg/WN5 DzOcTETLAIto/QaCU2AjuJ62WEjlefZwwa9eo6YDBh391BTKpND9Cd8aqn/8wHMFY+C6 OplzGvBwHAhoDIND6SDYu5KWBajPuD4zUoVZV5MgVEcZjBPthQmeMIXe9BgeHFlen2ih UYfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487394; x=1780092194; 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=oXKbBj9vfpMdfO5YBe22u+O5v1SBtZ+DB85h6LpJLhE=; b=MQq54xfdP/zKvVU6LlfExqO9xX+R9dPhY0OWl2IGclfYZVdKBG1iY61G9T2HUP/R4Z Vb/u4iDEW6c/0fKkWtczoRdflEiHzrFXv4clQWfPEw2eli6Gikxpc0E1vzWML3vcwBXp nD5e/WCWgHzcALFSW3GkHvCXSlNFzA2kzhFiXWYhLCxG3Tx3Ra6DRelTW+H/3893WVFs 4WmR/w1dmok1VtCnJ/XFzfd7FVNrw2YzrcQ9rStRdFfK/cPyzxLXr3CYKrCdMbvWZ2sK W62K0NEWdZ8laSqjypU7qs9SnwC3jYTV8RTyGmaCkF33kP1MIYdlT8pPkYoyCnDi2ABX nbXw== X-Gm-Message-State: AOJu0Yy9sevhboJfJjt1pfPEARS970d+5lEcxvuL36dt7yDM3F8xRwV/ 8cKmdZsbgIPaCww2c8/R7Cbi6qmLlY7tEf5MqVQTdmwKB2tgNpmeExbZO5ciZBAeHxJ8kVkrs6B TE1V6 X-Gm-Gg: Acq92OFkdSvbqaKuDGWkhaZcHpgXB1XqHPbfoq4KR0jAzxA9KDKzX5eJiTRIPDeKNqe JXEd/NKEWBK0jlq7I4r3XuFASJh/JiAaT4t6Me+2iR6fj632cNWNP/TPMqgL8t22brWohYUNhDM npZDuNgrL40Fiub2sO/lVuroUph4uQh+ujMvzC56jIPcaeJq9MaqFeMZPrARJEHPiWt29Ni/dkZ K4F5W9ZtdMka0qWxaBvCsScAqeHcMI92bkVTlae/BZyrK/adS7sRV14XlUFnnEJV1Oa5gKXnV+C p+YTSlPiNAVOMQ9xXzbczA814zvDru9Phlaeq7cQ/aK+attUv64Wq9Eb7hfVa5Ye7izKTxWTsQl k8qhj6RhSLrdZK99AYfPso9KLFS2AsQlKFMMwDli5OCmEmbZgk7cFE8ULXoNz+w9tvyrXipUIhC 1neE+MmqfHfqSyeNvm7pvKFBCd64QV X-Received: by 2002:a17:90b:3ecc:b0:369:d7c6:450a with SMTP id 98e67ed59e1d1-36a671e974emr5645988a91.0.1779487394101; Fri, 22 May 2026 15:03:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 06/64] target/arm: Update SCR bits for Arm ARM M.a.a Date: Fri, 22 May 2026 15:02:08 -0700 Message-ID: <20260522220306.235200-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487457455158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 15a13b9292..3c2bf476b2 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_HACDBSEN (1ULL << 61) #define SCR_NSE (1ULL << 62) =20 /* GCSCR_ELx fields */ --=20 2.43.0 From nobody Mon May 25 21:16:02 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=1779487752; cv=none; d=zohomail.com; s=zohoarc; b=ZrkogOjIh15ktzyI88hk8GtZfBdzsZQ6W1vDaj09GpPBDviLgHReXFcHEfliaPl479TlhioBy2wuNAmfulRv7X11s3tPtyUn4yLWYoBSQtz7C4Y059gMe4bnNJ4x9q/SzJplkLlruhz+4F3CoypPdntti84G4EKwjfYim/TPAdk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487752; 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=Vt3sSjY1I9K5JlXMwxo57mQwm/lZo1Hult3fBAaDzUE=; b=V8wz7y7IHLqO20zWolaHSlJALFbLze1AICVbGho0at18pIlOtQCqBzX3mhN72QmlP+xPY7OYM5zEbci+Wa7qegjl9ZQDrT2uUTw2TDTi5drSqav7Yqo7NLg2Y7p73GjDVMawEFLvXnw05GLR/jsIhK+0aeY1Bmw4VtIeyowirQE= 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 1779487752860805.2913481032595; Fri, 22 May 2026 15:09:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXy3-0007l7-3s; Fri, 22 May 2026 18:03: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 1wQXxe-0007fX-90 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:18 -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 1wQXxc-0007lf-6Y for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:17 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-36a35e4eefeso1935203a91.1 for ; Fri, 22 May 2026 15:03:15 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487395; x=1780092195; 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=Vt3sSjY1I9K5JlXMwxo57mQwm/lZo1Hult3fBAaDzUE=; b=YyYGq2SkU9u6RbUsvM+ObAWUJWncyqLJME5J484trp1nnc/OTiyQqwv+nPRtd9FcKq esUBGuSrs5ccHXh7FtaIoUgqsi+hCpyWdZ56+CJr7SE4F3j8AgvVHKqXQ8Zv+iMiI57N Quku55EPQVYJ/j44SoYtr1K8AzPOVku6vZiI2RicCbl1svp1/oPoGjJ3Sau7xs+qmE0Y eC1WR/Xvkzzf9GlsA1wifebIGGgOWlby8QDrP9yL90YI2l2cKjD1PVeR7fQUAAX15DyK xblzH57RUA6bzlaEmdJPSr7ZjDnSUQIhklIkrDxa/wyE8jiVQ90670MmD1OrZh+xgrJC oBtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487395; x=1780092195; 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=Vt3sSjY1I9K5JlXMwxo57mQwm/lZo1Hult3fBAaDzUE=; b=ozaWsBuX6gDbbX6YkmGK8EkxPvVdMuufafrxZa7776Y/Yev6aXFCncXH+eaTCd2Av7 t3MjT4OvOub3w+Ycchx5zZThD5Zxv+i9Uk5pHW3tUk3dzZ2WUAo6axl2yR3RLWeRSbeN K0bIcMyMfeDUBAfA9VePL6p9Pmbck3wxfJ2MrkRa988QjugGpvSCVRDnuYVE50B+O4Kn XXVrQCuwGcqB5Jqnt7aI88h8c/zMguXuve0ij5xDAbeNKA+19j5bGSsGTNvedntq2d1a mrUrWRM6y3EYoW/byLJID/Fs0bWrXCfNIPt0aqq+5d7g9SzAWPCr6yeURF82VhUUZ3Jh y/Yg== X-Gm-Message-State: AOJu0YxUHo3ItJ2MgaA7pfdESsV09ujw8w0ZjB9sPlPWQOtx/099hyHw Z7NjjVHf/KGzTkQGRuoHHPoW06rANAtdbYxUIiEr+e/hf2hhzV6Zz36NYjeAkvF29p85ZPLJr1Y nUAry X-Gm-Gg: Acq92OH9kj/wL3M+JkONFU4vPoUoQLSU36kDbe3wFAkFuJWN66gGgOmKIdBD0mTty7R EEHo3iuShPmamMflC0wqPK2qKltg5U2fyFty8mzA5EYxbiEOak05H+CKPF1JIIQmFnKvemQczvo xgBmAnCY1Ym2sKgUzT4W/F1RQ+QMDJ9/yfEYtRh7N0uoBoUQfzFkOYd7K76JFz5IckWM4/uAWER Q5xtDgD1fYJOTnRcqfeqjOU9lsbO1uGIj5HYthTEbeZimdDqLs0yqfYxyfrUQPckRD9QA4XEouv gR/GDWfeFRPIxaOgCFE3j/rMvxd+BdbhaAMW+NDnbsujtX4e9jiUDnifVehPZLF0uLchJ1HuIXA g96kuC+51ZzWb5Ry+5scJ8TZGue3xBfT5ibO2Gx7j9HLskMvj/aQMQ503CzuOjkeCIml2ZsMXzO bXWAtbGDLn81SZeHUml+QWj1FycAywXNnIjL550fY= X-Received: by 2002:a17:90b:5687:b0:36a:31c2:d402 with SMTP id 98e67ed59e1d1-36a67471bf6mr5657973a91.10.1779487394750; Fri, 22 May 2026 15:03:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 07/64] target/arm: Update HCRX bits for Arm ARM M.a.a Date: Fri, 22 May 2026 15:02:09 -0700 Message-ID: <20260522220306.235200-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487754778154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/internals.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/arm/internals.h b/target/arm/internals.h index 00830b1724..27ff94565e 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -258,6 +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) =20 #define HPFAR_NS (1ULL << 63) =20 --=20 2.43.0 From nobody Mon May 25 21:16:02 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=1779487490; cv=none; d=zohomail.com; s=zohoarc; b=WaRRnWlZ3In35omOTFJ+7wKV1Byv6VfOb7mi6znBj7Pz/VBsFBvrvwbdUme+nfrZ+BZJd/NfcQXC6+yCn6k9CzPGykH82d4c7O4yfFrZ9KqxTgEmKOrFrH7GqKNt/ez5ND73heAbkPH2fE/mk+UWX+pQkBodLamQbRRPOTG3+04= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487490; 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=kTHwFIKNbfg9dWrGI6eyMMIObXMK3F2PxjT0NnTAeSI=; b=SjQjqGNK6ZjHBRyE5OamwCuBtsTBBVtUsqUcOTCPzVN8GMSGequyiC5gbnkOyFPiejt75TDlBnKlzk1WExX34s+JfbLY1SQta0U0BTUWV5O+UGDZ1DptGFVUu3jtACqW8/shN0oJiWZuLkKMa2nbnzSLVdWdlZgvdPL6c1ddUFI= 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 1779487490284527.3289418244435; Fri, 22 May 2026 15:04:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXyS-000858-8t; Fri, 22 May 2026 18:04: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 1wQXxf-0007g1-3p for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:19 -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 1wQXxd-0007nP-2Z for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:18 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-367d88b9940so5145157a91.1 for ; Fri, 22 May 2026 15:03:16 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487396; x=1780092196; 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=kTHwFIKNbfg9dWrGI6eyMMIObXMK3F2PxjT0NnTAeSI=; b=HLkXjfSUK3ilcn+eqMpBM9wrvHS1xCRACMorzTyFEZScIA7YDeCiRVskAIHn4+KqkO YZOtZsIQCtMKYvF+9v0yT3jYR+v99fdA8h/VLGq2i04Z9lp4IVkq5QvEZzyMZUATolVW fVvnQP+Ag4NibiOnLflnGGHXBNlBqZDmqVy/FF254OUWKfs2UzRRSmSbpAKEwSsiJXQW 2Cl1IJQqoA00J6knrP0KQ6K0agtoAgZzZ8fQZojbVaCrusg/MFioBH3yfjRh6BartmJ5 Ik0OTmToY4BuSk4cc4Z4m5s/4onnb00a729WxihFVfKp/YBDER2mbhnGXD94Kp3WoztL 1/1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487396; x=1780092196; 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=kTHwFIKNbfg9dWrGI6eyMMIObXMK3F2PxjT0NnTAeSI=; b=E34sw9YOBZBqv8BRRgxzuvtiVWcKQEOnk4lHh1+qPW00UOwaLIiD80twVs7YABykLV iV+qHbFtpg8TSSLsJnUlC2GLaGDu0XYmYfMLj96xArZDqbfeT6W/1JNZZ8DSQXVrz5Dk WxRGGbpr/kkp1l5m64UjmXkBu6Ywp2aqqeIaBLWpxy0FQzcTTQXF9p0LEPNlmOLCuGWM 5urcm1BUBhZirN9DxXhGE9gXld+60InnNK7rpmw81m4fKMhXz/BexXkaEQ1hbkDY4Tze XvcDYtwe6mIojlU9FtnuEEhhpO/B371bGaN0BHEGGqdU/rOyyk84p8dLJNtyNZHrzeuA yIOw== X-Gm-Message-State: AOJu0YyBljEifTkfws6DlzjqseAkZu3/15WlX8XIHB3Pk+nOrsCog6Pb 41MyWc71Md6vih0qkBeMggUGe1MNoqjrTveTFqJrT3/OZyHm0Aw9ExQIcvJVL+bB1rtQe6xWqFI 9Pxef X-Gm-Gg: Acq92OG3P3fHjy50qPzBImjVT6RY47TrzUJa8w+ux2DdzSWAPTPGfGCT6GJeXm7Me1e 7rvMxSxKLq+436lKIl1URuIKx2xbLCL0fW62bPz0R9ZmNzezp3cqb3i5CujwHtVVw59Gjdq1Hk5 WjZkTQSk53/6x/46cHUCqJWeaf6hdi68uokrm0NkIXN6tk7B66MDLBVP3ucoWTbzispB6KpgLbh P7MCfLP6NTtTKruy7jpSg3fU9/mcAQb0wi07tZE5r0WdlLM8UPF/pMcxU1DgGbyuO8hhgwdVzfi z8dr0DqGZcOFVSY1S5sAHvgDHh/tI034aF0KjwtQ3uGsTYN7x2TnYScEig6J57N7fA7V/kBGJdg 5bf4kUA40bfi1OczMCPApbLsm1++UBmL1Hm+gSFqXhD3wO4oJtbcJPWShbuTzoaSnpCnlfdtrRI MjVrAOLIpnfN+tFzjZqREKOUjAmWhnWRp774sVYc8= X-Received: by 2002:a17:90b:4e84:b0:36a:95c:7613 with SMTP id 98e67ed59e1d1-36a67732b8fmr5589676a91.10.1779487395534; Fri, 22 May 2026 15:03:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 08/64] target/arm: Introduce FPMR Date: Fri, 22 May 2026 15:02:10 -0700 Message-ID: <20260522220306.235200-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487491571158500 Content-Type: text/plain; charset="utf-8" Introduce the special register FPMR and its fields. Migrate it when present. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 3c2bf476b2..a549a50b7d 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 27ff94565e..4d04e35ec4 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -293,6 +293,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 Mon May 25 21:16:02 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=1779487535; cv=none; d=zohomail.com; s=zohoarc; b=hkrA6A/kTkXXQgqNz2q7wPBmiW8icLXFnH+KoX64kSiZjuKQHpIfZ47qnCjBDpgty48K8Z9hOYIQLYR0lDVaP9qoKi/dYvCQ1Nw3EGDYv4z4rKEkUcnAt+PNRj5W7IZEadH6GENZUI27VwTkyNJBWq/FRBA6IFZANOOHKfAfMQw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487535; 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=mzaEhs95KOVdosdksX5QP/p2B/VwIujPaKiRxVIOAHQ=; b=lR71d+FUaYrWwHY5G7WQywJ/2w/ApFeqrG7JsG7Jbn60DtSDy/xZ4nBlUp7IMK1t2vF5fa0aU/niPNf2lHULqE5DOIesTOkNNVmewqni/thBtsmIeiHnAZL1okNKTmWGipTUlZ3G4fbvJ6mJN042LAsnz+P0ib/6RydqjKL02UQ= 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 1779487535037353.1836709228139; Fri, 22 May 2026 15:05:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXxw-0007jr-VJ; Fri, 22 May 2026 18:03: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 1wQXxg-0007hE-Jj for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:21 -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 1wQXxe-0007sV-Mo for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:20 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-369002b26f4so4442980a91.3 for ; Fri, 22 May 2026 15:03:18 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487397; x=1780092197; 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=mzaEhs95KOVdosdksX5QP/p2B/VwIujPaKiRxVIOAHQ=; b=IcFpxQWiSN+Al6G5YwxfG1WbzrFL3G5KMjYFTY50P1+iVPpV/haCo/zh7SUY6UAc8I swFlYxAhIBzHiz22l9TR3PgK1qlU6FMT0MSOYsfWzu4IL6VpTes+5Iu+MNDjeWev6io9 1b4fp5JQ0ylPnamshINwNbrbgMd/p1LvxDZx/LRdv4+dYGDAMsivmBBjJ3iV4NzOz/Ep cSC8DkxPDOkVDK7WDZQk/uHfmebrBB2YLvWjAN5Ewt9YopXLaOFe2fnEm7MwFCBiDcDj YGyc2KPiO6lsKj9WZ65sZvEBpChl9cXIH2YWpvopVyH62ybDfeSZFfXgBt/seRvV3L6g EpUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487397; x=1780092197; 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=mzaEhs95KOVdosdksX5QP/p2B/VwIujPaKiRxVIOAHQ=; b=Xy9d2s970FjMSg9IuMCuctJf+ix0Ov75WWvUxFSJDTImLLtHceoKeAF9AQ6ElzpwV1 YeB8yFgNnTshNCixP1xFeSOyZDb6RU9jKOfwKLthfhk8pNTycJz+gzwbA0JO7zDAuZPy iN7tqqQHkOwN9WG5feW7eNnZD3csbrxOHMcHJnJzDciFYwKDieIThyOH2ZDm98/vV/wB kFsgIq1ly9DtNDLX02DKzIRVaLBmRm7Gl4fyRkLt/qGkDCtv7nrnGncqtw17n1B6f0z6 +J3ks2z88a616wJQr3/i4p1vMzQxCzBlN9zAIZ/S9/GtdBhUfrPz73eUYNoebd4/RIZq wjzg== X-Gm-Message-State: AOJu0Yz0xMX/buJA20oTiW8yeoXI0r1HNysidE2VRgCvwzk8NDrvuQLg OpsIBJO+07iYHgq4wSjIXFJTP9Cs/9ARBkHcCnXXn5TIWaiPiHkbgcG+4/d3WfegCFrJrwFYYX/ DmlXa X-Gm-Gg: Acq92OHlSc/umdty/b2BmEXQ1UNz3e+XrBa0nQ0IQtykZRBjFeuJEootBBO4Uwd1EuX eaa8dznaLVJbbS48XiI6F8iHfEmUnI4jNa65vL755yCmRyutyxSBqpeIHMe3Ih/bEKWPqkRWEvi wwNazj9hZGYDIyBtM2yzCgpEQb4jD06tU17aJQ9bVCW5hVIo8du1gYPaPfmCLMPYmFGJ29dXkEp N2AvbD6LGkVQ5VRL4Yv86fUIcTZOuJTI3Rryz+ZKeiai3aQGF5YYqn40deXfUzu/FfRguLHq0F5 edC0C2Q1fDgH1zR6AOV94YpTZwomd7/+/VCL16EPFXyq9yfEPozIgQ7YH8eDwd24DnJuHbDW2o5 2L8V9F3KBWo/pLlAH8EcdkE+/vBWIvRhen5sQf6E648IJoyhq3ntHGuUVqOCkK0IoJFQksLGFVU UW1HEPbK1P+ZcXvzaeS/YUMIhuN61+ X-Received: by 2002:a17:90b:33c1:b0:368:6998:b49d with SMTP id 98e67ed59e1d1-36a6772d18emr4896766a91.10.1779487397063; Fri, 22 May 2026 15:03:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 09/64] target/arm: Update SCTLR bits for FEAT_FPMR Date: Fri, 22 May 2026 15:02:11 -0700 Message-ID: <20260522220306.235200-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487535755158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index a549a50b7d..e9e261eb2a 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 Mon May 25 21:16:02 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=1779487494; cv=none; d=zohomail.com; s=zohoarc; b=gCnJUJvr4dl865qTWAbfKufj8VBrB2FAEd5mlEdMS/uQEyq5ZW//TWSztsbJX1UfKTYiqUrFtimk5Idje6UFazcKBZjkTFsqoVxqjXZyiuoRXy/hK6KSA6Noju8KIXz8GUNccJHFNjIPnUrPfAnYWk3yPfWvYun3UXCyZxOsHKU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487494; 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=epi5Db+NEJvAV3yjmIz6G1joTWyvNosrwyck86eF+i0=; b=eYwqWbTTI9bcBSw5K5tSzQNXGl48QUiK12ZcqDMl8FUXel3P13T78CqksTfQ743SRcNsFJnV/pB2QMFzkSeB/O3INixb4sdFi4MIw6VKfiocXj5kLS5ojnG6JhUSL9gqFSQjT68L21jN8gqomT6xcCY0JpSC/fasWLriLbQq04g= 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 1779487494029835.6544898479424; Fri, 22 May 2026 15:04:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXym-0000GA-RT; Fri, 22 May 2026 18:04: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 1wQXxh-0007hN-7l for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:21 -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 1wQXxf-0007vY-Ie for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:20 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-365eecc5885so7239993a91.0 for ; Fri, 22 May 2026 15:03:19 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487398; x=1780092198; 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=epi5Db+NEJvAV3yjmIz6G1joTWyvNosrwyck86eF+i0=; b=PiIUB+idlRHKX+gt2EOYft7FO2uQ7hH+jgkVeNYKqMy8twpPv5653HhzmpBTcuXcxV IhN6h2vWCUlXvwrfn6LmePGbXnbp8x/F5YUXv8JCWWekJjyw/DlMS8im0XaS1Yw5bKr7 qhpVOx9QA1fn6+QSrL6hkmKkoaGFhagNm6hTqCmnyFBJf68h5fSFfV27/lZ/HwXkxak8 wiNvsuci0z2NXbRYvvdo8PmOeVySMSWT54bam/nuJC/SRMjZoWN9zhBZ42gmBbQi+l3l b8BmWDN82M5eusOW9eZk0i3+I3u9rUoo2qbI9xKJX+2DH1nEfrajHIaYApUPuS7YqJRg QmAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487398; x=1780092198; 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=epi5Db+NEJvAV3yjmIz6G1joTWyvNosrwyck86eF+i0=; b=JkXr6/x2xZi9DCtR4Z9d3St/xDnEkQrc1bX/c0af04kXyx7caGZpnMlpyFrWYit75w dGRfd+LBVNNEf+pranizWThRlA3vx6xq82j8RSpWeTylDC/o9HbKVotVYgih78VhuwaH G5WAHKdINkA3Rfbpz19kaLpRoKEwujgLuBJMrQuuWf1aXKggof2dcUrrvkijXBhZterq IN3oQyBU4aezJXkJBf0qmjuvgcj7P0cBN2VstQ7TNXF8KxcV4Ua3ayCfYmI/a1ee67iC 7PSWj8A9d5hPwNyURKW7jS2JcTvYcsk8XwTpUQqp9+TTqRZ9dhbPIUKhlLnDnkkdlqpJ tgQw== X-Gm-Message-State: AOJu0YyeFUkmymIF6oqmWCNbLaZYtgZKgdm+ayhpWfhVaTWEI6QLdk4d GMNq3QWIoaE8blza19yNi78pXuhggUEd2yvhDCyZUJtQ9SetnIUDBF3pGINycZHl9w1g9zmj3/s 64Jh3 X-Gm-Gg: Acq92OEDY/kSKW4NqIxgJ+fTBmIWrghA9Qc1dVgDT2XQIELLPiLMFIHDixit6qZDFGU iROQi1DJK91lbLAfotpmQWllcw9lqGdmt7hU8oGUngHk/dBRs6Li0ib+zifZMAT5gFKRhCOM1QW mjP0xHUF3rgnFu+EuTkaiBCcIh0F8g2QvG4opfgxFMBHFhzTVeDHB2NsJ/sh0SPySXob6OAwbMx VADCPA2OA4ZLcUyXHXwuOXbwaGbGSJGuKYCPEmB5x6wPstRU6C+aVGsHQYhCZKh4w1WJA8PEI+Y 6FQb5aoLWhyh1Hnc6+Vi6nD1bx4VKeVyZHsn8X85Kr1Tk1bpwRRLLgT0ujGi2sRFjsjdcLQclih dNL3ebTGYKssB5NXORQwNIDHf3PZwCq5A4Fhe50wqxRQw8RWCo/rO0r2mlOD1aTjR6TXLNPW7Z2 DSX8HJ58ULnBNcTytMT6qAAbbNkvonQScvepaoUwI= X-Received: by 2002:a17:90b:58ec:b0:368:57db:784a with SMTP id 98e67ed59e1d1-36a67640b16mr4885595a91.22.1779487397980; Fri, 22 May 2026 15:03:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 10/64] target/arm: Enable EnFPM bits for FEAT_FPMR Date: Fri, 22 May 2026 15:02:12 -0700 Message-ID: <20260522220306.235200-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487495580154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu.c | 3 +++ target/arm/helper.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index e1ea41fdc5..84b2cc70e2 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -742,6 +742,9 @@ void arm_emulate_firmware_reset(CPUState *cpustate, int= target_el) if (cpu_isar_feature(aa64_mec, cpu)) { env->cp15.scr_el3 |=3D SCR_MECEN; } + if (cpu_isar_feature(aa64_fpmr, cpu)) { + env->cp15.scr_el3 |=3D SCR_ENFPM; + } } =20 if (target_el =3D=3D 2) { 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 Mon May 25 21:16:02 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=1779487554; cv=none; d=zohomail.com; s=zohoarc; b=enDzfxXEQ405r707yOjitoc7LECO2j3vIh657xi/QLOGmLMWWZQ7DSG9dLcpjfEmfWPD7GzQBCOZaDDDKRybqJJXZifnb3/SYrIlZQzuP6OJR1hhPk3Yx08Nn2qmpRCHH82NV05sI8PuUPDEA5KdBu3KHCY/JRwFICrpjN4ZocU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487554; 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=Rn58yOh3c+VmSSUbLsskLhkkEXYk7fUpwHNTpFVDW6k=; b=RM1mmmo9dynMKZHR1GUGDSaMFMqZpGLqrz1EEuISco+CCjMCxnvMR6Tdu2YSDeqZHBvZx09ugMj5GM2rfKyYtIt/Yn8XcDRuEDdKtHUFpX0a73XUvD8nRan+m4+gNetV7LtrSz2sAc18XWoJth4nwXyXcKMZa4PK/UjHFBpZ8Gc= 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 1779487554144577.4618457573073; Fri, 22 May 2026 15:05:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXym-00009n-6D; Fri, 22 May 2026 18:04: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 1wQXxi-0007iS-5a for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:22 -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 1wQXxg-0007yJ-BC for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:21 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3680540a6efso4398974a91.2 for ; Fri, 22 May 2026 15:03:19 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487399; x=1780092199; 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=Rn58yOh3c+VmSSUbLsskLhkkEXYk7fUpwHNTpFVDW6k=; b=m9xVDbp3x6eHTXE3uCQDG3dSIoj6361WDZ78UhZIgcgu8UyD3q2dP/eFpLOsmPAOFl XqKfS4bUl7hQfkJUl4IiJ2X9cuygxeHbxea/Gb5Jp65UwbcX5aiWxYEkhEKJEpvXgfdI OK2HmtmqmDGyBRqJsBUX7UA8oclxOqRHHcX8FDWK797YCT11mW14ZBov5L2qo5BoffCO qJklujn5ur03Eil+fLK/1+9buZdFzAuDU2ZrZCKpeer+/veP0w2J4Cw7qkiuTrD3wdBQ Z0OjPNxQrr+VJLcMdZVO0fW9LNUI4xOQeI9r91y/UuWl3JWvjcaD3ajjh5WiMYia22m1 S09Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487399; x=1780092199; 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=Rn58yOh3c+VmSSUbLsskLhkkEXYk7fUpwHNTpFVDW6k=; b=Snm3AB7wVvVeEjpPIIARHglh7BJU5maJJMDb57RZr5TdvEcuoy8rzMDYdNNMx/eqyU oBlCm7txZEYiv5ItERz3eGcjphMZvfvOIfICmyMdZXLobHeq7T/zx8lfQPyyzGTitqF2 0z6XAsRzKHML1l/1XHiF5ssF/xOC1YC+DQjjh5UN4rpkhLh8o/EMrRyBuruvrYYjYbtx UK6+vDVw59jTtmJOGCQL1Pq1UVCt3gWMrKCl6APAy3T+FBOxwuQzIax6XJYkH9jx5a+7 t9iaQVzEZf2FToMQTGqdWngzmfPUW/qQHEx3AIUJ75X3ShI4lKvh0rtx6Ifd7U8NocY7 fIQg== X-Gm-Message-State: AOJu0YzbwDMfb3QcfD45hmBaEGLB+QK8LUheoHZ7aQ/cMnGdKo1H/uyS onlTdNszSL56rmIXO/ycuN5plWv5Nx58GEuOMl0lhBji048kb+uEwZq7PRodstZJsqv6mx3072T cvfDK X-Gm-Gg: Acq92OEYU2Nt9N+b4TvI2rtYwLKz+BtJRD3kP+f54QVQk72ZOl/8ReAXgdYJeo1Tq9F ZMB6p75jHqtkz4CEGB+xJBTpYVRkZ0E9aSyzPScSfm2L6rmcZVGflsh7zBBJbDSgRaXf40UlWES YyDpmhgoBc0Hg2Aj9vqQpgW1z6i2xzE13kQhPT39gcCbQh1qElSLyjEU/4paYg46pJRF7It5fTE 7gA/JcmdGVaBGwdIZ6RXZQSvPMdr84su7IJNFboxAxVEeAUSmXAQy3wBoJaC1/jBHXX3akKs+AQ gsTK7gRv7M0xy+Gw3o5d/K82kpwsbLm9NOMb79to7IuUW1hxFcOTWBL/1uaFX6oKzKMbFya65Jh gkINKhdjFquC0F/ZpRY+iGuZtPtA7KxD5yjtZFuRfbYJI6Tog0yL7yiEJIJmt1LPrMv5b50vUWA g3eYpNod2X4NZIhSMYega26prkTA8P X-Received: by 2002:a17:90b:1a84:b0:368:6998:b49e with SMTP id 98e67ed59e1d1-36a6745ccccmr5366741a91.9.1779487398810; Fri, 22 May 2026 15:03:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 11/64] target/arm: Clear FPMR on ResetSVEState Date: Fri, 22 May 2026 15:02:13 -0700 Message-ID: <20260522220306.235200-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487556302154100 Content-Type: text/plain; charset="utf-8" FPMR is cleared when entering or exiting Streaming Mode. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 Mon May 25 21:16:02 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=1779487704; cv=none; d=zohomail.com; s=zohoarc; b=AkJJiTaq6yFRl+nBMXmSFGOcUk/Xv5yX9c2y0KrzylD7urDNl9tyYjYOc//+n2a+9I+M/IdiRcD+MkrDtDNMWVd47FJMhK9D7eHqHv45nvlXtKUxWfPxkZkwhdhJMD4HpDnFh8J9zHhigqn3BdOGx2HnadYOgxcXtcDnHRq6DnA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487704; 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=H5+7YH7c/Km6Z0lmi07jiku/34VE5LjvhNJduDNbaZo=; b=GSZNC0O1f24fi89tvBodzKLxCK9Z577QvUBjlNuAmOqKGA9y3/bZaZ0ABXzntQ8RsGJrpH6UMfpL/RiT8R/77ekCQ+vhG7WIcxSrcN9yb1zen08FDn16ADqcFAUJya0OcT7dXxlo0lqq9R1XxcO0bo1+ymvFCbk4eXdDAcSTaDo= 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 1779487704033640.2046039202423; Fri, 22 May 2026 15:08:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXyn-0000NR-SG; Fri, 22 May 2026 18:04:30 -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 1wQXxj-0007jM-1q for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:24 -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 1wQXxh-00083L-4B for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:22 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-36936dcf19dso3815727a91.0 for ; Fri, 22 May 2026 15:03:20 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487400; x=1780092200; 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=H5+7YH7c/Km6Z0lmi07jiku/34VE5LjvhNJduDNbaZo=; b=wwtUt82Qul0Jl+sYG/0jp+LTXvSrkBfnRd416FoOU5m+pHOlbI0ydluwfSgOLSalmK wKNkCb+7AR2uPWMa5wtWRX1E6iTa14+IOnSLUowWJVbFl0D6rhVjA/405QipcGK+NBfJ ji7LWsI6CXbxRQtT/qbkw5cV1XhaLEuwg8VH4HSnuDL5Bpt3k9HY3Ki1+kzqs2iUfbLq juW9sZmRJ5oaEomYiI6TZv1tylnwLrmk+kYsh7EiNkGbcAmdIfXSbFbn8r1Td1t55ubd pofs9lgJ8CYCOQxa6m3CP/Pzx9itdWfff/+orGq5wuC4o7miZcGTQwHDB5UQNK//vTfa vI3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487400; x=1780092200; 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=H5+7YH7c/Km6Z0lmi07jiku/34VE5LjvhNJduDNbaZo=; b=UgckRycM5VFXMDd3pnQ1iLlmlpG6c2A0e2JVjxRc1NHgYl2+8FAB4niDVIEwMnSO6q czeKhSJFpea54OUL1OTOZKJRve1W/R4m+7pPWCIdoQKzBFMa1G1Ymg1S5Vyt5NFf18fm ncyFmzZIQ168Hlmkdwya/7mqYG+w/hxRhC09Rtrmklv4C7Hokul3nrt8XI8aSh2LaDt9 GNGHfxaew+ZIMcVpv61VFD7H2SoySCs5GeeYHYxm19tVhDu6K4/Wo/qB/3BUj0i9wusU ii+Jl7srfCOwGS6MKA934hInMwbV+SFU/iYApis2E7KPZbw/s0aXqXT9sj1BIPnTJDSG +jJQ== X-Gm-Message-State: AOJu0YwgND9Enq5qJTZYU/QY+ljEzP0wdUgiYVTfQ9KVoQm7S61Ov6f7 vutuuZe21Pl1z6K5Yluy1PTYh7rZn6LY/znRtkUhCqCMwCoakQGcZf/S6qCBsZWznvR6AcFMwUR ECBg1 X-Gm-Gg: Acq92OEigz4EXzN3y2P0j0qmoHtSza1Uyu4zcolpmIwADKKKS0u9JxgV+WO37TnlV6j JtCZ7raB7Sf+/mzcGyb36VTZXnPZz1cV5cIsfwZEIrniODSGWyA9Bpz7k0PkoGiIKuWdm9y6UZl PnAUQanzQ7+ju0TT3AqOu8VBhvT4xET/l2/EcKfkj+2Q0O+7qqtqM+pUG5g97Tm3pD+vWu6C73o 7e4MTyIrKKFuBP88FmSSB6ZCQys/cMLjjelVK1ZYSDYtPrwJYO63FwAHilEoI4U5zVPSXUexFJ+ AhYS1lnXKA3c38rXdY1+anQqNCOgIXx/qi0MQ2MDbIxnJrCzWT2FvOBk9WEFque5dKY7/ATE+A7 8UyPIz1XvPTDs1wXsAPhcZCsgT0PP6NvAOxc4E5PplxGpVmPqbzqvNTxGtW7eSPncYQnxLydW0I PrCKWhlpaUdpQwBy2CECphZNOsYMq7VSrKzVYO8TA= X-Received: by 2002:a17:90b:5343:b0:368:5367:d679 with SMTP id 98e67ed59e1d1-36a6772e208mr4509480a91.9.1779487399620; Fri, 22 May 2026 15:03:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 12/64] target/arm: Add FPMR_EL to TBFLAGS Date: Fri, 22 May 2026 15:02:14 -0700 Message-ID: <20260522220306.235200-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487704347158500 Content-Type: text/plain; charset="utf-8" Prepare to perform access checks for direct and indirect uses of FPMR. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu.h | 1 + target/arm/tcg/translate.h | 2 ++ target/arm/tcg/hflags.c | 42 ++++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + 4 files changed, 46 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index e9e261eb2a..2a93de4132 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 273399a732..9dc0eed630 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; + /* FPMR access 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..794cdf00b2 100644 --- a/target/arm/tcg/hflags.c +++ b/target/arm/tcg/hflags.c @@ -237,6 +237,44 @@ static int zt0_exception_el(CPUARMState *env, int el) return 0; } =20 +/* + * Return the exception level to which exceptions should be taken for FPMR. + * Compare the EnFPM bits in the "Accessing FPMR" pseudocode. Note that + * the floating-point enabled check will be handled separately. + */ +static int fpmr_exception_el(CPUARMState *env, int el) +{ + switch (el) { + case 0: + if (el_is_in_host(env, 0)) { + 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 +538,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 b5f953ab0a..d1a581acfd 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10723,6 +10723,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 Mon May 25 21:16:02 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=1779487576; cv=none; d=zohomail.com; s=zohoarc; b=O5t7Y3pCrWb88Q9AhtSYI5viMSTxCN7Nf5FJY9Sy5wgWF9XyxoJVw/hGxEET/QD8kNebN0fYo0QRivLWuxai1ea1loxRMuIkv+WOq4NWMzxo6rHddhhcHK97ToOqX616nSe+un+Xvzyut9Durj5eLEsjdyi++Mx43Ti661Lqo4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487576; 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=9z+JFOy5VW1L9e/IPMpyMJ75J7iMlDKsJ+qJyg8YwF8=; b=Prao77hGkdoxQc4LOtFV3q1MbCiz2m2EuuEidqKC8AuIqbLYrp7WGhhQ9HxLXIRTrlUN7XAGqheUpvf2KfCdopInDBLyL4d/YuuYoIVNf2YtuY8yE7KDUOrVQcekVI5azwS+8Slx34bjvANl6yX2Rc+QazujxT1cj9iAgr66crk= 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 1779487576698861.8516477037084; Fri, 22 May 2026 15:06:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXyg-0008Dv-5D; Fri, 22 May 2026 18:04: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 1wQXxk-0007jT-Nx for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:24 -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 1wQXxj-00089I-2T for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:24 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-367d88b9940so5145205a91.1 for ; Fri, 22 May 2026 15:03:22 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487402; x=1780092202; 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=9z+JFOy5VW1L9e/IPMpyMJ75J7iMlDKsJ+qJyg8YwF8=; b=DeJbLmPB0IOeNXZbOfD6ZzVqJdxn4u0dykAUEYK3Qr8L2oom1z/jEMzP17G/Qxf7Jc PQp5kcY/DDXE0b1F2JFRq7SyTpUiVEWwJcEPiiXJX71B/8+syks1R49fD3XW4VBEnx6q /LWC04WOotj7Wy++rNoeEYJ+l6M+9/lxYIhYIDFZ1cipY02pGNvI1mhdWycib4zcIdRt x+Y2T+p1ebTLgIMUUXdKckbNKpkvlRQ2pA8f44Pp3N/+ODUfiQ8mANXZh3cvmioAmlJI BSOqWPImvwCocxViSBUUBds4BVm6Rko97Iy9pJcLR9qxjlqdS67NNSltzefk56XoVFfw eO+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487402; x=1780092202; 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=9z+JFOy5VW1L9e/IPMpyMJ75J7iMlDKsJ+qJyg8YwF8=; b=XU5RFy+ssSksY/U0nr37Zhl2sYb0KqFXU5i7QLFY4p9mchGqpxWY8WqlBiYyLJ2YyO vkuTTq5X7/sTNA5sgaHY9JhLZ/ebRKE+9ZQYIOhn7VGCj0P056SbXR495ilrUUjcP5Eb sFLEUGpsk5i7bJ8Rz1Fd0sNA6d0rWcE81hPZtYsjeWOG+ICV00+evoYuT9GGb+1sWE36 AiVs77Nqn9W8Z3tIP29rVKMgPC16QWUrVYOgb4EXJq++Siwb88EvHzIVidRf0blV6hME +TEXcBe1N87xJMa6xsg5pIu0d0Z/tl2HkkAuDscXkevyFXRceuHoHh6K3pPRVeXpwHDS VwOg== X-Gm-Message-State: AOJu0Yw8p17FBXxEdGqmSqj5B5z9iGg5Ff0YRPORszoHgeL2SIjqhOW4 OHSWxmvc7G95/T5f3Ey15xNwrB7/IcIyIT2b4zWBpk0yUf9pT5DIaWvq8WP3mr19ciE2qN67uTL Wn9Zy X-Gm-Gg: Acq92OHMJdPKXwWCokPWfpv3sCAb3QZqVXc9IumzlTpqZ+/vDZtGauYmwDAvmC9xyHi V0c0mvk/OLsUAPMHFBWg+qx6cUyhWA4Lnq1wFNvMzcYP47IZELsXmz0WNLqbOwOk5tgM2SSHmJg +Ygcf1pL/VDShGghXQDgqQimMgguyTmKFqoWuYBLpkHESA4ofx/s0Dg5P88+RzYLTxZLEW6SMxf pEF6crJ7e8Fm4dYXC4D7sUjut+77aQNxic8FGMBof4fP8ny/Z3MbpW7th+MGEOwBCu+z/c5jpBy gXAKNnVUxShCrQH5nkXUNrnYVlVWhySPIlDDFBdr2+nbTy7plbTVG66nF/CBG9xurrQvujOPld0 WlerBe7SjtSb1vrkMTtUbumVauyOmkIfh5Hjbo4h2zh2U0XZ5dkluWTyj81ZapovQU664AQ8tNR JojUBSDZQDi7uxNWPQmBmvvtevtLwn X-Received: by 2002:a17:90b:1e06:b0:35d:9c32:6219 with SMTP id 98e67ed59e1d1-36a67734210mr5298628a91.9.1779487401526; Fri, 22 May 2026 15:03:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 13/64] target/arm: Trap direct acceses to FPMR Date: Fri, 22 May 2026 15:02:15 -0700 Message-ID: <20260522220306.235200-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487578607154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 d1a581acfd..41dd013784 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 Mon May 25 21:16:02 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=1779487950; cv=none; d=zohomail.com; s=zohoarc; b=h5s5Fu8Gr5+2vFhSuROwMawSPBR2dnpsdLlDLpGeY4UbIL1MY+wzMnSjNzWIdEUoo+EeMy79Go0UyPYyoCW4r9/WAQJbfajbQWAvMcGTZYVTWMBwTwtW3lthbCQdx0su2QKgk860QG2iHXZnVy9jgqGgPDwtbCGnQZbNUK60Gws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487950; 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=RAB7loj9VDjSb25aGvzXTzAFpuLmyHB8zFhbthAMQc8=; b=Mia1DcPKKdyYSgLn0kYPxLgdUb7roQKVbTzMiIUyjX8cL1m6wTCkY252YjybT3k094IRVnRlYpQnenIg0Nt6TntDUUgiImh5SdKCJ1FVPK9MJQK+g6qhLoo02Ej/xkMI5nN7yLr3qEGJ2FiTp9uX91DEubk1aUXvFFrTfVMxUEo= 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 1779487950404837.549874771307; Fri, 22 May 2026 15:12:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzH-00025e-PL; Fri, 22 May 2026 18:04: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 1wQXxo-0007kY-TM for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:35 -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 1wQXxk-0008Bx-GN for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:26 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-3664df32e91so8739284a91.3 for ; Fri, 22 May 2026 15:03:24 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487403; x=1780092203; 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=RAB7loj9VDjSb25aGvzXTzAFpuLmyHB8zFhbthAMQc8=; b=ATxMJbSNbCsFcFvqNR6yKFVVW53bD5aU/p4udc4l4yvQhXjsUiDwHHTFybRB3RCqoH ExMTOOQIv+BaOOpLj6i/7dERf3OBonzDnD6Xrd8xrp2sUo1K5rrsKVviKEAj4heORFw5 U18B8cK6StX9H/RomKtCVrLVARYQvXbCOxNB4RNxSwNMTNNVm4Y9FLPnhvj5isE5OLbO 473TBl8ZDCBVu1oJK6C4txbDPMm3zCX+liJMN6Xl1xYTOAsI0iryNg/4o/srUZxEUmNY dJ4ST+sFEO06ww0cAhUWCUyc/h4y8V2MReYdSb7LuudTPvL8iwfVvgyo3e5mkA69E77B 4aAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487403; x=1780092203; 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=RAB7loj9VDjSb25aGvzXTzAFpuLmyHB8zFhbthAMQc8=; b=aSsHOsQooThcUZznXzSwASQjOL69GYk6hV0Lwp7JSnUpSwY30wIku2//QMA0z1fwUN BpMthAFAUEIPMXjsigYkVZe2ZNu4LvflBXgCGZyO3rrJYNmXFenQIrpA7TbkfQoh1Ygu HomcAXvHDa5YhuIxCCen5CtUWFrv9p44YH+sNJsaW6v8W01+s5Jr7t2vhokd5HRbt4yH 2VFYhzVX0FBu+H+FnzyDmFJFFoHpSJ+c5J057SaMfCpwoSTJ01XFqteYTBwI1u2l3/Iv POssTpXqLFwlep2GbJYEP8jz5E4pWsbvBH2CxFYPvuyamZbRQVhi1O4sV3Pbd3k9a97W thQA== X-Gm-Message-State: AOJu0YwDKBJ/FkJa59P6O3s4l024wS3GDYSYuhtc+cARQFXeCH34duNh uBuWmWpDGeiNaFBOZom7xYbjRATZApysf/pCUgvurj6sFRMl02wylpiGV6/50yViSkNpoj1U0Yw T+khm X-Gm-Gg: Acq92OG7ldcjvtPrjgCnYP/liy7evoL1PFVk8HJJNflLBaXKUzJKMEE4w6EhazApHYj ghU2sRFNLRnEPX9p6M//WM1Izzqwjj8DLhA0R7cO1KMpXOBJ+rgNvnYtWf85t55a4KT9JaWN3z7 k6SPDNn0Psiwt8H0TK6wRDOif3JWRqkM3wdB6SdSsHMs8Ez2m+BzVUhFVBzj98ZmhTf80TDSn+L k/6NzrPto4gDIACPSIiUwn0Ew/fZp98DzJXNV4dSV6mR/+Hh9QDClZ9rzdXRa9KjjlQdhNHmi/6 +nLP0vsvRCL+77VkbXP1e0LC7a3iiHpktMB4RfKKURT224z10iWNsKQNO68MHlAkrxVh3zkSnff gdpSgNqz/LhWXOErjvjt6FGYio3kOFaEHlHruck7R5ciHKShcRbmcsBdZpLr6UpD/F2x66Mge5Q j8k8ZLH2k2W2hAr8NpzWNh14V+sQBV X-Received: by 2002:a17:90b:3dcd:b0:367:bb47:9fc2 with SMTP id 98e67ed59e1d1-36a674221c3mr5676622a91.2.1779487403116; Fri, 22 May 2026 15:03:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Pierrick Bouvier , Peter Maydell Subject: [PATCH v7 14/64] tests/functional/aarch64/rme: update images to support FEAT_FP8 Date: Fri, 22 May 2026 15:02:16 -0700 Message-ID: <20260522220306.235200-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487951525158500 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. Reviewed-by: Peter Maydell Signed-off-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- 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 Mon May 25 21:16:02 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=1779487918; cv=none; d=zohomail.com; s=zohoarc; b=EL1PmDUoLbmgs/8of3c9+eQRrzdnvcnP9Jjh3MUtSBtjynEqMcTghXNKuemAKwAvaAcP4LZV/QCeF35Gr2wfwoPP6jSnLK9GjM2TO97Uk96JvUN4H8DIREiGuF9ASY1QufAqC3otwwDUGZwdE8M3bUbnAilQR+DQrL4GsDFSUC0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487918; 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=eX9nT6P6ieYs1JPdLRJX+B2w+q8WWuzFbgrsBLUu95o=; b=b0DmR4mEwytaOGb41+G4iplJWiaofUk4ilBMHHsu0ULuVcg/lVl9mxcCuKhrl3NiG9pHmRcSoH8+8bbK6aXHB+dHvbaH+Ah7qr9n1Czkx/DMlnOFxfsc0MOd/WYKpVZCt4Na+ag6QIxqCNFtdxuO0umdWQrb49fdiDrd6rOUY8w= 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 1779487918670442.43980625831216; Fri, 22 May 2026 15:11:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz3-0000eh-2x; Fri, 22 May 2026 18:04: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 1wQXxq-0007kf-MY for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:36 -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 1wQXxl-0008Ds-VX for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:29 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-3698e34a567so6988158a91.2 for ; Fri, 22 May 2026 15:03:25 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487404; x=1780092204; 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=eX9nT6P6ieYs1JPdLRJX+B2w+q8WWuzFbgrsBLUu95o=; b=M5/fxxyRbGkepskaeAjAMmLKnHINrNTelLH0SPLez83EPyockyTkLJpr+2U3ILOt6Q iVX/ajBblg3uSvTBnKoDjMuXyGaiummgZSnrwxlQOH0AsLF9SKz0smM78hMF+NHYjEyB GQBAWmPIfSqZ3CnckfeL+jgiPyUQZFMpYIKew2bcxT9fHmg/aH6riUiOhZtDJmxOuMoB pVSFDUNqFoAnMWkqdmiHh4QEwd+scO9GCUpNgHdxc5bIYNNaRt/Qjn33nGhEthuf5m6x sqM/wWtoxJfY6sX/rtdERzM+7/msN4fzqOc6PP+eWCAwYUJ4MZSs3sqT1gakEPnUSp6D ohgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487404; x=1780092204; 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=eX9nT6P6ieYs1JPdLRJX+B2w+q8WWuzFbgrsBLUu95o=; b=qhdliMsBMppI4j7Oy04psOi+hw4Q8yMVe/vtGb4ezoilHtTmyPhfPdSbMOi9ZRTZ+W FkZyAxN581rQtZISda7Ik8r/OXR84e3YINyEJA8OD3aJb+zEpttStGHC+jFuOuOMH/B8 iYcR9rSu1w1CpA6wThoD5MbxquueOiJ2siGzOp+6QSIktGKjqs5M7NVW5lFThvUjxU6K FyXfoBUJT0dYgyXydzLUqscySVALVjUnybFHMrl6E1u3eVFH5oVHORM9xSN6Jv4JburR Ai4P2w4CQh04GiYxtm6au4JcU/yo8GddSZ1YHP28Se3gNnn1oCUQ6o2x2YAWqWP7Dksk XW7A== X-Gm-Message-State: AOJu0Yz89URGLpdrsTLrChO6AAt4NxPm48hEsX3PEEEuHdAiCgazMFAN AXvqnO/R0MrMQqG4gpKCkaj1p3roOIVuw65BZpk3vFv9IV4hx4+vhz+szeUW8PxUJcDywG3rg3m xtcOA X-Gm-Gg: Acq92OHN1CbthpKIsOzElZ6xcTqpRjR3xc/aPyudnze8GVv9801L5FvyGf2IBfymFGB tRmzI5qr1DQtD5gTnKnkvtHziaA7cLLfYufTwvAjcdcQtQfDb6r4kzG1EHUuuRU0Hg9G5oE8OIP 0U3WXhBzkoegq9FfLNIcCxjA792dU8Jr713DFxmawK2ReN8hFNDhKhjzc6maS6LmRf4Rc2YeVUQ zCeKZ6zUjC7fkMwQ3wdR6+fuoJRZ9ikSnTU42WnXh57/O0kcnm+JxjujhFpHoIXZT4IO97gtcj+ AATL5fvGjx/B4XWQWxQWyYGTWfFLexlhNogaa+zkV6OMeQPFYYb9Kl64MfRDvv6ccIJzsk9WWbu qUS78DIJgcndNapUHsqdA1lhQJjI0wrCvpeX1Hm5uY53LcLcBWhO7A1m3B7DZp9EYU6JmYiBLiq 8UZRpcFhI35YPOigkKZ2M8lKEiCmnc6vgWaMFsMX5gcGowvtWWrA== X-Received: by 2002:a17:90b:564f:b0:368:ed92:6f3 with SMTP id 98e67ed59e1d1-36a677ce506mr4642084a91.18.1779487403930; Fri, 22 May 2026 15:03:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 15/64] target/arm: Dump FPMR when present Date: Fri, 22 May 2026 15:02:17 -0700 Message-ID: <20260522220306.235200-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487919318158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 84b2cc70e2..facd4def38 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -972,8 +972,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 Mon May 25 21:16:02 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=1779487523; cv=none; d=zohomail.com; s=zohoarc; b=AMAgj7ESMkVNpniWQiY6ZdxA4auGZYON26kwcK5Ms4iY93JdmJetPJBQAj1YGUE5i2MLZ1Kq+E2eJJNA+AjXo+pzPyQR1XF1g45luzeUY4wrYGHvNEGZ3j5utf+XWT5UnVJyU+DqzGUQyYVfoNpWh6Lgb/ZAKhDqrP4VeUdABTM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487523; 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=fNdoFk8qK+d5ySvJwv3vJ3+8LkNGVU6JUxBemNVw1WwD3hbMNUoGRx/y3eo0K/kcL/LM4kdH0Npx2O78XjZQWtPWAFE/tW8VQ+B58HVlg9DkIVV5NOrzoy5GEi695jKP7BnkSyQipZYv4wtv7jis7/2eKNO3O99DlrehXfTBZjs= 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 1779487523907107.76030448252288; Fri, 22 May 2026 15:05:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz9-0001Mw-Ql; Fri, 22 May 2026 18:04: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 1wQXxt-0007ku-3Q for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:36 -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 1wQXxq-0008F3-D6 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:32 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-3697c35eab7so4706414a91.0 for ; Fri, 22 May 2026 15:03:25 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487405; x=1780092205; 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=iMUQpoYe3ec8rxLPD/aMzzUs7DT9GQeTHcGYAixiSTiefTdkUWEym3MSHpxpQKXcLi jOw9FHc/mtnp5XoE0gpyg0RSNHEa7CLm1Rm/Pk7VoIV+7oe26X5yf1wffJJQExapm65n cqHiAnw5txaznShnxYayc7450avIz+O9Zdst9cj7KJbodiYJegMya9h3WrCCHvJXUPmW ui3WOw2XHNiQOyvpqbv/8mItP42y0xH8HGuFRD98U38mf3sGhOjzn8eI6w3jFWwNJfWP TCIB5LpAy7l6rPCmkEOBXyinjCXzPFu6EaevXJ4OdJ0VfjRY5melU3ZKGUrg270tCCic 1jyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487405; x=1780092205; 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=P6GRVcNdosJbqp0n/x8Z0E+m/xzW9WzN4ETzPPfwgidUvZa7DRUi41B/EM+UZ6LeC7 FENqZPOAkYSGe4jUdniF7zaqxqt2+nI5+EB+kt0fMILiKmgPtHqyPtXwk3tZHc6Id5tl uCtJhmJyvqiaLRybWH5JdkNTOHgb3typEflPQ/3qEClseotAxG5DNtyc/pB854gI7FqT c/PO3cbsovrzU/QOWPEHX2DcxaUk8Tl4y7+0A/axGnz6scseHnYtH7pHVa7sxWUYIWEi zWe5ZS46mfwSH0j7ZmUyrBNPYcm4emCuCXHAzCUeOGOfAbjAfUS8G8KXBntM+B+I4OuX J7fg== X-Gm-Message-State: AOJu0YyoGndLWKL1F8z6yDzf4mzndqZPU1+4MueUbdAN5sEtRFUTPwxx rHkW6FvNAwnPjfTykU0D9hkmGuzumAxW0AeoaTQOfqIbsFo+N1tAIvnPQSobII+F1xYB0wW9uTS DPrsY X-Gm-Gg: Acq92OHMFOYMD+z0OAPgvDE6PpCG8QXwm73tA3tSfnBMi81mR92uDBrWgiAcsF+JsuJ NlzYxjJRtu1itKUw8RC/v5zCUx2kT7BwyGFx5t1CBkeSC7pFxHRUBdlqKuh/4D6TQ4/9UFsmYWJ 84BDZC9j3WRcSfPRloJrqXdRhRbe1roSFEeUKvIPAMbxRMf2XKSCg09nPyt1IiC9PLVM4WN1Y/+ 7TDBs786mbB21IV5jSBTyew0i9tZcDxz0vv/YoGHeVN0HXUQuFZxOdA6wlLmPvSWe0ujmstFgwL d9aBP1d5r1iuFmnH/jeizlnEThuoXdiIn0f94i/Dff74f1dGtJf/1cI76n29qUmT1yRM+UfMzUt 9+wyh+yFhKLV9L5azrExMr6hj6bqPOxHD48UgZ+Ct2pfXV7ftdO9sWNofaQWMuh/na7dP9axDMg AOlLZS1ywP9kYnsKgfk3LlmnlsmpGi X-Received: by 2002:a17:90b:5343:b0:368:b01c:85a0 with SMTP id 98e67ed59e1d1-36a677fd392mr4427319a91.14.1779487404614; Fri, 22 May 2026 15:03:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 16/64] linux-user/aarch64: Implement FPMR signal frames Date: Fri, 22 May 2026 15:02:18 -0700 Message-ID: <20260522220306.235200-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487525835154100 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 From nobody Mon May 25 21:16:02 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=1779487752; cv=none; d=zohomail.com; s=zohoarc; b=GuRzBHVNh8s2NAtvnLQssCteuQG/OSo00dW1GbRJP1TITCAc3+M03BaIvxoJUuVC6xt63upy+CDIV31pji9x8QE9k/RsNshomOiNow/s7p69u4oz+TRODqMMgJMFknc8ug/tWged7okSm96VhsBtvEfYPRHC86CabsyRvir91r8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487752; 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=CJncXQdI40tUDui4jfOpY7wY6z/VL6EnB2oOLxS1dCg=; b=dVcVjpalFw0qDxeeUG+E9YR+1tYExIBrW24O9yEz4+sCWz9opxuC2NaVZWP7db5okGacb+SQ6hv1tdibuCpfbZOYQSeiLYdte4QI5oWIwDjsqIRz4z9R8et0L6eqkcByLN85Rb5WQQ9eZNvlWEqh+gKOF1dPaUoVr4BCkEBdM5I= 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 177948775287330.86611359113408; Fri, 22 May 2026 15:09:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzF-0001tQ-Vy; Fri, 22 May 2026 18:04: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 1wQXxt-0007ks-0J for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:36 -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 1wQXxo-0008GH-JL for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:30 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-367cbac9cb1so7414875a91.3 for ; Fri, 22 May 2026 15:03:26 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487405; x=1780092205; 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=CJncXQdI40tUDui4jfOpY7wY6z/VL6EnB2oOLxS1dCg=; b=utauFvTRgfE4pRQ006qkNGv5DZy4g1jmA7QIcDnFAj2K1/tBukU6pzP+Bhac1FhrcY jFnO1mdOEX/3YUxcZaUpzz2QHdn/WkUfCV+72dT+ETVDe2ngbW+BVVEP3DVPM51nd3EV QL7V1uaFYG650xGp5/PNYWJmucp+q7ub30ZUkbIDzgk63EIcit0kkVWywY0RrNSlH1O/ jAo0QAnkDdVl0pFYmUz9KC8mTAj2FZPlRzXU48dWMD5ICRhFljJ3dI/BJhIvTy3bYbqJ O9Qpful0X+d8yz2YPKl+Uu8exokOiH2tue1jDdlzmcWbMOjTIY5Ml2U/OwTRxgjqyuhw PlFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487405; x=1780092205; 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=CJncXQdI40tUDui4jfOpY7wY6z/VL6EnB2oOLxS1dCg=; b=d1gg3DBRVqaON1aWwJuCt+fpQRw81f7idLR51SVTISgQPWCIHTsmmhf3GK/H5xUoG6 bCFuG2KysOEjsPZKqcT/SAcRBb6nHoLff1s9JIbobGcuTSJI0pP1Y9ckgQoh4R2snlN6 ULw19LlWDKPiwuXvz7Wx0aAPFgqpbNliiW1nZ3e28pLC/IWb1MDRmODxpHDuzma8MBhV hjm5He2473h/OEEjuxlwleVPWmKct9ZxjiprHruwx+hBV2CwI0wUab2xQB5WiCxlAjpZ g69m58MdV7EGroVDTrZmrGUMYDjDyG0SLr7HjBDwpgaTn7WbKq5IE2Cs8F/I0cdlh9yw tJuw== X-Gm-Message-State: AOJu0Yxt28+74L1qHQ2KGpoB3JPfVf9cQcxx/t02MCiXG6mRno9yhgjC JryQFV2e1TiwN7yx7dLYfn1J3LlqR29c/JSTJnKL7J9cD0WDoL2ReAmyXYhrdxfFlCiopIv1mgo 1JkcX X-Gm-Gg: Acq92OElAPS1V+Krw9aTyw+mQh91+CLNzdBpyfSYNYG/v2oUm6M3ALwN9XT0mB9lnpf jvejbsgPhc/cJTpb4eVNAW1ddkCwcQnUEs0wENxbWp3HEwgy2Nc3JjItJbYNO+HAWwYwtvrKRDl 677JK5BE8OSutN/mtfpxYm+3955Dl+YuATZibNJeEcHgE29+9LGc6nDVRediqTvq0mtlyUfNHQC Hnfwveb/OgwybZIVtzN3N/qGvikXK+IucZeoaxtdU6BtikXwM4m+YlSA8WfbYYSD6neb7eYfFkd mLXOIuPqK68cWOIRWFL5YKekOLjdsB95qK87DVEIfraJmrE07eOEH+LXTxlo6JS0vl1mKvUROps 3yc+lOkDTFaLfTXUki+8rZz/lFBAhVzUUKOaqJ4r64NpQU2pA01nFXry+gYsIctkB2W5cqWHD3Q 0xwv2iDEfxPKdCQ2ktxO9FcMa2PfWe X-Received: by 2002:a17:90b:48c1:b0:35f:c729:de9b with SMTP id 98e67ed59e1d1-36a677f44b2mr5682455a91.20.1779487405383; Fri, 22 May 2026 15:03:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 17/64] target/arm: Enable FEAT_FPMR for -cpu max Date: Fri, 22 May 2026 15:02:19 -0700 Message-ID: <20260522220306.235200-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487754801154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 4 ++++ docs/system/arm/emulation.rst | 1 + 3 files changed, 6 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index c5ffe21368..ceeeee5315 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -219,6 +219,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_cssc, ARM_HWCAP2_A64_CSSC); GET_FEATURE_ID(aa64_lse128, ARM_HWCAP2_A64_LSE128); GET_FEATURE_ID(aa64_faminmax, ARM_HWCAP2_A64_FAMINMAX); + GET_FEATURE_ID(aa64_fpmr, ARM_HWCAP2_A64_FPMR); =20 return hwcaps; } 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..e44b3016be 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 Mon May 25 21:16:02 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=1779487684; cv=none; d=zohomail.com; s=zohoarc; b=HuEbpM6bm31C52GrfMuMBckh+KWmGEShcbk/krtwVMG/YSH5jfHTNJO38LunCX2hcQ0I8smgeYYJOq/RHVM96eZqNZVBNGhEnROxZBStda0On0q5NRd/ifcDwUATSFA4uK0fIBu8JfwUU6nxQAA0j44q7AWvFDpzJJgo6Uh+mgk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487684; 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=eQlqDiM3IpQabRMqUoqW7VNQijUxXcEr5l0FSiCvXFk=; b=nhW7f7sfVDba/Lb4zTaTP+RqwrVQU5e3/IfJskifLKaBUF4kxV6YSxPlUyg58j9m0QKlgatkw7M8ICbRqGYM0YQPWqDfh+DeusDAkcNl/+Z9JSL1m/0p5/82LK0PyISCiRsrqI/3f4VvuMedfQp5GF4o36fCJhK+kMNj7d4wyIc= 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 1779487684453294.725028888632; Fri, 22 May 2026 15:08:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzG-0001wM-Ae; Fri, 22 May 2026 18:04: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 1wQXxv-0007lD-7f for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -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 1wQXxq-0008Hh-Pc for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:34 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-36a3aff302aso2206592a91.1 for ; Fri, 22 May 2026 15:03:27 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487406; x=1780092206; 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=eQlqDiM3IpQabRMqUoqW7VNQijUxXcEr5l0FSiCvXFk=; b=u7lPEDqSQO430BL1Sgm4sHOcmvdy2q1H2V5t5CLVMYO9mSJ2ZmZyoPo8yXYlVtsl1r eRac/hhahauLxhF9PyMX3aEjPPNOmHpYa/Fkhey4co2uqeI2tF+hTQyxpRuIiOSdVTz/ inD7boUmM9kv400glPZp/CL5lOo5olDKAmgJILaVAksP9q44mInef6gv+A7sQaWXNtzt otr0ASEyxp1i/BG2pzsXg4XCm7QlEg9FaLkOeEeIB8HRTPNpIAQt+osNlAP6nGCY62N6 9ejAVAsA1FD3W1Rk5qlt6gx0CK/vBqP5279bLEhLJqN+5d0q/17HwGEQJaWPEu/shOhe Ad4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487406; x=1780092206; 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=eQlqDiM3IpQabRMqUoqW7VNQijUxXcEr5l0FSiCvXFk=; b=cdh0OqnZ5v7WvkjfsIadOXG+jNCA8pHTbZm3nHFHGku2WRrMsJF/J7TvlqNLjttjag MkcwzHmmaVyJbtU8nQrhpAFHKA94C52E7zYHaAWO2fxC9pYyBF1ZcazvAGLpOiobyj5A mT90ykvk4mmCDcQu4DfygEsaV8hRL0qouC6kKCfwzF8qt7TQovmFxECcIMuDBdNpd5aK /VvcGCUm1vLhzQLGMgH3MMKMMVJSbVptjO4RCVQtdYZd3mZ5jN49Nr7QkMdPcmleL9RX kId8k9Nm8gpa2oSq20JwK5Pu7BhaGPh8m/JpP0vKUj22SroSPVHRQwqy55Q5Rc9EUtQa ftIg== X-Gm-Message-State: AOJu0YwcQ0vDVQjKmqVQFGtKan9Aq5pa4mDurwJdmtY6cJsOtb5B+UTc gbgSw8UWeZi7DrdijCRYHj+qx7zy7uhbP8YVdtwAnIUn8fEfheOlsmawuLvp4e5mbYyy9Hndau0 Y0wle X-Gm-Gg: Acq92OGzkoJrt8FnN52XhlEIrSclBUKkSIDUy7tnQdOIhyHfgwI31mcJh1Yc/Jai5Id hYCcZRWdpHIfAYK327fOASy+retqFfa2YQmrsCaRQdTcClzyafkOYOIZ7CsywMnMd86NHAwyRsO oe6kjaFFiaH5PgVnG95JqPti+6mmU+TaNZjjQ0ZJKlbwW+1GPhrf/ifcDthAcaPcXFNAiOCA2Vh 8Q46NtD53JjJWJAmwH6ihVIsOObSqxSprB59wBPuX+f7YwAhQVaY4eQTFVv1ATLJGdWLLDGVIVo 7qMKpczeRYSXCYtJt9COR/z2O3gP2VwtvKQ93g9tdAflWSjchMfGnCOPNTIk7TZDCxwqWmPxXn7 SE4LrAhsEoys7+wdwBhyibS5TiKv3JEDY4s6uk/8n5PyDbq8/MA1kMoJ4kcu/f+YvZHHUHy4K68 9jYfvIwwfRgr5MxWxPyi99KGXECxOj X-Received: by 2002:a17:90b:4d0a:b0:368:f0a:1c48 with SMTP id 98e67ed59e1d1-36a671e2735mr4989313a91.0.1779487406048; Fri, 22 May 2026 15:03:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 18/64] target/arm: Implement ID_AA64FPFR0 Date: Fri, 22 May 2026 15:02:20 -0700 Message-ID: <20260522220306.235200-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487686219158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 9 +++++++++ target/arm/cpu.c | 1 + target/arm/helper.c | 13 +++++++++++-- target/arm/cpu-sysregs.h.inc | 1 + 4 files changed, 22 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/cpu.c b/target/arm/cpu.c index facd4def38..a13e6dae2a 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1768,6 +1768,7 @@ static void arm_clear_aarch64_idregs(ARMCPU *cpu) SET_IDREG(&cpu->isar, ID_AA64AFR1, 0); SET_IDREG(&cpu->isar, ID_AA64ZFR0, 0); SET_IDREG(&cpu->isar, ID_AA64SMFR0, 0); + SET_IDREG(&cpu->isar, ID_AA64FPFR0, 0); } =20 static void arm_cpu_realizefn(DeviceState *dev, Error **errp) 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 Mon May 25 21:16:02 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=1779487829; cv=none; d=zohomail.com; s=zohoarc; b=ZDO9CGPvUtF75KoGJ6r5ytebfQJ+pppaZVam8K8B2Ds4gICPvBUCFX/7SCF/oCi5CXyNE6eRQ/N7riuooW2am5ckl1mzMVO4MP0IUWdrA/x0wLY09TiPmInQpuQWDRrfeXP7LPbKg0G8NxRTmfgR8eSfGtyJEAJTfmBbblZfus4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487829; 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=iNNMgucSf5F2JSSLk6zTH4DWxK3ilmSb/cxYYREeEYg=; b=PDCCbUy3nehSxiZ9ZOMX8RMpw7yCno/RXBYhGakiIoo1/+ug6iUBON4wYAWlJdMJVbwMK+l3QZblzlxDRFuTYy9yRaheprvM+t91xe+yoL+uy1U1f00tN7d07qvb3qgf22UJkEcGR/NGT8Z0Z42LNe5fQxuRQavaDpmru6AofMM= 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 1779487829866371.29733350105994; Fri, 22 May 2026 15:10:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY04-0003JR-9t; Fri, 22 May 2026 18:05: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 1wQXxv-0007lM-8f for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -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 1wQXxq-0008Ie-NG for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:33 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-36622412e97so5751890a91.2 for ; Fri, 22 May 2026 15:03:27 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487407; x=1780092207; 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=iNNMgucSf5F2JSSLk6zTH4DWxK3ilmSb/cxYYREeEYg=; b=ZqqBMAf+cL1NYELF3jmf5MFF75ZHMuVU8li6se+rI+3yEn+ChnhyFgnPciUzK9C33S xSZBqVSTGSf47AS4jy20G99FR/uEHcOis8q4vXT6S3hbMvNY8cRayVs/4usZC6yye+g8 l4ugixKnqjcnN71yYAj6917EpElWugo6qwuTz5MASAisc2kSg/2IH0reA9g44+xnHcgf bXvp6wrU2OESnBJxn7C4rgAvWKw7q1y7Wd2hHm2p6vZCTMAsZ5K3yZJNi1FFtJRADiEC VBUnhKAB7Svq3whq+PFP5TOOVrQrt6ofFR00RJDaQ/5gU/YPZoZyrirKpJjkI7KEF4iX JkpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487407; x=1780092207; 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=iNNMgucSf5F2JSSLk6zTH4DWxK3ilmSb/cxYYREeEYg=; b=aSEKyogV4WB3tT0NRNTxJ4uIwDXa0TXJONaCeGia8/u5l5sxSYshHHDxwUHUs4YINi KU6T4F+RgZd1G52b7osJ/7+OpHeeANxoRpWU4ze7NRrof8aoJqiQg+Clm0gU5MPPNfBU Pt5UiXciW0sWzG4CTfrM1Qns9ssHBjKJebrKF/21s3Wcs4CYS7fuIiUyp7Gk9etNnB30 e/3JR9bFc5eXVvHidVOAH9+CMxkVga6khwzZUHZoQ37dqfS1ev547w9AqWmorB3/VnKr vMEmyOzMmSjwUen2Cf6gv2izA76t5ZNBTjRRp81rXr5B3RBVxttEEl92wxra1uaYi1Bc 4+Cg== X-Gm-Message-State: AOJu0Yw4cZr5ARXlAn/E1vpx4yEmSIODBw9IoeSUa8X0+ehEfCMa+5jJ BpXEG/031hjYF3aB57G98LIypR1e4MGFsh4HYSZrsXiHbDwmK66FP9CZZzGiEmvujdWTNq+lKa4 s0CqL X-Gm-Gg: Acq92OEmN6MxDT6vpGmO3sjE7F4HbjCkxA29YJOzqf9Tb1mstDkfwaALkbJeZAIwCf/ WajEXElHwUgiAKe8ljEtQqjRjXMyEheAPELS+soFUdPtUCVKbuzgvsORSMcLRpuBxAOZ1UDT5j0 mbavyicBcDCr0bkyJnE+gGtlKSXuvnQA4vtA56DuqTsqhD0a4rY0bWLIVv+Ylk9glHotB6ZfhTb Prd0k0Y4wahAOxDKTH7o4JxC9bqCRkTGabGnTrU+c/8yzIRnTHyBkr1ISOy5orBageR1tfDtZSX 2WJ9M202SOYSCctY7K07Ll22hylCsHus0PFELuFQxlcaZAM8huTeAPIEsz/QqoSLymi4fs3XbVS 2l4M2OLwxqPeWDGV2xPGq0xPtlPUNW20nB1tsRUBjyaYBscPAAOTRGTr2AJeT4wMDhokreNP4ra XRPAL4AIpniN5FfDIztUZ87slCNWjj9setgUUBO9g= X-Received: by 2002:a17:90b:568d:b0:366:159a:c228 with SMTP id 98e67ed59e1d1-36a67422347mr5270084a91.6.1779487406802; Fri, 22 May 2026 15:03:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 19/64] target/arm: Add isar_feature_aa64_f8cvt Date: Fri, 22 May 2026 15:02:21 -0700 Message-ID: <20260522220306.235200-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487830881158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 Mon May 25 21:16:02 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=1779487741; cv=none; d=zohomail.com; s=zohoarc; b=JT9/CsmVQ871+ihH1eHog2yUfpaSwGb0Ad8clcKCWmfmf/meo1IG46Zg10AuzV1WhGDzpfgkKwVNHtYkKTw70MuZATuHHPG7LwbT4icJDNh/d4b/EV1SEUCnGG/2DU0bMFKRgwNNrPPEIqidRmVQAR/cDyIWg+RJZyjlfBZDbEM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487741; 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=bEcxILczO0i6hvUfeM82ZYl1jJG/iJuT4NwlPrz2R1g=; b=hBUQIYBmvhdDcP94vchNRlpGoqxFnRa5jiQv+fNxSvk/mzghl8rdov1NnowXMasw8PSBHpfXzaDKhCc+gh+/1sr2Xk9KJ7WJJdoFznaAK+/uvzU8LX163ICjEO1izKnyyIJLiyPWeo90hZHKBUbuq2yghbGCwv9wwORKx6as4YU= 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 1779487741317323.67814404078615; Fri, 22 May 2026 15:09:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz7-00017s-Kg; Fri, 22 May 2026 18:04: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 1wQXxt-0007kx-5P for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:36 -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 1wQXxq-0008Ir-Dz for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:32 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-367d88b9940so5145261a91.1 for ; Fri, 22 May 2026 15:03:28 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487407; x=1780092207; 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=bEcxILczO0i6hvUfeM82ZYl1jJG/iJuT4NwlPrz2R1g=; b=ULmnB38uUSYFww0Is5CL6X+caT8r4WjloVDlTTS5CI3kw9ZHjxBuR69DGNWnfg6u2v lsr3yzlMgKEAgHPBxo7zIdgA0W7vmN62HtgnCmJ9f2w2zPBrFPoHrhSid2Ytnvl8gMHB 2fOV9zZL+BW332gdv+0fKD96RVwgZ8XuUwQyXC1k2ogiXPIJOrqVr8Y1rO7Kac03ZSP+ njJJxmiDa9oqA+CiAI6TNLznOTkNQnK7f7m8vYfJk2HbnjfutMtfaKZTGAwK+nL9mSS6 sMkoRBD5vFXBR94Zv588H6g37diHEk0f37bKXaF7hlI+iLZmmNId0wDw3VKnvZlXrqpX by0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487407; x=1780092207; 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=bEcxILczO0i6hvUfeM82ZYl1jJG/iJuT4NwlPrz2R1g=; b=qEDCEuqrNQJv2DDPPtH6IElYFhFonDUXdJgNLsB0fFm4ANnpmkZTazQuK10XUpYerS t06ZUN3sCR3pfCPQbfSXSaO24ER3TTxVsnaeYc02dlWu2T2e9BiZX+Ya/BP7UBn4LeHZ 29J1tOFJzEhyOFEdW5B1kcRA48yFIk0NwURaz/u28iPFkC1O37MCKpnGEUyNmVAtnxed tEpbedOIRm79Y9lj/bAjsPW2tG9WGdn2KXZ8fBHf0GTJbySdtdrlYhMynOPJKVxLTv8j yZQ1SbuAXVDyppYCqxwf/z1apOfU23YuWqGVyNlWxJGKsY2+fXteZhdDn+Kvn5WD8VXK LVyg== X-Gm-Message-State: AOJu0Yxgw6AVsS9M3J0xphvIVoaRsdI8t9buXIeoQhVYxiMA7bRvFW8m gML8KTMgqPz2Ln4vzAw1ef64iXRPCFnEvoNE8o5yc5VjjaXEunmWEA+aV0CCuBg+8HYWlxtTMX6 +0Xx/ X-Gm-Gg: Acq92OECsUzVhCbM1DIGIV2kpAWEkZHyfSRlqWug2ryyJTIf4xRZ6yft2501Tig1i7i vn5M/DvPFZw1snqR6mb1XjOWUBzvef16B+b7312iQ16lFITt3t/kDZ8TMIi1QKEN2hI3eB5uHDZ JAXw6sKutcWDkyYa2qLNc6ogslCjh61n/6spVsb1JtLbeJLGEs066e/8twkyBBspWIAfddgipMD LVQzK7a2AVupH+xcVrbG7SlsxRjvn6fteCDho3tii3Tr80b/PAoX7uGGKN7t12/KcVnkEcK75VI i2UlHXIjHQCCBSEq+pWGysEGhmL9OheeUNN/NBrEoZpnFQOSzOInk6Z98ED+0VZ4OXPRDDXfYmr MyQ1fxv6v+zXH/b60GBfdbG+7fFcUlYzlCD9+RCJplRUTc5vYCyzB7ARljA5yCY+X8K1YTplFgp pLGvCvnbVYnleVwQ5zMzUB9YUP/JZU X-Received: by 2002:a17:90a:d88d:b0:36a:3a95:55f8 with SMTP id 98e67ed59e1d1-36a676f58f9mr5428525a91.5.1779487407477; Fri, 22 May 2026 15:03:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 20/64] target/arm: Implement FSCALE for AdvSIMD Date: Fri, 22 May 2026 15:02:22 -0700 Message-ID: <20260522220306.235200-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487742571158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/tcg/helper-a64-defs.h | 4 ++++ target/arm/tcg/vec_internal.h | 6 ++++++ target/arm/tcg/sve_helper.c | 6 ------ target/arm/tcg/translate-a64.c | 7 +++++++ target/arm/tcg/vec_helper64.c | 4 ++++ target/arm/tcg/a64.decode | 3 +++ 6 files changed, 24 insertions(+), 6 deletions(-) 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..758e3db1c3 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -349,6 +349,12 @@ float32 float32_famin(float32, float32, float_status *= ); float64 float64_famax(float64, float64, float_status *); float64 float64_famin(float64, float64, float_status *); =20 +static inline float64 scalbn_d(float64 a, int64_t b, float_status *s) +{ + int b_int =3D MIN(MAX(b, INT_MIN), INT_MAX); + return float64_scalbn(a, b_int, s); +} + /* * Decode helper functions for predicate as counter. */ diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 9968600f75..982db8836f 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -4728,12 +4728,6 @@ DO_ZPZZ_FP(sve_ah_fabd_h, uint16_t, H1_2, ah_abd_h) DO_ZPZZ_FP(sve_ah_fabd_s, uint32_t, H1_4, ah_abd_s) DO_ZPZZ_FP(sve_ah_fabd_d, uint64_t, H1_8, ah_abd_d) =20 -static inline float64 scalbn_d(float64 a, int64_t b, float_status *s) -{ - int b_int =3D MIN(MAX(b, INT_MIN), INT_MAX); - return float64_scalbn(a, b_int, s); -} - DO_ZPZZ_FP(sve_fscalbn_h, int16_t, H1_2, float16_scalbn) DO_ZPZZ_FP(sve_fscalbn_s, int32_t, H1_4, float32_scalbn) DO_ZPZZ_FP(sve_fscalbn_d, int64_t, H1_8, scalbn_d) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 41dd013784..15b40090c0 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6493,6 +6493,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 cb55a2b441..d8b25b868e 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -178,3 +178,7 @@ 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) + +DO_3OP(gvec_fscale_h, float16_scalbn, int16_t) +DO_3OP(gvec_fscale_s, float32_scalbn, int32_t) +DO_3OP(gvec_fscale_d, scalbn_d, int64_t) diff --git a/target/arm/tcg/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 Mon May 25 21:16:02 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=1779487913; cv=none; d=zohomail.com; s=zohoarc; b=Jsd3bFcHWFPU3PNa1sqdQbe1RPrGtmawez65X36+TzHIR9u5xok2pcFFXFIl5BzPJXqyuuwn7FeN5ivWqZDwgB37lxZAoCASKuX8ytfOFwbLU4B4h2tXpahCn/g5LVUfdR/cU6iL9j8dvbjndmRUdvqRSGrND/AP8e32kF0dor8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487913; 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=aPBidG0huP+tkQpCO/vx96Q+KUT3hzX3G7rgmz5YuGU=; b=WKwoZ5hwlauEnbixTv5TrRbXZ4GwLTJIYr5uMiUmS+CXy6vNXWB/3fe9aEZSEiGCvbY05zj1AgVGMQiLmNlPTmKtfQvR08z1rriGJ+4bJH5+jUckGvyfXnFwxLQft14JKQz1pR15f2j7uh2cMu/RWdsJMpU/ezyvvYy9DtVOA0o= 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 1779487913810923.2292219991388; Fri, 22 May 2026 15:11:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY02-000358-Ei; Fri, 22 May 2026 18:05: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 1wQXxv-0007lH-8n for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -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 1wQXxq-0008Jc-PY for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:33 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-36608b2f2dcso5101355a91.2 for ; Fri, 22 May 2026 15:03:30 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487409; x=1780092209; 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=aPBidG0huP+tkQpCO/vx96Q+KUT3hzX3G7rgmz5YuGU=; b=wZ7aFirK2HvUUtH5n+KD/4WyT1ZtQ7tCsL3Ak93TxzpohS8rFOlQjIUW/G6pKIT16D enUHGDDq3Qi6IJ58Ul3w7g44KuDBUMdzGF1DqjubWIEX/7jI4q7Orfny5+R5208zp3+K XColqwHj31rxArqxOp0w0u8ZpXAa7EjwUXrcFu4zxk2TtRBzRgLnoZ0RtNd1WRplZoXZ RNHbRF6qHXxgM/vYwbvOJK0JkBMJXR7G7SwZ9PUd7AjIJh73R4NozrmJc6HQCaPjdfWo k2hW1v9Aa2UKO3BhFNRD1pq4f8u8YdleuMvXFkUXpBlmG3h/PQLVIdLsWr0mCdTQu0wR anZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487409; x=1780092209; 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=aPBidG0huP+tkQpCO/vx96Q+KUT3hzX3G7rgmz5YuGU=; b=AFwQdDliLKLQJhxodWU29D3OxlIjwMQ3e00PHLVCP0oPXKClz0sxQ/wI6Px6j6CRxd g8heg1ckj3BzKxvlmDHDgdMl2smS3wBzflGJM+icNAEO5qJ5nHi1nuMVq0DC43Jz3zgC vPk/Ee5sqNRV7Jxf65JUaECRI7Hsoh5UhH+X1w9PW6x2knp92ywKks1QPjNg/AIAVvda rvnxPavUX+3J6GVpj5yiFIqCS5tj8vkyorPK7kGdnZhKgfznNz0sdgPHxZMgxzdVMgfF zmytmtxLyuyzYXqsDvy1rHcDcw5qqRTgZn7j510qJxmOb50Ef5ZswHV7rTPGF7WdLwJ8 ASdg== X-Gm-Message-State: AOJu0YxZlFQjmwinwgFoFYs8YbBjFyXrRQApv9KReigodlQvs2RJqPUe lTCT7kFUzkWie7Quf6Y5nrL9JP7vV+N3VVQGtaEmW7EP67bbLjU3C61T6NsubVEr7DQkExJy4iM RmTGQ X-Gm-Gg: Acq92OH9rSowQmGOdIkHVWwNnLgER1EIJmhndH7sjjkGeksSLRvJypIdxw28jUvVfyK mdaZ64+JWtlGrVkjzom1dtKcTqVg+wUHll2lsQAamVkYINV3fVdkyO46mDvZfC6MtWpeEGePhCG jTDfB5ggeV+nUscvgg/nLvxEv84GM0UNIyu4q25+MBw42r1P97tBYXxDKgQfXG9YRMY/I2Funiu Hlp8gyH5m4GRgCodwGbqYnYGIO0A8rBelhTgbLc8ccLcz0zmiU6o6ViKZsQ14iCIPlxPRBrADIh aJlE96loLunDQG6OoMwNBA/LT8xAaAgERnZMNTPCleacKOXjc8jXVei9ANuHiT5J/2IBU5fIguc Spcd11DaYDFabx9DpD9vwYO2eqo69EfhJPfpFs2XfUOFU7KIt23oeqezm9aCSpBHd33TfdMDCHu EGU0ozr/jJRfjAGnw+Wmiive6D313m2Rc8E0dRkLSImjkiXpnIag== X-Received: by 2002:a17:90b:4e84:b0:369:946d:32fa with SMTP id 98e67ed59e1d1-36a676ee27amr5425077a91.5.1779487408855; Fri, 22 May 2026 15:03:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 21/64] target/arm: Implement FSCALE for SME Date: Fri, 22 May 2026 15:02:23 -0700 Message-ID: <20260522220306.235200-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487917174154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/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 Mon May 25 21:16:02 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=1779487600; cv=none; d=zohomail.com; s=zohoarc; b=izxW+psqf58bRasKtUwtBFK1ASSqd/ITW8y9gOFz1ky/t8PSKiUf7m+VkUwp4GPVCsK9e4Iv3FN4+p+1eofk0f5gK7Y2iSv/qippt/Sly4z/qrX0+y8YZL6PWJ3oN39QLCWX11L7w9kAaV1dqmRR40UeIMU9MtEXlb4iWHBvhvA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487600; 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=5ZgO8gjp8txrPFhSZcF1i35Zr8JFj4IafZd1otTkFRY=; b=D437XLKssKHyGzjTHnlzAOYo4wQI4PyCE48FRlnTB4nDkfzjuO3Rw6nZvQKJWfvItZzOoH8VmUkhJP+/Vo4mTiM/oBTwVvZSOxH89T8fbrmMoiH3dxlJapNoKuopQuVL1WqN+VRmhpD+V+x83jiP7zKYbyX0kLTB5n2UoGFuWlM= 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 1779487600912433.022069157768; Fri, 22 May 2026 15:06:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXym-0000Es-Lg; Fri, 22 May 2026 18:04: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 1wQXxv-0007lA-6i for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -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 1wQXxs-0008Jk-L9 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:34 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-3684a6f3b0bso3933819a91.1 for ; Fri, 22 May 2026 15:03:30 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487410; x=1780092210; 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=5ZgO8gjp8txrPFhSZcF1i35Zr8JFj4IafZd1otTkFRY=; b=e9xPzY89HrtMWCUmrgRkkSW+tiM5IDuszxaiZbImHTqnHv3GKQPxg+E4xDavppwIIV MhxHk21KwXAPwZSa7XwLdtiiTgoMI6GrY3D1jHra2p/rUDUA5IegNhk9yLHKeI4jvwWf HoStyUZgdhtHFrghDGyqAfwb9srAo4VyzZEfWVkAPxtgRNVNvHb0HuUYbxl+R04w2KKT JTsqdx3uuetKUFBTc3wYJOM2uMuqz7fg6kC3UwtXCGBwcJIFZ3EQY8IlLDeVnU8yLWIR p/Aj5NPodUWGMQaEuCDdms4bRhb5/HGplRX8kyNFf52lQwmXqd5QIIizKRo+6Lf9OfIT F8Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487410; x=1780092210; 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=5ZgO8gjp8txrPFhSZcF1i35Zr8JFj4IafZd1otTkFRY=; b=nz66jJVkDnLpy6zrkcissNux2eMpg3x8Cl8uuHccKwAAnHdzC30/0NAZ40uUhMOsDl j3uniV9SxhdVLybRx4wv6ADjgG9ex5Bw1mH/CRHd+k5uHGJLcMnjWSzRrRf6DdM1Tsk0 J16YG55fGOg7L3YPr8/MXhsePRTeAakC80ljxIitolU2bC9p/JJBMkVAUyucSxVIDg4C KXtpafFI5DxgDejRSX6CF6xGMbVQwIR6XWSYoEuWPnmojaOLLCwUzI5ljv2XOXvNArQR ALQL1eeonT9RWfoZvOBwS4bDEQ1xmXu0Q5XyiSKqcD+Jh2OyqdeP74+yadnlkjGunlsG AazQ== X-Gm-Message-State: AOJu0YyDEN340Z2+48lP9ONJo/DCd8ExUIuS8Ld6VhYEOF9CzA2jhIaJ xuutnlgNNB5/9OxwlwYurcy6EQRXCu4WK8GK0P52XvufAVfUHv6ogHFYuO5vCL86VwRIGDFIS4v VjeA2 X-Gm-Gg: Acq92OGsZqKwodnqEdvENRp+/dNQRhsQhzPfgftnJAOty3fXQErZdSaIthavLzoe+wM XPJoKCJKGNAX6XPvcOskiEtlAsfLaHNUYUoAAYm34kIWutpg7detd36M2wwfV59SSWEyYnVjG+n Z5dsS2EolCPIfESgR8sgobXuzgqATxK1J8YLxYIaiLSOAW0M5qwh7U6Ng9uwCWqI0XuKjmDEOZK k5rrWZ8yX7dmnaiPsKOUqM2NicM/paC4aLDwxXjWx0U0nXIJIFDpY+N2Z8XQxZ4n0WNG6hYl2ev 5P/6Kluj76ULLds75OueToHMOu3PJtyJMhgCDBZ85sv8bV/WI/xsA3BMIhxf9GcFDdcScalM6qf +zRi55wyFcK/ctopMuGBkrvG1Am2nl4phLrLcortp21i7lcHPsFI0RN2AZWntBrrI6EaCqfGorg 4OMcy1TcfkBUl7zqZwPNgYW0+YJJUU X-Received: by 2002:a17:90a:e70d:b0:369:3c3d:f899 with SMTP id 98e67ed59e1d1-36a6ba28e3bmr3811530a91.2.1779487409653; Fri, 22 May 2026 15:03: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 v7 22/64] target/arm: Split vector-type.h from cpu.h Date: Fri, 22 May 2026 15:02:24 -0700 Message-ID: <20260522220306.235200-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::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: 1779487601944158500 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 2a93de4132..85552b573c 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 Mon May 25 21:16:02 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=1779487835; cv=none; d=zohomail.com; s=zohoarc; b=OQxscLoRD+oFvIqQOcGdQNzX1wP9qKUw6vSPGBBgJFedMcbOCztEnaxRmk7B0o0qZqvB00iaIT+Kmzf5HknwralNHNT7Q1b0vFKWdJR7ffEozMb2SzaQQdlXNIqrl8k/OPYd/JmuAnZQZDdRRx4irdSDtegrMrhN17WBl4d2S4c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487835; 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=J7LrqnCZWislAjdzjKOxxr1dhsIsKTHY94bIvQqnEMg=; b=MoAWd+ONXQ5sJkGNUZeZesVn7l64jalCtIlyDpjIiTkpffBTDWV48LvCyIbzYMerqQ3Qlthc432/6a4DCM8Lpw7Tyo5dRpYlJTYyLeS3m5prfKL8eNequIMlZWTo6902LLuhjF5fFizGg5583j2A8FzgXmGLK1Traw0t1dGC1no= 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 1779487835312183.53171709763149; Fri, 22 May 2026 15:10:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzF-0001pO-7i; Fri, 22 May 2026 18:04: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 1wQXxv-0007lJ-8S for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -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 1wQXxs-0008KE-M2 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:34 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-3660ab73adbso5591566a91.1 for ; Fri, 22 May 2026 15:03:31 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487410; x=1780092210; 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=J7LrqnCZWislAjdzjKOxxr1dhsIsKTHY94bIvQqnEMg=; b=i3+3pyg1IqFkhe4cmv+5izlUOFLyHjcPaKvZCPsJX3vFoekIYxmFGurcS2xpeZtQcP BNldijV4gqgcYbPjuRBLcuqIsTLbKc2GwZiazXQF+zkwN1P80rKoLSqUnHE3qZsTq5se qHCwztSSaX4bfPWtNSuWRd1vs4MqF2+N/gWYNim4F/EfFVB027gvHe2+cFikWKuT3F8g Ppj8S9IPq568GmCBqx8xHkmnaEMWXrOo6GvvdecKKTeRvKWdihuQ/lP18GeSojDK8K3z hegNntbhdXRZ9Aq5s1cbQPrwjin/nIcXrgl6vpSuPMuDZz30rVd5gWG54C40Cbbx2GVF O3/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487410; x=1780092210; 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=J7LrqnCZWislAjdzjKOxxr1dhsIsKTHY94bIvQqnEMg=; b=Sx8jFTRN8xHRzSCuZqvdZL78IywM5C0bmbC7hoa+g3GZ1kPw8ungX4AlXXFcGrrHh0 3aKN01iwctkK+2vDhHtOhqtFqMFTgtjCAggOtWB508lAubSw6U38l8bER3LHx7JCVLDn +aP4JDHWgUm5zsrqe+WN8zYIAN/lOgOdGIIe1wGXnVAbzfvDtK8mcWb4JYVimaeOMvp3 VPc0fHLJE09hnCKkU32QnpK4PMBWZxQPdRiHMdQJJ/mkPTSuE9lBBMpAVd0MOTVHGAcB cc4DocPgcioIb12mzbrIgAVdq3eY8IE28FZpImryOSdouTcPUqfeJuUpMzJdMTyNZ32v As7g== X-Gm-Message-State: AOJu0YzMwbU5eKDu36KlDDw3hmYj5Rbd2KKon+sXALKDBl0Fd7ijM904 FTRGuAVZSFF/ziEOR8Tl2IS9CMX/V/aWKr1Vl6xXhlOcjar2XQ4uCQzEMGulrTOYHI5eueqnJrc eGU4q X-Gm-Gg: Acq92OEti0fhGpclpKBNDbgWnEAkt8MJGhG6mQIdwpR7BySpHC8Okp+oHbzpvH8ypYz pAyEpEbD+IaAJAI9RrEK9/zQ9r/n8c6ZrWeOgSjcvufpokk4bvAImAmTB+zZTEQheRBXdBymCQu 8c8SW4LpkTnV8r8Ro8D5t7UlnvauN/7uHVlp7pn3ZB80EwPBKK3HHUwIoh6RKH0TCrsFT7s2JSU nBFnAZTMa8NgG/woEOBmL3L6Xt6S7AHMjf38tn8nGBIeZtvzeAZpaqfLfcrxrGfrlhNOlbvx2c/ Aq8HhQ0H1xq86s2fH5aMkyjiYl99MRTikNWmVKUBNIx7xQ3o6Z32oQrKuArZHIsC12G7sUup7Qr VzWGAurM4lbtgEj9Hvse5kwDe+au97oGSapoNVtAiVvjXcjT3xF/qg2ZpLSdlH57edTBf13QeKJ y28daWlQ/i6XpxmFe5IfoaCQeqqpKz X-Received: by 2002:a17:90b:1d44:b0:369:7944:d723 with SMTP id 98e67ed59e1d1-36a6bb5a6bfmr3524077a91.4.1779487410430; Fri, 22 May 2026 15:03:30 -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 v7 23/64] target/arm: Move vectors_overlap to vec_internal.h Date: Fri, 22 May 2026 15:02:25 -0700 Message-ID: <20260522220306.235200-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487836964158500 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 758e3db1c3..84f7f15228 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 @@ -463,6 +464,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 Mon May 25 21:16:02 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=1779487932; cv=none; d=zohomail.com; s=zohoarc; b=ZoEy+WxDyySdyEyqtLgnF2fbANGXcqNfePioR1Y++9vLhERaxboeDITpa1PfgOHGoV6ZbVP3xlM44BY+QXBWKUd3BZLc5LD8jkIyYcxcFe/iGut4uxeUxPXN2iL4Vsq5gkb/8zM5fE03cptQk2RCRQAZ7VHVycGNumoNgvyIMsw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487932; 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=gaaVtxE8Td6jvB18Vve34OKkbWHvZ7daRwPQB8xezVs=; b=mkoZFBqtQAMnzLXofZ4FQ7B9GQPxW5R7x4fX+pjZvlhOCWHPPLJuJE9ozm5BNCrmThX5MujNwboNoccQuM20DLK8Cme86KRTlqb3n7P2WbKvtw3QtnueCyIEP4pCydjUoNWpW6bjEIRanSd+U8/am6dCwCbu9CUjLcyItjD97cQ= 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 1779487932383797.75809297971; Fri, 22 May 2026 15:12:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY0r-0004w0-9M; Fri, 22 May 2026 18:06:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQXxx-0007lh-3U for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:41 -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 1wQXxu-0008Ka-Ta for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:36 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-367d88b9940so5145291a91.1 for ; Fri, 22 May 2026 15:03:32 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487412; x=1780092212; 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=gaaVtxE8Td6jvB18Vve34OKkbWHvZ7daRwPQB8xezVs=; b=B0pDWkxSw+q85S1yFsX6czeqCmSamHxO80zf/EOsYAo26y093zmpvudV3Nel4/HosO RVZfv3vYO6EaHEftX3NebC3tyaBqFA3LX3w6zTOuC52/YIdCPyZELOOcsinMdjbtFZPs 3S8SbdazRAUdIa5bKzmLnQ/isgNF1NsJHy/oDyhvxwSqFNplLZ5vgC41gWZvbKHGASCo NYnO66bFdDFkt5dO8JyCYZa9IZdTXgs9joldqNsMjhlbt4fio3z4UEqUnIrpOXs/A88R W4umDmMILiFYpH+bNFJDvoXOD/HOMixLaGPOz8P8CIgbaz2YCdFRHfRZFwfjmdRXlSQO b2DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487412; x=1780092212; 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=gaaVtxE8Td6jvB18Vve34OKkbWHvZ7daRwPQB8xezVs=; b=gaiTaYTVGNpGcDAJ9yjKoHJ5ExGpLyB+UQPTKqvfPIaTnid7DZ7ISAHLCldap+QmJD qtnCW/yAQ/CcKQqc5KkQQq2gF+5ZQU0+GWzQzeuCR87ppvvBwoMOKpduAQHAy/G0LlLg QEqF1sd6IbuxLV30XaFLin8iVkQKtkZK2S/xLLO/PWBaPLVqWJ/5a+eVBKzNCqoX+Fsp ZaNZCAcuzevoh5siZ+qFTIfnTtBDjQdR/FWqBt0nC47BB0oviR2h7Aw1DGcgDLoAOq0e sFTPZCAYesR2Pvl/TfBE6USwO1QOShm3S5+S018arAssMCLYo5trlQTp/Uf9sU49rzX3 hdfQ== X-Gm-Message-State: AOJu0YwBXIsrsbT4uOtr4glF79E/3s7v36ONKJpHmbxYQpHHTPvB63cV 6VhFruH6oWHI5770LWcZM4if/3RUWhqMLFpHPZfRwDyUYHQOED7EsskzUS0cER87v9HKDy1Oacy QIpzD X-Gm-Gg: Acq92OGwG3+ukQO4Lxg/Xa7SZfF0KtJORHjrMwTngX1lBEi1XCas72PTPpTxCBdDHhO w7FiDalxC5ERY5s4bxmilBqUkBgQvxULfs+6jLTxtMECyRhKzt+keTwLfy1Jx+RytQ1qtUZgBiz Vs5haEV5iY3tp281S6A1TmKIm5dgbCfyukvSqSg8NrIxVR2JfVupmhbFjx6tp1O1EBY9OJGWOVk iODZcDmte7qVgd+yC5T0vWxeXhdbo4kaj53hJ1AFAH+HTHXRV/Ah4deVFwJDpGy0PEMRMV6fK8v AW5euiKsXsixR8qLsuqGKr4Rv7wIzeAGdO75QeqbU5IWacSypj3yrE6ReZGyAB9fSkpzDdy2pHN Ie65dXFn/QoGy7T8eQELZiAyTiD87UhYdpIfqmgFwZdK/K7aR+LYavnl//q7BReZOCiXKpBPrJa U1bzScuzUOyKqyu7xZW0niusVS015O X-Received: by 2002:a17:90b:3887:b0:369:a359:b181 with SMTP id 98e67ed59e1d1-36a6787b0dcmr5279630a91.23.1779487411892; Fri, 22 May 2026 15:03:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 24/64] target/arm: Introduce arm_init_fp_status Date: Fri, 22 May 2026 15:02:26 -0700 Message-ID: <20260522220306.235200-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487933469154100 Content-Type: text/plain; charset="utf-8" Initialize all of a float_status settings in one place. Signed-off-by: Richard Henderson --- target/arm/cpu.c | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index a13e6dae2a..4ea076fe4b 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -304,6 +304,22 @@ static void cp_reg_check_reset(gpointer key, gpointer = value, gpointer opaque) assert(oldvalue =3D=3D newvalue); } =20 +static void arm_init_fp_status(float_status *s, bool ah, bool fz, bool dn) +{ + memset(s, 0, sizeof(*s)); + + if (ah) { + arm_set_ah_fp_behaviours(s); + } else { + arm_set_default_fp_behaviours(s); + } + set_flush_to_zero(fz, s); + set_flush_inputs_to_zero(fz, s); + set_default_nan_mode(dn, s); + + /* We want 0 for all other settings. */ +} + static void arm_cpu_reset_hold(Object *obj, ResetType type) { CPUState *cs =3D CPU(obj); @@ -626,24 +642,17 @@ static void arm_cpu_reset_hold(Object *obj, ResetType= type) env->sau.ctrl =3D 0; } =20 - set_flush_to_zero(1, &env->vfp.fp_status[FPST_STD]); - set_flush_inputs_to_zero(1, &env->vfp.fp_status[FPST_STD]); - set_default_nan_mode(1, &env->vfp.fp_status[FPST_STD]); - set_default_nan_mode(1, &env->vfp.fp_status[FPST_STD_F16]); - set_default_nan_mode(1, &env->vfp.fp_status[FPST_ZA]); - set_default_nan_mode(1, &env->vfp.fp_status[FPST_ZA_F16]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A32]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A64]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_ZA]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_STD]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A32_F16]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A64_F16]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_ZA_F16]); - arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_STD_F16]); - arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_AH]); - set_flush_to_zero(1, &env->vfp.fp_status[FPST_AH]); - set_flush_inputs_to_zero(1, &env->vfp.fp_status[FPST_AH]); - arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_AH_F16]); + arm_init_fp_status(&env->vfp.fp_status[FPST_A32], false, false, false); + arm_init_fp_status(&env->vfp.fp_status[FPST_A32_F16], false, false, fa= lse); + arm_init_fp_status(&env->vfp.fp_status[FPST_STD], false, true, true); + arm_init_fp_status(&env->vfp.fp_status[FPST_STD_F16], false, false, tr= ue); + + arm_init_fp_status(&env->vfp.fp_status[FPST_A64], false, false, false); + arm_init_fp_status(&env->vfp.fp_status[FPST_A64_F16], false, false, fa= lse); + arm_init_fp_status(&env->vfp.fp_status[FPST_ZA], false, false, true); + arm_init_fp_status(&env->vfp.fp_status[FPST_ZA_F16], false, false, tru= e); + arm_init_fp_status(&env->vfp.fp_status[FPST_AH], true, true, false); + arm_init_fp_status(&env->vfp.fp_status[FPST_AH_F16], true, false, fals= e); =20 #ifndef CONFIG_USER_ONLY if (kvm_enabled()) { --=20 2.43.0 From nobody Mon May 25 21:16:02 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=1779487911; cv=none; d=zohomail.com; s=zohoarc; b=OAbyiWHZIkpiVxIFX3sWREOuoJ+zxLXJFzzy4sRNbV3TqyDsKOoE6xSqlL8kFTAZuFz8N7KKT3/s2S1TqhQVajGTXlOAZNpOA6DGZI3B/YPWBJN+wcudjGJ1RIe1fsNHp6k84j44xXpIqhJRJWTrsjic/wHFeoXZ7Qt4fYwcJZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487911; 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=v4/oXai5pEbDALBm3TmsWJxy3mbxaK4d7WIz9ipLnbE=; b=V8C4+1/KF58dq7bNoHTo+6R7vBNCTxHhFBVcuEAnV1MCvGDFxP3XgUmltRsaqp15EtaTcTpxO5kUX/bz35NsZzK17qpV6z2XNoGMEuCcetG3Of1c6sU+sNIOH0Q6nSlMiu6orxT+6TRVQ2Oauhm0QK3mM+M39LeBd13i1p1QyRs= 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 1779487911112979.5284856190476; Fri, 22 May 2026 15:11:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzH-00028t-UR; Fri, 22 May 2026 18:05: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 1wQXxw-0007lZ-Gx for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:41 -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 1wQXxu-0008LQ-So for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:36 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3695bf7d082so7056216a91.0 for ; Fri, 22 May 2026 15:03:33 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487413; x=1780092213; 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=v4/oXai5pEbDALBm3TmsWJxy3mbxaK4d7WIz9ipLnbE=; b=EwaX73aAN+XBBJJrB/6GMU0mfgYBsCUiivMaceWjaVfiC//+THOk1FgIYOvkq6VISL F9NgPhP6m4UmUrB80rMm/dGF3YhK3KBZa1EOnYP1tHO2oBQYVunrPwv13J1XjxTHT97t O9LLTq+7Kg8xrx4ZplKOC9QO14ROt1LqHMpOGS5qUJRnhPh56sWCP1giXUd3mIWwrZfg mOWB2u9jzsmf3a392qC0wpyBdZ0b8d8lslV/RBGP7Du5Wn6mU5AIxSUJyKlTlqd2m/Do jHxr/Mc4g7xzh+Punsae2mTp8kIURlw6pdg3gNIciHpOnjEsTUOGEiV96BKQMv2y/j5k fNrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487413; x=1780092213; 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=v4/oXai5pEbDALBm3TmsWJxy3mbxaK4d7WIz9ipLnbE=; b=tJ/lqqBjYe/swuIFWm9VWJqTM8J1yBmFJYnmkqM1Xx4rUbdW53g2zbRoDzlsDWCmPN 0LbJU8McbCdz/6KTWT9md7LLrUi8ElmO2z9RZwydCw1JR4Xp19S4+DneP6766KPgAOIY 64YrrNIcHJX+A7/fIPCq7dgmFCg3LdkGvk4KZX0WkWfEllo1WtSA/VfLfqzE0LFPjHBH hMaqlS7Ae18pPcFAG6J2FBJwIGivVTejprg71gcoP5q+JC/pMMMMEOyavipA90qSIhix k0pAyksDYEmNiRW4HBDaV8YX/+nbn2TuVaHYDCm+6ZyKPFd4cnHWSCd5Qjqv0vIzDNrq 1Tow== X-Gm-Message-State: AOJu0YwyS24ufYJlgUjoHHBE2f0kjMkDNj0EMkTdQQ9fiqY4uRuPdZCk SShCANmeq3lpWrYyCEmjTUGk8wDZbbO/QP2kAhEZD7IhAKBTP0vlsuXIiJDfO2DKQxgXG73I5F+ VKkaE X-Gm-Gg: Acq92OHRR5CqyPU7md5h8UPTLfJ/upFvKYXOar/kuGJO1+1I1to3LVZ8J4G+Pp5RGQN tiDeKulRaxq64n0Io5ZUfUjp0V7rgV1vAmdATGnMv28Wu5daJyz4UVLS3fMVoCyeWK40KpE7uVM kQ5XtyrTJ26OL458B8q+AWNHCZL/mUASxPYoMaC2v2LjfKZzAlgHPHfnCnoLpaEc4PYC92Idb54 /pWRfqhAmNL4lIgu6QSJ2MN5smh9zHXv1FyIVYWYg0JNH+UnVpUZwKvNk/uQGJHwGBojeyAajqm tjBFfDquqq8ugwO+wQxF11XDeR570HPY2Llst/+aksZGW6pPfUYnsaXDvtFki9JB9SZfc7Ldg0l icFc6t99jPU7jxyQJcV5h+oojxYmvXXFcLBhoHYsIqGZTzMYCGcSQEZ8MoanEgUW/0dojtvUhA1 LJiFVVV5HiaSHEpr6qEnCC4m5koDDg9dhWsarr4vM= X-Received: by 2002:a17:90b:5845:b0:369:223a:cb5a with SMTP id 98e67ed59e1d1-36a673ff9c2mr5643904a91.5.1779487412665; Fri, 22 May 2026 15:03:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 25/64] target/arm: Set e4m3_nan_is_snan Date: Fri, 22 May 2026 15:02:27 -0700 Message-ID: <20260522220306.235200-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487913120154100 Content-Type: text/plain; charset="utf-8" The unique e4m3 nan encoding is SNaN for Arm. Signed-off-by: Richard Henderson --- target/arm/cpu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 4ea076fe4b..ffe0f6bd09 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -313,6 +313,7 @@ static void arm_init_fp_status(float_status *s, bool ah= , bool fz, bool dn) } else { arm_set_default_fp_behaviours(s); } + set_float_e4m3_nan_is_snan(true, s); set_flush_to_zero(fz, s); set_flush_inputs_to_zero(fz, s); set_default_nan_mode(dn, s); --=20 2.43.0 From nobody Mon May 25 21:16:02 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=1779487817; cv=none; d=zohomail.com; s=zohoarc; b=WYD1lMG2vgmX0fcq54UA+fJ2x3EPwfskMxwLdk1cnr3m66P7Yed0po88ft2CxUagoLnfraE+vNYZKSO3nS8vUVx439sF83ZPh4V3Z9g796L9/sohDPyaXUV901LqKJSKDGTIvydBAE3mUKMOdFWgUnMM5llr6cHz6pNe1cQGxSM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487817; 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=onBL44SaT8qff9Nh9+lZiUtb9Db4/XzbdOKlNM+CizM=; b=DnBvxpZIU+mqdSQbydijVOWgpz8USD0PSvaBHk6ckzSnxZiil65FT8qQbVymwGBTLIw2y+W6Ei/+5sFsubGPjPYre1QEBiqCHMkp9CAQVCigZCD/sRPehX55LKylHJf0ps9NfIBuF/mKvWLv85RGed/WmRVX0JG/elHPp2RkVBw= 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 177948781793485.75997284157404; Fri, 22 May 2026 15:10:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzF-0001oa-6D; Fri, 22 May 2026 18:04: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 1wQXy2-0007mR-6y for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:43 -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 1wQXxv-0008Lj-5N for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-366139223e4so4763819a91.0 for ; Fri, 22 May 2026 15:03:34 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487414; x=1780092214; 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=onBL44SaT8qff9Nh9+lZiUtb9Db4/XzbdOKlNM+CizM=; b=zCa0akZ1NAYkXIncuH2y+GcoqOwBX2J6wM5eMW/WM1DqEpbRFxlgUz9e5tuWD3RcoW 3RtIcVS641fsGDNO2x/CSnpX+aE/AbbGH1VKeflJbMFRB+PhH16S+LwhdS6HEIDqkd1P EIBcYB6S99WXRexKpFuZ4ZLeRrCB8OxP6edUPzOIdpmhMqphY7FTH18o83sadSCgFuaN xBmV5BIV3zTKerIRd6K/5YcJCWHFeXHKz9SauL/KT3OWbiBssacahFPQCewe1nF3qVXd W0kuTrOgknMrGncXJV85v8t0uc8al/8KMbPh+Jwrm4pXBFbH16b5vcUK2vpIQhXHjqj5 0UUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487414; x=1780092214; 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=onBL44SaT8qff9Nh9+lZiUtb9Db4/XzbdOKlNM+CizM=; b=o4WspouBp0f1/ukIXRzVCmXFplfP6rBiF7bC5z3RnC7ZzDY4Y1mwYLjzFWMjZuI1IR I6idtFVViJZKYe13AKxG6WNHtt3PCbJfe0lO6bA/nVE+qvUjNP4U9YIfARmxH9OgXJN3 30UEDNyu2ayBjPZH/4X1qmt5wkr87brLMbrUumq4FId2x/SzfrcRA0pJ8LB2wdPEnTNv 2ZlsfdbCMfUga7q2LXwrFSmxmPQY+r/j59tMZTA88DSkYBQskjSoXTL29i6NpVa6E4U6 M4vOlOvO82bVp68QvfbcqMXSaPv5ItTvppYDO/cYDt4uZoWcG10BhWyAvlE/1YaO+cxU kqXQ== X-Gm-Message-State: AOJu0Ywm1hwX+CoN42UwQc9IgYtoHlWhSlp68lf2phpMXMQ54XSVuptV WrHrL6DJpWUAx0fC0AQaXCCs2NQSl6sGrpWsCmBdSV3V0dwseD2vqbL7srz6iBAbaNAP+jisB6B xo3F1 X-Gm-Gg: Acq92OH9tEQ63BpJ46YCP9WLOqNHgQWOQJwCr+0WmVjysQbuXZqzK6TNI0esEJFK5u3 d+XCd3XVjJ8H6pv96+3B9uH3NCBZT06fuAwjAWUMz1N3y3AcPQUGZ5KF8rLOBWlDC9X9MO9cBdg AuoUprj6efvhNKKFH/hwK8RmGqnoxlYQgMmXx07XaZnerCUxAnB+5OtznPoYXjAO9mV3SgyvTk3 V5fswRw5ujJkd2bFGOYzjtmIXvlQFkaQArmyft9TeaHcamON6PwVHTjThRfVM2VQSAcjzusWJuQ 12ZYbyc2j9T41jYgyg/rK6B6gYuOZT6x+LsqnqSk3wUIYY/y6NNKGJxHW7tdxmXmU2WRVL2a3uK STz5KmEgdOS1kbEFH6JMy5Jp6BiqbNAL3OgpdrSnSdSQA/k0ccy3tT8gVXs4I8L8NSsNrpt8WoK sAzCu3vFUHf3gGZ9mKDRRSJcvhilEE X-Received: by 2002:a17:90a:fc44:b0:368:85fb:7b8b with SMTP id 98e67ed59e1d1-36a67636980mr5644476a91.22.1779487413559; Fri, 22 May 2026 15:03:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 26/64] target/arm: Implement BF1CVTL, BF1CVTL2, BF2CVTL, BF2CVTL2 for AdvSIMD Date: Fri, 22 May 2026 15:02:28 -0700 Message-ID: <20260522220306.235200-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487819079158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 15b40090c0..4914e62107 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. @@ -10609,6 +10628,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 Mon May 25 21:16:02 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=1779487747; cv=none; d=zohomail.com; s=zohoarc; b=LsyQPYXY6zkRa72gqQwJHtTa6MlPiveP2kMYGMjk3x7hkYbyMdYl1aVEOS3YcNKEjKVvJ6H5TtXBCL+Q3pr0y3mR+WRLolKTNpqH5YL2c2roqVnxMRmfOpOzycqTnxU6Kh/UbPkftvvTkLcAdqTaWQ9jHF+W1v7lrmTiftuUw1k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487747; 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=XQO5FSbdBVeFLncgubVNkVi+AOHL2NA1zav3K9CsDrM=; b=UnPJEUiT7raTIk69VtidUd4ssv3SHSldvfTWYZm4pVwkj4FKUrYmHi1DEvzirlVZnNyKB8KHaTrMpqu342t38qNeUtyOUyBw002vmx8vGNUag4TxDL9w7WPW1UyBaFSaURn5KiRTyLRzKZGPAts2zhqMY3tvj/4Y14xau0M3sUI= 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 1779487747156874.5182985335356; Fri, 22 May 2026 15:09:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz4-0000pt-TD; Fri, 22 May 2026 18:04: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 1wQXy2-0007mP-5t for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:43 -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 1wQXxv-0008MG-Sy for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:37 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-369002b26f4so4443067a91.3 for ; Fri, 22 May 2026 15:03:35 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487414; x=1780092214; 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=XQO5FSbdBVeFLncgubVNkVi+AOHL2NA1zav3K9CsDrM=; b=KKsfksAOBkw8kfDlf4nnM4fvIH5VRw8OgWQ+uDc8JOFiRh+/MwQDTCXJoVopMehecz BgV3ATgqUD8tbrs4l6Yw+txBqs3YmXCt9eOc4oJGIZfS8cumtWfsEomnZvWApt5bCfpj bE8XWz0oXcMCNc3n536Vp7EehzVwtcl0DBOryAn/1y2M/ZR8J0xiHMPzfGT/FXY7hFoX VyhBvL6rhBAGz+Cw2m5ac18noVn2zkI1EfsacTdtONVJyx5hB4esA7WvWsCMoC2mPTBl HmrEg4mtpVxAVEL00z0VFzhxpN/RI96CyjzEqotVcSG8IEZSvMDUB448wK7sdqvXkPQI EomA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487414; x=1780092214; 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=XQO5FSbdBVeFLncgubVNkVi+AOHL2NA1zav3K9CsDrM=; b=GEuTOUwywKBbp7rV7orChrWAXXBlsOMIoa8sIepC1sMT9D/be7+2HKV2MevIKufVgv ugl7ynIzcsRpzyHHoM7Wn3kLj2ibHo5+roEkQWW4kgsGkulqBImuA9lsx5k9n+V4YFFe kB3FhZ4BRM+TnPgTRXxuvYGxgh5rRjuP//cTw+3aQaxCKHLwtX34lHel7RxrHMrGcMPS 67lllaP+asfkJ3diW28F8SWUM/zi4SMxF7LQXuJnLO3fLtam6bAMt2MOf62eu3cPp5bH Fh4BKtn6pW6hKkD8A2mYaQFeoSG1Igv8vOcQgDMZ3vftekf1t2eD4eHpxz5/4KsTxr/i JfNg== X-Gm-Message-State: AOJu0Yx0bc39Vz0cv5OiR1+GC+QlRwErgGhTx9ZHBQOU+dyZWrHwDc7G 1i42LoRJUuVPoHzxLnQuJQDtO2RXyzfWrvUb+wuh9h/xRzMd/fsYfE3xeBSVphG6IbPo3Dn9JOw f/O+v X-Gm-Gg: Acq92OEMMqYQosQhi+U+437HUKLDQsbFTBMw3hL5atzT+XP/s4qOxvj2rPBMb6GQiNS /Lm8n7FyMSFyHCa7YktTgMddw0vMj2UWzpr3w4SSU9FRJzVn6SaWBi3bT7XYIjFJdyDGQ818CAF f/mlXHv+K9LgbrkLVKTRNVSJkDZkQCGSDm4tbl1YJNQlC1B2no8anFIAIbVHNJ6R8vOM/hE/5UY M5LPwdLJgaMZI1vYcnDAvaX3BJ4QcyzwEAfpzqWPE4zbk3eChMjmRqopAyc6uah6RcdXE7NblVA Pv8OuBRdjv2EXK6ICmsSsoSE5oejTWr2l2bNYZpoKwwoUKnycNmzDJYn1uTbQivCKhaCDPawddd R2D1bh82DUIwqxYpp3aj2Ovj10ZOen4hJN5SeQi7/cm7eTsTqkEohE84tYi+zXdZU3kwlMV0VLc 7An7nk6kTJ8MZVHlm8JbGIjk4iPEEP X-Received: by 2002:a17:90b:2585:b0:366:3ac:f730 with SMTP id 98e67ed59e1d1-36a6788e0abmr4986795a91.25.1779487414337; Fri, 22 May 2026 15:03:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 27/64] target/arm: Implement BF1CVT, BF1CVTLT, BF2CVT, BF2CVTLT for SVE Date: Fri, 22 May 2026 15:02:29 -0700 Message-ID: <20260522220306.235200-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487748585158500 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 e08802c816..dc832dfd93 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_STREAMING_SME2(BF1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, false, false) +TRANS_FEAT_STREAMING_SME2(BF2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, true, false) +TRANS_FEAT_STREAMING_SME2(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, false, true) +TRANS_FEAT_STREAMING_SME2(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 Mon May 25 21:16:02 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=1779487681; cv=none; d=zohomail.com; s=zohoarc; b=F2RQz9NNmyxbppX+hDUxLZMhxOn1q98HX0MXmUJciy8QfFbEY3AJjha9PeLOytpTjhfiXiN9BTftJLvKqfkyJEI3sD9ZpaDzxeiGYEJP+2sGF5ZrQGiPvRJEoNFgEBQ/tXWeGK84XflXuRYgU/XUW4lsMog3V6hNPxFImFJyHyg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487681; 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=Xbs1tOdyRz8Grtev8uklZL57+yUz1abxxPTbGB35NXY=; b=aEiFOvbFLmw+B8yheJRn7nuruMh9FRwBNl1xFEReZnofp4WfCIKwHpPREZomtVB4lwoOD6rpePFuABgQryXG+5HzZgY2LKQo3BXzDJDSHZwwoPX0ytHtKGFI60hxmvyOs1brQbnU6NjXPdGTkHmNLDlAh5a+ryTdN30Ixe/cXbk= 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 177948768193146.23827875701181; Fri, 22 May 2026 15:08:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY0u-0005EC-Rz; Fri, 22 May 2026 18:06: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 1wQXy2-0007mV-8o for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:43 -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 1wQXxw-0008Mj-MV for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:39 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-36a35e4eefeso1935288a91.1 for ; Fri, 22 May 2026 15:03:36 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487415; x=1780092215; 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=Xbs1tOdyRz8Grtev8uklZL57+yUz1abxxPTbGB35NXY=; b=YYu+si+l8K7xgNeUnl677d6JXSNc2uA+NI3CmbUy7t1iMlf7hfSPt0JRwS1JOPxP6T 0k2WIUs1+nd4mup09n1QFFTyUArIrH7V16nW7I3hA+ABTCCoDbrOKFTqtuYstdfr+xPj NyN1tYuI0ce0+y7CLew9MTOHLH3hBLeFVlo8vrDBlDyFTlwaNzXtpHMBuJmtvk3AAgdM cAlRcCb0TpDB+NVy7/229B5X/0fjQ1hd0uZWVTeRqlKNnRjMAs+z/GJr7Egiz+ctqwQu NjXWoChX0+SV5XGGsZdBBlTefLBXtKbliHX+DISqRyvrGgT0ZHLlG4/hlrvZZMjLb7/8 YZJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487415; x=1780092215; 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=Xbs1tOdyRz8Grtev8uklZL57+yUz1abxxPTbGB35NXY=; b=B1JX5epz2x84mUY0EF1rpLqEmxQH4zrO9B1KPqEAqioUbYxsdexz+MmmnCWWds1RhC EulBGX8ID+LTjOoieHPWVzCJ34JQ0Z7q448aYwwBhlp4gRziS1aBC964N8xM6ztm9UPU KYqDq+JZO164gQlQ9TsD25GbHM0s7grBIXJpzZRWNomDWJVI6e9xqbZsCb0dq5CwF6F8 L70wvwR3rnwDLoxN7hPlkZCxzo9HUxDJ/XS3kxj219vYPt6hgwr7mE1ObHeRawe8M6od 078F3Nnh3dIc7kt6B3FaQrdYIaYIJ1eOCNuyOPhrzbUmLPu5u3ntuaUju1/c9ncQWYIi sBQw== X-Gm-Message-State: AOJu0YzE7sZ09T+DJ2bS1GUuXP4TGVi8KGz/7JgXLB+psH+rS5y5RyX9 P2h5KLKGqzOfMDp42c6Q8Z23SUnIVIM0NDbyziZbiuss4Te1M9QLjdK2JmTDn7WjSx5QN6q3UXJ CjdIE X-Gm-Gg: Acq92OHjnkDzPs3irH+aNAVkC7XnOYYMKMFI80aTgGb9oRvyPi7d8bGjCd7DEiOatN6 OPAG5ty3/eFAJS2mw6Ylx8dejbUcntt/xz+vDpCmAK19dT1IUjIm4z9R21aw/6gQ66aJghb24jT lxOh1mEnlSwntfhX5iGTNbccz4ZKDF7Sr132D/h8LMgryXOJ44mvx6QWYViw09vbjW+ClIq3vC5 lYl0X0/48nM6cGMsnSXsNrSI56vgTorms9gR2wyaelbzuzuJlZ3jR+bhmkrVd2OWTe6l5gjZvo2 x/sGobM8OY1Q6ZyAzWLlwqjsgwWgfpBuavrSPgwAuPCwYhdLPRDODeeqmei4+b/EfEE+Os4FBGw RiL6AFiBJP/FmGCtIE7c8h2zGU8URg4vnWniK6Eb6WtKoUOqKsHDDPfPc/RZRKu9bfk6URY34hh Zs4iwDN6KpovxIQx1QVupcZi+jb6HU X-Received: by 2002:a17:90b:2243:b0:36a:b34:17e5 with SMTP id 98e67ed59e1d1-36a674f5d27mr5359383a91.14.1779487415293; Fri, 22 May 2026 15:03:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 28/64] target/arm: Rename SME BFCVT patterns to BFCVT_hs Date: Fri, 22 May 2026 15:02:30 -0700 Message-ID: <20260522220306.235200-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487684161154100 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. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 Mon May 25 21:16:02 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=1779487505; cv=none; d=zohomail.com; s=zohoarc; b=YpmOg/j5n4BStaYi8zb/R4HVA1S6EGAfxRvdEJJhgMI3GfxvMCE8hDSQYaIgIOX7GPX3OzniQQ5BeOl0uTqJQRlLjMcl6lbqU9PZ1Mr47skGqS6OWjG0ggOtGg3VQ/1WB0a4ikn2DGk3BMrIvry4oGvipKQPnx9Q2m31wO+IDt8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487505; 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=TOFQZFhkvb8EdI68xkFcBNKbEkrD6jVCwTPCf66Ast0QLITTLbeod2QOf83vH0W3vCpPhqHX+p9RNOa/oP0+Cl3Pe7oSJ6AbmXkAJxZLAR9ya1Vgx0EUE+AbmiVPW6swZ0tcG69+puvCXUKP5+XKtnk3J5J7aoAUxqywl6utPhU= 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 1779487505198286.14845044308083; Fri, 22 May 2026 15:05:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzB-0001TQ-PI; Fri, 22 May 2026 18:04: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 1wQXy5-0007pa-TP for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXxz-0008NL-Pz for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:43 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-367d88b9940so5145321a91.1 for ; Fri, 22 May 2026 15:03:37 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487417; x=1780092217; 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=IfruLMlUYv0KcmJzbC3qhzWYB5MAwQ1gu6TaXbIj9PclyAm1kc4AUF+4L41Q0xxqyD WzSVpntJcj3vCcqPPTBVOchNntw2CnZE58A0tctr7G8ClYbzydE1AT+L0cBpnx+glKwD aTk0J5cQr7I7xt0luS2ZQj2NHMppHK9U8jMiWfalxoEsPOsIoszK4BHs7zmmZYA/LEQv nzYeepx+6IEVYDVaeGATv/Z1JGBtxv5AwcbEUbgfwE/iOkJ6a92L91r163PAGBdZsa0n 2ZejlenbcfusdU8JQt/dc5DwYLcpSTfqDjPO4u0U3L/BhECmtSBGBwDbfChBwVOOZGol 3fxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487417; x=1780092217; 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=Te3maAbjMyRWmv2mrxLLHIIama7L5yXGkhFyTXUXyUzrzdjisgfLUKTusACOZNx2FG fGhMNcCFgDi37o4O1JBTmZvk1SxZrVNs0sqPoEzH5NTON9wfNjoMzgA67wLdet/LS6bx 0XP8xmjYbU+rAr8yWGufl7cv/ojunid0fsvaXW3M/z6OQ1EpO/A2H7eituP2YqN3O3Z4 jgQucBbT5YV0rbfcJwDCtcBSoo2ukiVzpS+9vUmtvwuvof1nahpjUnh5osggRV89v7pi BuX+t9ktrOUiMx7KaSkBpxQOaOrwx3ypRAy3AgsKAb8XS6vjN4EBo5SEE38MaI9/CvKt bNUw== X-Gm-Message-State: AOJu0Yz44SVEcduf/AJTjovD29dbCfEoFi2m39s+jmMF6lo9V1V0me12 WbdcDkAaCJAeMcYAA61FyF1ZIHyj+bkXhcF8NfUE1UU/aOnuXWuURwNrM5mK3bVX/+rFR9ZyUdC n3YMq X-Gm-Gg: Acq92OGcAzx91xn2rzBOtOdP8vFXGhUZkReXPfHbPehlvnZsPkfKI56O3B+ttaK5xUZ pQ2g+5m1NuKLBMjCKRPMqVTiyru8/gh4whqN1ty5afk5viJXDmRv5JxOq/t/Bu+n7mTpSqN2buw LFZyOSFSIeJcmhgSuApN4zWHtNN7N1ptPkwXEy4X7Sz2P0lUyDz372HUkqG3Q5JnvA2vvEL2giq XpWiKsC2Iq/y0HqMUv9BY1AMZTALehM9bZIfbvlbSp5R6GaKQAUHF8wRv1SNT8IYlnwL2lo9bgX Axgyzl2hUpftE2aWHGTYHDL0mtfir7e9z+Hy8U7A9JkuTdYjyztp4B7TIvFy0mLc4bVfdk1lXWF 2kTFD/sPtqqjwF3RgbFBtxfGuYpNnnbvINkKgL5ZAFT4sGb4bJfXzgP2dWPsdc/xrFUlHh9t+/8 YEP8VjQoICxA5GkDW2hrhtiHuXvdCiLjlDGKD+IghpWCnhno/pjw== X-Received: by 2002:a17:90b:3bcc:b0:366:3517:1a95 with SMTP id 98e67ed59e1d1-36a6746f232mr4963048a91.0.1779487416641; Fri, 22 May 2026 15:03:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 29/64] target/arm: Implement BF1CVT, BF1CVTL, BF2CVT, BF2CVTL for SME Date: Fri, 22 May 2026 15:02:31 -0700 Message-ID: <20260522220306.235200-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487505475158500 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 Mon May 25 21:16:02 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=1779487703; cv=none; d=zohomail.com; s=zohoarc; b=SbnsLcuC+3+RZA1eax/4YmglIfkr8nKBO+8VdGwlGjDNOVWXb+gJmKmam3+ohmLR5CotfsEzzA9nevCH9ObtPqeq6ajQVXUrRHEX3Ct/VG5Esbk3J0IzfcNK0K7GSGmavn0gC/sFuheh+ZCwJ74p67qNRyUZTqB2O0ouunHI7aU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487703; 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=DLDlqvSKz0axT32mH/lq0zrXBdYg93xmQ169vGKsiXg=; b=AR5B8myOXr7y8ELRY/fitMDv1a+egseMyLcRqbFHjl1/gHFmqP4QKlLhtKHC2qUXQAlAYaSO363c8aeb+U5H8ugqcUy7Dmym0NUu9R8e2eDtIiHI9STLcApmZJ9EGrTlpbopPPs6G/2rY2ATe7XYdjyLtpcROzpRw2TZSV4RVxk= 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 1779487703469618.0556239084957; Fri, 22 May 2026 15:08:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz7-000198-WF; Fri, 22 May 2026 18:04: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 1wQXyA-0007qG-2t for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy2-0008NX-GF for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:47 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-367d88b9940so5145328a91.1 for ; Fri, 22 May 2026 15:03:38 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487417; x=1780092217; 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=DLDlqvSKz0axT32mH/lq0zrXBdYg93xmQ169vGKsiXg=; b=aBWm8hc/91PmmCwYKt6yJmwt0lURYGQ6fHrzNdLXzljeedLZcYRUlAIE3dFuwMSE53 iNvxUDgjYAKrvTUl0YPjdB4iMLsj9wvSdL5Qo20uArymPLeOg10WHZiCm+3XUdKubKmT uu05uvEWnB6kgsoEJLKNuc/HXV3EXS/v4+gAeoq/3VmCjTQ8Jv6xXiokDaaoFtyqfk3Q aEcu+BoPJDnuOCWMA1Ykf+4J16lsiVGtHTRm8FWbiIhYQz6DbeiyRhJ2tT5g5TIWPaHl akbBD71zrYDtogELTSs6Q/5Z289Cn4YsIjBeeQVvIaiVzP8fZfXLaxP17plnsfskrfXD oQQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487417; x=1780092217; 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=DLDlqvSKz0axT32mH/lq0zrXBdYg93xmQ169vGKsiXg=; b=O5U2RzKDZe/l08Y9nj1q3GafjQb4oVzUzTHK/fr+Sz5nVpRZ4jPtiLceFg7qpavEbx caBysl1hOqekvrIXCCI0Stk9W3Q7rHUjpE134SfQdvu+1yT661Suo0Jw75XsUg/ndgsZ ZRwljn4VuTmRhrXPDyjLU1sKN7BWZ/mJjDtly+TSL5mQ/K7cGbCAVsIGs6k2NhaRunqX 1zOS5jt4Wjx26ER4vekZSUw06/LVKEl6QiIdT00SXA/oJpmS0r6xunV3i5DU/JOhW57g MGPEpNBQQV9pnqXxoIA0KIYvnZ8cd3C+M9URmcrDt7W3Fqju1jAo78IiYBujNcZ6rR/p JYxg== X-Gm-Message-State: AOJu0YziGUXYUcqK4YJ+U7qWM1LK8udFvfklqisFyxFacfhn3yCASbIg UJvCcwRnJpVc96Ydzy98Pmgz68JA4sZnMFOiWsHgNmomB4GBvZpO9dHr0PARWyljMjN5vqUS3a8 /t1By X-Gm-Gg: Acq92OGC4Rb2twZAGJgKmQ4aKPcaAgVr34kAog2vkDIUVORFfPd2fgMSg5kGwpDVf6O NRMa5BPZWYubBfBIXTX0ewSitb2yiGsSUdPbzXcNmDuNTbUXVD8ne4ssp6h/U2G4oZ+30ZiNf3r BQmOc3mdsdeyszYKIn598XwBbrId91KEwWy3PkZDx00CbLT6oY0Gx7NHGGJuGXmuGaxlSezr3mp RbtZnvuVBBjXvd71dyA1oQPCxnW46uzdAsBhfhVad1UTJMpZQn0RicdHDmBhowcNdRAAdzx5XJI HsKs6Y32Bg338VKe4Z01mTglZZ5x4G6L4gxYPjyIZP7KVWEYJ22lXrqjVHQJb2Lj3tqqhUzyecs o3nJi2cLV8Bpbth+Ud5BYkfrfGNzXPMmeSY+Z/sPVqrUHdApDXOHcV7OusJsinL0LCMMNHC+kdA LYf83V49/wSNqWTKEuFBEoq53XOC8v X-Received: by 2002:a17:90b:5188:b0:369:c5f4:9681 with SMTP id 98e67ed59e1d1-36a67853b18mr4952980a91.22.1779487417421; Fri, 22 May 2026 15:03:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 30/64] target/arm: Implement F1CVTL, F1CVTL2, F2CVTL, F2CVTL2 for AdvSIMD Date: Fri, 22 May 2026 15:02:32 -0700 Message-ID: <20260522220306.235200-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487704513154100 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 4914e62107..593448cb71 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10640,6 +10640,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 Mon May 25 21:16:02 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=1779487541; cv=none; d=zohomail.com; s=zohoarc; b=XzL2WmD9hCoZAmTK7GhdnLezBM61GTfYFVptMdxl8a4R1EecmYaTL11I+CNlEKV73yqvblskZMmr+YLHPRFnxtSdI8k9ufDs7ud6uHirrlUuR5L5Gks2pxiV3wPvtrdDq/HLRZKUaAPrA2OqttaYagVKjBgHxrCAC9S7hB8dqtM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487541; 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=9uX8NoWKwP9a9B5vn4qVOFP1Yc4reVtYrzDFJuHRuxc=; b=jPcOvPOL+EgB1CqNCSKoKBnjOS2zgghttEZ0teP5BUm9AmR2Hfc0XUKwuy0TPZahv9pF7A+7wQ8Hivv26Cvb7iU+jrvO+ZPsz1cysZaA9Skt0bQ337BOQFh5agKUpYH/xERy2HYr9qjOSLJde7RSBF+ETkwTD4Ycf/pZ5J+ZP2A= 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 1779487541586752.7552472010265; Fri, 22 May 2026 15:05:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzO-0002J6-8C; Fri, 22 May 2026 18:05: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 1wQXy5-0007pX-Rr for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy1-0008Np-UM for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:44 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-36a35e4eefeso1935303a91.1 for ; Fri, 22 May 2026 15:03:39 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487418; x=1780092218; 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=9uX8NoWKwP9a9B5vn4qVOFP1Yc4reVtYrzDFJuHRuxc=; b=zAc/DuQBzOVR/16E5gQUDT2vpl8NfTR+ictB/iMGyB+WPt38V6PLYp+uhNtK8N2A5+ /1rrE712Qr2EWK7h3F2OHJBYFFx6IbYj6Cyc8E72sea9bWa2LTK9UuW6l/sXHve1eJSt 3AK1OdbghDw8jTMEa0JzGn93q2XgOhM1ZWMIMN0U5rxxVYr9wKNuC2gp7HZixGAiDlu+ HfyY/EK3GCZyNLVDeaklhpCZ8nswgnVZXeIXSL2gbH/3rsQYfJ/lQNGD/UiYjXLMXxth 7MqXiCqeffR/fxaKhU3LAfkxU5fM3JbkAm9vfvtvhaOppL2MEgxYbRWdO+ePGhWlP5iJ 9+og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487418; x=1780092218; 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=9uX8NoWKwP9a9B5vn4qVOFP1Yc4reVtYrzDFJuHRuxc=; b=SJEEKv2VIXnZsNHqBC5jsl8WwEXOXxGC83+veLraLGmCOeU7qfa2/typ6np6bQAumk O1N472ceMvPS3SqsAR/JWesDgTc1xjcKD0tg7apTwUaad4nAK7bWRlU7ZUmoA8gM6xnH iiJ1TwtcwmtsByHO25l2QHIy10K4HpKJJfkkPuTggYSFu7/kUH2lK13b6JCW6cvS4N2q WO4DuZllijXdfOir8Jdy4FxVRVGQJXjS0kXE99QhxSDBa4wHvY2G4CXLyXEcB1nytuy8 WKWM4yvl15OyiqEazqYlzgLOpZcMZuBuGWCGgtgQO2eiYH6uY+l5HeFxMXCcgEtyBZxs WKVQ== X-Gm-Message-State: AOJu0YwtI2DoRs//4Cbs2f7vAvfGi9hlP4k3B8Z1+vPQoTjcJ7NvqnWT oPwGROkDUXwnTcsKBGEqkC7ordNu+NjbH173ek4q3aruWeZo/EuCcj1BnLo8Tk8uz9s4TaBgkjp hExYh X-Gm-Gg: Acq92OEHjwqYwSYOIzAle335HfVxKSEb+8tpKbkYvzQ8LJyKqt4nhOtDN0pKN2gDEnQ ICQRINR2WfpJ33JVELC30m4+P0j4Rfh7PY1jW9RGf6vXmTnXBD6ZMEE3AJ6ERYJ1kCRk8ZT2NqY 1BzE6wv2GBSfx6UfxJdvUxkxK2dgvbPz8NMjfISIXTHkjWzrDpfR9WVtRPsKL4vdzsnfZ6a+ICz BbbmzE2D84OiE9PF1bJAT7GnLbjRQBfq0NdfL3sHeCp6uEtpqb6Xy3Nz1xmqDOtj7dRaTM7HcMs cAmNTTxiarn4mmhd7me22oOGXfRvSCldep+pYFCSoZg3VVgkGGgzqoGxAx0S/TfSmophlLD0zSU yrWfqNUH3WeQ0RIZFp8zxfrNUC4NmaWVYezqIj61XP+Wwu+ed4cs17iMgylCwbA8i0haPI+QqUX sayIWhh6g9H1FnpkMjMfMxhexgvZot X-Received: by 2002:a17:90b:5785:b0:369:1dcf:4a46 with SMTP id 98e67ed59e1d1-36a67649211mr5043261a91.25.1779487418332; Fri, 22 May 2026 15:03:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 31/64] target/arm: Implement F1CVT, F1CVTLT, F2CVT, F2CVTLT for SVE Date: Fri, 22 May 2026 15:02:33 -0700 Message-ID: <20260522220306.235200-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487544122154100 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 dc832dfd93..18a69013fc 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_STREAMING_SME2(F1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, false, false) +TRANS_FEAT_STREAMING_SME2(F2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, true, false) +TRANS_FEAT_STREAMING_SME2(F1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, false, true) +TRANS_FEAT_STREAMING_SME2(F2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, true, true) + TRANS_FEAT_STREAMING_SME2(BF1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, false, false) TRANS_FEAT_STREAMING_SME2(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 Mon May 25 21:16:02 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=1779487648; cv=none; d=zohomail.com; s=zohoarc; b=ct99BlEbxsQYOF5TcH8kNS+q7pbqrE8dUXtpgwWABiJUlIuYBeO0X/O4nvDbwqn6ZJYZxpuCZCIKjB44tb/Ji3iZGYTj+DA69ZvHJTS+QyrM2nR148KhjYkHMUAg24kzzPd8HWAp888eDbo2Ydv9Hv4WM3ZhfEUTEcr2AlfENRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487648; 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=FGTFNRZNDeIogWg9PXVy0Mt0I0PXYOQbLhpgZfuIQWS43cM+pogqpLSeVqSAKEDRvh8sBaQk2CBh1a7IuHEXiTx+iowPVoS1ONJe8O02M7utQU3BhClbDovYN+hHpborf+uatPUT5A0PbwhGdvvHP6SsBhTuhYxg2cy6z3nwVbQ= 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 1779487648410715.0146115027819; Fri, 22 May 2026 15:07:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY00-0002oJ-RU; Fri, 22 May 2026 18:05: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 1wQXy5-0007pZ-T7 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy1-0008Nw-Tg for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:44 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-367cbac9cb1so7415015a91.3 for ; Fri, 22 May 2026 15:03:40 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487419; x=1780092219; 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=g8KPw9Tt7ZkWYGjysH+8njx+ByK6cfq11jxBKm2ZjIX4bsnkg8qEaPKPui7oez4lau utE1oOFQ6vxpwqp/mPUzL1X60YHuHGfxeVgQK1j2RN8mRLR5k5Ldx34bdbBh5DMzGfXr jIE16jabYeVuvh1FYcDOiuYvCU7TdB7Ve5TTh6b+QNHPt6C0OTBd2diN5yJlV2gbWP/2 DwNrsDweY9rDgH7IAwGBmsGy9rGr509UBY9S0dYzsdIQD8OSy8NObsK8LKYZ7Dw82pP8 uzujsAVj0h30ROar1JS0WZi0uBnsS8efSuwBYckfi3rNSrjNY1prwLp0gcZNrCFruocx yGtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487419; x=1780092219; 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=RAvuqVYC5gTA1rkrdqb0/GrfAWGqkEtCQs3Jqw1z5EI/nsPG4TlSWWdIyEPu9vXQGn 5nZrjoRes3G6g2eYRzHOII0ysIFLJGJAlf6dgPB3Xf84Kdb4DWhDbmPn5t5ZE00DERl6 tApEs1YLfm1tEv1YdUy9e87YVDQKdYkaTxxbBWOKbub43iI4yymeWrW1HCmpKFZVehfO MdoLwJ9HLmfIvel7km8Xkpl3cgBoITiEg6p38E3dmlGLP4aL16Y3HhO22vdMoItuJMAd pgZzqkWVQ8PW5s7V3lu5usnQG15suRgMDCANYBIO+4oXYcu5+27XwavyWfWS6da0/sfZ MWJA== X-Gm-Message-State: AOJu0YyIZ7X5uaE82bVZXDLqO50S0HmqL/hOssTQ92EOW8ztsWzNtRuO Uc8RpJHYIWGwSXq3HbTQrLLR3D1JsteOpXgeVzVelhkH9AgWpD/92i/3WytQJUz+Fj2g4mLoNbG sgcH7 X-Gm-Gg: Acq92OFdqQWsaTFYQKyLrgtliDqLHz2NIyLCnYNIxErdl0J0fadyksrlgdxZSb5r3MH zTpl/Fw4QBtEWX7w+KDpOpGVAyZDGJ8q7I7zXP+H7d2BZuqvu6mib/HnmiLkHJkkfuDRunkHRZw JXc8tR/hNL0R6hj7w0Eu8DmjbLLsNXK9WiGGeTd8pczxsaWE72lIfz956W9to03TUNYfO38NrVi sXg1ZO1qhn1UjH6yE8cAzYUNYiIa0HxvRXPoZs+pIDWFmfNLa9nim5V1AZAbP3oNU+OgCt3WbZN +297JJukxbDE7rPtPXycIaC/i1uIidJdsyWmzWVLIz+fro6VtpZgYItftohGCfnevH49d0tuNc+ uIZ/QpbmGsv+pZ9uGshjfu2SMn6MjOa85gqRCzP65HBevIIrGxiEtzXz4rzB5dX5Gu4nYAQxtUh TSyAM5WfWrMiitm6F0Yo/4lU0OpiN0 X-Received: by 2002:a17:90a:d646:b0:369:1dcf:4a56 with SMTP id 98e67ed59e1d1-36a678045c2mr5742624a91.21.1779487419026; Fri, 22 May 2026 15:03:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 32/64] target/arm: Implement F1CVT, F1CVTL, F2CVT, F2CVTL for SME Date: Fri, 22 May 2026 15:02:34 -0700 Message-ID: <20260522220306.235200-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487649719154100 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 Mon May 25 21:16:02 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=1779487774; cv=none; d=zohomail.com; s=zohoarc; b=W9buEh5+6Dw1rpEp2gDH15LvtwPMhdIvv4crreXfkId5E2ytFP035mmBKYd5dzNl090qReg21IDzHilTGjnaIvheOKgGrxUtT24E950HagL5UOA5kyWq29KpMwGZ13vtINqT/cFWqHP9iP9aHgd4186Of4pBuDKiL21+uHgk5mE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487774; 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=xQmshg82DUA2SR1wGSLpgv4+jQj7zD/9+Lezzi8yITM=; b=RI8s5vCNPdOT/T8nVboEwMs61F377HusQbI6Ml7vuY8L+J0e94FV8KzwmbAMzYhkrjyEAisTvT+TaEreq82MzCvlxwmdt8G8FTGGW2RzeQhsbKffEhizwQ2jPTq4O62JYR5UPqp/I7kbdP2vKCixakfw2r9Zd3yZv3vp4QLgR6Q= 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 1779487774276889.9641581145326; Fri, 22 May 2026 15:09:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXyo-0000PU-8e; Fri, 22 May 2026 18:04:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQXy5-0007pb-TI for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy1-0008OC-Tw for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:45 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-36a687df970so893816a91.1 for ; Fri, 22 May 2026 15:03:40 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487420; x=1780092220; 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=xQmshg82DUA2SR1wGSLpgv4+jQj7zD/9+Lezzi8yITM=; b=M5tGZ4X0TRNihEtqrQiVIZx0SqojKsi9Zr6C0dqnAe+m0mjNgEaoVINOh2YX2/p7gI /Si80ppnLDT2aaMx/1RoiMtpWW5PoVhwq/MLjE1SMsGNfT1wCDntLLrPS/D+cmaBS8RZ FqFGI1nWZzs8cFhsPD0Bsw21jrOsKcS4nfNkXsvX0o3/ayhlfyuqMqKRmURdvg1roq+T xVrtF940AcjwFreW/41d0aAY9/5DPjrnrloyZ7va7ORlxSTCSdm3oeiTvBvAjLlna8LZ AGKhYyJEpp6kx1YDAL2pSYlXOkSPGHeT7VNooFwG7oHTc2a/o0iHSWwf/IToAYkAzhLD ohzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487420; x=1780092220; 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=xQmshg82DUA2SR1wGSLpgv4+jQj7zD/9+Lezzi8yITM=; b=iQyfC9bpd1xIK+nvbaZB4hsyvLbTd2K2VOmDRHSIkv4xFa269Rt8SYCoPX/qszWUQQ RewkQHbW01sYgbYKftPQNLgWZplEAtdiVNU7hDSMDT7EBH/IO9KzkKkOnLr/6oaQ4pd2 7PxjwdMVzupbOAyUlxbAyqh48W6mqfcj4QzTlMoRxn2LMhdO54mDX7iK7cEgIEGZOmzB 3vpVNsK2Pfi4orIbqrD5q/rVKX/+iukDs6LtWvSbJhE11qlyAv6IdXtSoiUgXHr7iOgB KAeqEbDJrg9J0k7cxDaIxzsPgXMqqrfc/S+BNt7nKZuZGFlZE2Qj78z7TYWXxwNB2UmV K0iw== X-Gm-Message-State: AOJu0Yy6/rT+2FaniPL8zvamuuCMaN0/aQR0iHTkHem5+zV1PMiccGHG uMT9rjn2ey9foeS8GcI345uZKVWQW93R5u6a05KxtcPVG2mqRnt2L1tlJaUfivZZ9HmpqUnOqaP 5YX9V X-Gm-Gg: Acq92OH1yLKVfDem0aFwVjp8DRmihM/6KkFd/qTQxm5679GqCTNU7ec8wWyhRIAPQpE zlX1tDx08Q30Tl9Sk0lAi5XmaO6boEOiBy3d2IaDmNsSvEfX/MT5fvBGl/B5VmwNNREf0cbI0Ar t/F/ddNyEfKkciqGhLTzbo6n8uUT3MzZF5sbfdOA/DmegiP7TDTjZegUz5fFU2VqP6X5XAEQs0Q 5/3wMKQzYOEPvOztN33do16+i2SgSP/qm1V+Hc3arQ+T/Fwcmewq0W53tkxvh/kQef5u31Zc6GU gCFYlE0w22LCRttT1I4LYu7RCcCThhGaK1OzOV6R1FCBV5MODslzkvB6KBfwZtaioY9dScUIFRK csrXaAVcVTn+5RMvYq5DbHeAMDEJwooPaYpGxTO5C7nhXUKq3Ej7VjAjQdlQTvZJN7HSSKjBXRI tH42jnzP7FirpagtwBhOg0tlfFrU+NVXEXGtrZqdk= X-Received: by 2002:a17:90b:1b47:b0:366:3517:1aa2 with SMTP id 98e67ed59e1d1-36a671e9069mr5104786a91.0.1779487419749; Fri, 22 May 2026 15:03:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 33/64] target/arm: Implement BFCVTN for SVE Date: Fri, 22 May 2026 15:02:35 -0700 Message-ID: <20260522220306.235200-34-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487777137154100 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 | 92 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 3 ++ target/arm/tcg/sve.decode | 2 + 4 files changed, 99 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..ffeaf02f97 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,64 @@ 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) { + /* maximum or minimum normal value for E5M2 */ + return 0x7b | (p->sign << 7); + } + } 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 +346,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 18a69013fc..103b9523a3 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4099,6 +4099,9 @@ TRANS_FEAT_STREAMING_SME2(BF1CVTLT, aa64_sme2_or_sve2= _f8cvt, do_f8cvt, a, TRANS_FEAT_STREAMING_SME2(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 Mon May 25 21:16:02 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=1779487693; cv=none; d=zohomail.com; s=zohoarc; b=YWv0m3m7lhOHYOQ9eV+jwlolR1fDzCIiWMcu/SeIOb6L4Q9NSqOl9YypZ9EGgHMCvTiyibIR9I8x/b8R2yQ36rqt+yI8xIf/mxnOSeY0g0rW+yeq+63AUitn4KEaOk1utVplq5CABdagJPA5cWFRl1OrLI4Ki5ziF/doSCxBGis= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487693; 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=+kmBVL3ynjwAkope87768hC0Gw6+7FozwDUFwq/LE/E=; b=ECoqslGRl2UBlVKZoqSBL7IUHETzanY84/eYlyAbEZvYm6pl/fUIh38tf+n7vqFv0s0CYn2hyP5XRdUDgTtIbDYu90g3pdG+TZeAu5ySXsknDYM0YKoCXXOH47awl1UPDEAHFxE7aXuuUmMHozak4oJzFu/p4w9c19nr9wvbKls= 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 1779487693491379.58030660645056; Fri, 22 May 2026 15:08:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY03-0003AB-C9; Fri, 22 May 2026 18:05: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 1wQXy9-0007q7-UL for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy2-0008OK-QR for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:47 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-3697c35eab7so4706472a91.0 for ; Fri, 22 May 2026 15:03:42 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487421; x=1780092221; 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=+kmBVL3ynjwAkope87768hC0Gw6+7FozwDUFwq/LE/E=; b=lpqz0xX/0X9FbihDeNrSwJ0GUp6RDhN3ZJiIW+T6esT/M3t4xj/ijv7nWkN/oCqTnh rJFUEwbq8BVa8WpTiP3VS9UmZRnh+ufNkUl9ng/YXHr5HzAgolP1biCiQCX49v5mz1sT smZXD4zAM7oiJZ3tJRcga43Z3MHG2zA+zKE45z6Rczl7KjJv/ldeIqrX2QyitAB6LIok 0C9KLPXyvuKvVow9HEYoKtjGOCszi15KuheUCmV6D4i8TqNtNun9/zig0p9x1qQ5dBik vgk2u0kobfGP1oP3SAEBsKdJTNgn1OrPK5P7Q0+8CDlUoOKNnaXPmRtv/37KV1t2SmQu KbrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487421; x=1780092221; 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=+kmBVL3ynjwAkope87768hC0Gw6+7FozwDUFwq/LE/E=; b=Mp8BZ/ldYeouz2aQdQzQwsgXdK5Wet+SuHG5ITVZITzhVQdjxxxQ0cstm0pBjQHsZn s9OsNV/ub58M3fyf6pIpQexLA+2ZGZzhWoEgpc19879q6Un0npB5SqPp+q49zoY8d4Tk kSNcsIoPvizgsJ0m9TxLT+k1axQPdHmkKaqQDR00aRYpIWv1uRfElVDIR8MFTUtLozr3 YTcOOfXJPQJcFskjvbskPoiBzMFVYuaXVyBMKsUhn1gqO4Oe6yxTAqwrrHQ98umN9XAu daxWAfmJJbDiG8uiXWcfN1iBaIq8aiQynTw06lTIdd4boktUnxka9v1HqnL5DJrKlO/Q C9qw== X-Gm-Message-State: AOJu0Yxz0SeISCHmrhgKsKNnTKgTp8dXr3LaPAZxbiCTb5LsHvpGOsMA xPZlUtNbqpOqXjGbJxOteCDb6iI5oB8gJJSuY64JIcRk1KspPUX+gJYfenzhSyfFUfLKhOI6P3e JiE8n X-Gm-Gg: Acq92OGTS8cToWtmffydgXdR5fjxZy4cc4JFbnIbzqwf53V9ar37wz1XhsyhoVYkfiT u0Zs8C293FyQlu1FFIcccxx149kNZHDNvEkpFGlC/1KZW3ImwIg4T8N6RgJmHW6nfDyV28nA38/ 3+p/ctv1LhTMl8iMgkRGqM64pKsOewoFSJMI8WuygVbKclAb50i0sQJtgq9h1TvqfpM55lOjAib JtoolkWwRevojIhZBxiImCjmbSQbPkqmOIApSFpxtv4lYh+GV++rgM+3TE1aXuYFk0H5yqxGts8 qNHPt672x21eQ5ChT9Qmu3R0gcsw6rD6LGEiu2ohZCtFSDXD/F7LuPfSjxirGRB6S5YUdQD1niP EPwHSf8t7gffrXM9ZhKH+O1/LXMCdPa0OYMkB8hyTKf995TPir6BGzGffuep6nfpSvKJy4sf+JT TtDRq06D5boR6ajvccMVC+q/eWIW8XDcBP+PtZxhE= X-Received: by 2002:a17:90b:3dcd:b0:368:7536:b5b7 with SMTP id 98e67ed59e1d1-36a677fce68mr5479571a91.16.1779487420927; Fri, 22 May 2026 15:03:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 34/64] target/arm: Implement FCVTN (16- to 8-bit fp) for AdvSIMD Date: Fri, 22 May 2026 15:02:36 -0700 Message-ID: <20260522220306.235200-35-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487694316158500 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 ffeaf02f97..8e7982a888 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -180,6 +180,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); @@ -369,3 +376,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 593448cb71..5c9bf06b72 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6519,6 +6519,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 Mon May 25 21:16:02 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=1779487699; cv=none; d=zohomail.com; s=zohoarc; b=Hp2qEloNDEuRJISUQj27VEk16RW63gkKuPb69aKiSUNg1hXISamXUpvEqE3KlvHq6lwIVXbKbrmGgO/GKxfNXQ2QxbWSiIoHvvfMIEXBiF5Pui37xxVaAM/n4dgKs6E9d2xHwXVqL+oENHFxjp9Q9iw3e6JmvJSN/vL8H6nOpR4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487699; 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=f+/4lSuayiakBpcT+qlsrIYJfNIR2lfST2tvTrPjoaU=; b=hNPcbQaj0/Jg61GXSWP3ZmmxslQOxQpluDhBrs18u95pGhx8ghhNdHvF8PCtlSNUH+/ebftAMEypAxA2VtErR/jsdNhCn2eF2XNlkG1JE6k9O7XwXqyP83h9mYUcJJRnX9Nz/KdlrGWS2brAJ4/r6lBm4Rdc39dU/t8bNzjvmQk= 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 1779487699790725.22043196899; Fri, 22 May 2026 15:08:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz8-0001Ci-4v; Fri, 22 May 2026 18:04: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 1wQXyA-0007qE-2Z for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy3-0008PB-DR for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:47 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-366330b6751so6133518a91.1 for ; Fri, 22 May 2026 15:03:42 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487422; x=1780092222; 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=f+/4lSuayiakBpcT+qlsrIYJfNIR2lfST2tvTrPjoaU=; b=aDScxswzpQaZvCFiiWXK0lqrZPHNp7FgKjlvd8T9/0jl79YvwTbyj9riRZIkpjHPCb P5jmXBq5l14/y9+/HgM+EOM3lGrGgsjHkRN72D+/I+QUyRVL5vFhX+Kc+k3OvPGmE6ww cfSpFvVVzbfyD1B8jg+nn/HCwdVzTUPdtoQ9BImRp/oqpWXGLn1gQDvKHuUbvcXeu4/0 fMVuqESyRpVI1bRmwFeCkWXHbLndFtnOE0CkqWp5PBps5tFa8u15wXzlhqHYgdGo9MRp /FQbPfr4eOdwJEAOFRoqe3/RuAtdJ14hCey8WTNeCrl9+5uF3DbeWMVfTXrMppnjpUjX mEJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487422; x=1780092222; 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=f+/4lSuayiakBpcT+qlsrIYJfNIR2lfST2tvTrPjoaU=; b=HPedZGpcp7s/uR1YIUaz5nHFjUXSnOcQD+3Nr+4wJSw3HtITfAxd54lEdaZ7qzMoPd a39rD7is3189R3+Auf1YI34Z41LExwIfiwrkHZi01hPXG8yqraw4fu5hK07VFsyeynGb fN3DRuoEgr8xQduoWicNCNp4tXVR1VRFtSR4A6iulVAACB8jwS8laXs+344av25yZmsa k10z+WHcHiUn0oaQe32PesyYXzm16wH/RGa4pjRxH4ogIrvbd7/iqf3r/e3F7He56gUx B3KxAoSGKpqnVyKWYswxXG/K+Aw9dSbTpgfAr1Wkb3NHAZFoZJrk7Avnwb2OSlKzmEQV +oUA== X-Gm-Message-State: AOJu0Yy7WZh4xLjoXq+3kNPdWDJD05rIha3DiI2CaBt2YbAtxkDkaagP wnBMk/mv08NawWmRKpxwHo40H26gKZxXb+ol8UBKME+2XzVyZ4TosZ0AjqLgYVobXebRCwTfJoJ 3bvOL X-Gm-Gg: Acq92OFRMmHMrYeicmhWDLNbd6CFdkJfwPIPSz8bON6jBtb7svC0cE84dU+CbDPQxG/ ZZ15LKcNfTQMSamfDF6A2dbUZbGho4Lt6p0Q7iauu1N2Adx713xMPWgtVsFbc/WzBztOXaOLUoR RtF18Z9vFFZWFK3ZFwpkBRvot43KEL+T+bQzIKwytjZvbfNj2sOVri5ASsgVRKRZY0LYLBc2gju QKXn/Eo2gQXrOAigNZKxfFjsjiPLtincOCB0J5CTXWCTi08/DKbQwIa1rh67R08QpcxfLrbCOaL NM2tDdP5lh1HNULom0Wt1X16dLt+JEaWI88KTJQwBWerRo5gP5attgRLMV5FdZfl+YcDHkRsVIn JyVquyAiENOkFgppumTag+YcYT9KlBLNohUfMiyTNR994YR+ID1FQXabpjafolEkyHUzAOOAAKF paE0QsCVHI1jRXiaRFvy6QxARyeNop X-Received: by 2002:a17:90b:3882:b0:366:132:fda7 with SMTP id 98e67ed59e1d1-36a6771a702mr5221384a91.10.1779487421722; Fri, 22 May 2026 15:03:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 35/64] target/arm: Implement FCVTN, FCVTN2 (32- to 8-bit fp) for AdvSIMD Date: Fri, 22 May 2026 15:02:37 -0700 Message-ID: <20260522220306.235200-36-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487700337158500 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 8e7982a888..0b86ed9eb9 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -187,6 +187,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); @@ -406,3 +413,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 5c9bf06b72..2100da0a69 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6534,6 +6534,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 Mon May 25 21:16:02 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=1779487615; cv=none; d=zohomail.com; s=zohoarc; b=RlcRlf/5KFpJam34oOlg70nyAQt3OCQ8SLhCDlFIg/X8Ly8GL/DPRVCBfkR7yET8ysGXTmAzvaYXhrbQh4xP7GmySla0b8BDqLLf7IO1wiLO9CHoEQ5iGVxJGj6034d2iru+RRJWJyeyCGGYOMHz7fVOR6stOEdgJzNFIhFirw4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487615; 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=pqG9QR1YTbyKLsJizMJiiAQG+EPddkb96cwu+xbAG+E=; b=XLtOKtZ76pzLH0ewad713t8eCzbWI95/2voa21zy2XJrZrKOcw+PTUu5FiMvCcUw5tuXmmB1cw3VNeZuTw5Hv0ggVIMLB6dXypzh1m6MHUEm/xeFQwqXBh9yd2UUPk0RQfpOjoo6IXNCZtyEMM2kqsP0HiOxcdkHVQHAGL9hoFs= 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 1779487615019138.86416090885018; Fri, 22 May 2026 15:06:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzG-0001w1-9R; Fri, 22 May 2026 18:04: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 1wQXyA-0007qF-26 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy5-0008PQ-K4 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:48 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-366139223e4so4763850a91.0 for ; Fri, 22 May 2026 15:03:43 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487423; x=1780092223; 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=pqG9QR1YTbyKLsJizMJiiAQG+EPddkb96cwu+xbAG+E=; b=gUMUi4gHEE4AkprISIWCASHIEr9CKZSgDqowGl1H22XPQOb7qizJmLlf+9lYyOhu3X kJqXZtbH7aDxCzrndIl5nOZIK1ESeZqGgJU1apNVM0i7NjGBA/QVR3UqNWFaroIA1sLF aLHCW7CBqEP1JQa1qth1jBDt9WyvZmZmAGJklEPJoq0x3v7F01YmjYjAdw17B/txwmSB KHgA5TGYk6iA9xhz/PGG5svTlOa+Q/yXx1p1TAwZVl2qmy/wE8r69QsqLwuGL0wK1flo MUsvKXAjHJYZN3lSknmFKV28NGMTiGD7JWguJ1PvhnJmMjp0YFsyF2s474jTyIp/Nj6c hjUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487423; x=1780092223; 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=pqG9QR1YTbyKLsJizMJiiAQG+EPddkb96cwu+xbAG+E=; b=PeDCemNROl4ZEw2te9ezgDntWuisJmY/1ivQi/TejbsdqF4z96uCD8nNrYkWebw52O qWmFDI/MZS8lON7CEl0TfX96CiMop8ONLS17gzLNUYcdCcTJXDp6ux9FUhUEVP9fFz3Y /mAVCJXXpaid/p7jFIAfeI9prUgdJC0w+myzeFxv7A/IZix0tplPNCr9sqtEPkbxJ2BR wSTzT/N+pXIkEoq2OeGKvrn2cmiO4eMA5C64LGwbfkVLUXptlJ/CyZ86WjTvzHgEYalP O3ljnMmDbZO31KlBbR8sffMX0doSFgxyX7E0Po5HV0hTgRujTkcolGEfRNKS/8Mqep4q KyoA== X-Gm-Message-State: AOJu0YyQmNxyvuul1NoU+3hJ6hMyrTekWnWmrvdh7/ap77dtslgyjyJG 51uiH8pTTERylTtHyeXsy6AAp3AscD4yPkKX0s15+aXf8PDYW4gRTIEveRpuTVq9abcPYj0DarQ i2Ec1 X-Gm-Gg: Acq92OFIJLEHhItKtwuV/BnwWnjQsn3Ae0WHY4MyWnDFtYsNF589efN4JQFnXVhKxpE ZEavDAKpv8LHmf9v0joqLoaD2M14KZZnLGaMkPspZpjbf/X1zPnFiPc9kYoQPWbLo3vA7PACs68 sIEq2BlW32/5kS83X211kbeJrZQ5tfC1FaXNH0REzl5n6SQHSv9IGXIPVBV0bEXKoXeAuWehouk dkVdQRXZlcWevsBaPy+WRpOp+rjH02XfZCLF+KSVEf9hqtnW6Ag0WaMVw1HNmyXzeX3NQHJan48 eL7ToFbFpMkfLZDxk4DSAxVn96oKGlXqV3S4T/E7I+s2F6SRVviOEzikLFo/QF5GgsSelWtFRka W/J3dXoYw5rNKVcp8iSyf5zAfgGo6xzhBVI/n/aIdYTlr8Rk5gVAD7kT+IHNkxIs3ZifV/FUPL9 Nobm98Al0cdBArSpHRceawvAA41gdj X-Received: by 2002:a17:90b:4b52:b0:369:7421:75cf with SMTP id 98e67ed59e1d1-36a67508574mr5128771a91.16.1779487422559; Fri, 22 May 2026 15:03:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 36/64] target/arm: Implement FCVTN (16- to 8-bit fp) for SVE Date: Fri, 22 May 2026 15:02:38 -0700 Message-ID: <20260522220306.235200-37-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487615940158500 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 0b86ed9eb9..8295725b83 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -414,6 +414,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 103b9523a3..da46976cc6 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4099,6 +4099,8 @@ TRANS_FEAT_STREAMING_SME2(BF1CVTLT, aa64_sme2_or_sve2= _f8cvt, do_f8cvt, a, TRANS_FEAT_STREAMING_SME2(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 Mon May 25 21:16:02 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=1779487610; cv=none; d=zohomail.com; s=zohoarc; b=GThaTt9tu/2mfZl0774iCH1OBsqMiETk8cSIwOl1Ex0OwrpRGL6S2soiKshlCYn3UaCeBF7uyZPMtzkIQ95MJEENCSvzDXwGIGb+TkRJ0YSiP11BoeF8WgMJ+FGWppwkEsBdhVnA3R/e/PkVTGE41zT3EUdDsaPGgZ/2LrDbRjs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487610; 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=INPKxCo/13lsupH8RTnZ2qnDLqr9desj6G1cjc0ZHGs=; b=hSqrMKpZU9iQlSAnvexSJR2u9ZW1LUuaa+xM6VvsJmasTSK+HZMlExjpeQIVMdlVjeMpo19zmuwZuJDXVJOUYLWPC4F+WSCD9X0K0uN9izEa+RWN3gWjIMIeCGqPSurAiMHe5NJKabzD/M0a7VnGIcLOMDI8TulIj9n/fIBAJf4= 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 1779487610431781.9641354802092; Fri, 22 May 2026 15:06:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY0Y-0004RG-IG; Fri, 22 May 2026 18:06: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 1wQXyA-0007qA-0I for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy5-0008Q8-Jt for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:48 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-3698e34a567so6988331a91.2 for ; Fri, 22 May 2026 15:03:44 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487423; x=1780092223; 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=INPKxCo/13lsupH8RTnZ2qnDLqr9desj6G1cjc0ZHGs=; b=mDldSN1t0xCXqzvoElC3lFi3axCbwEJVfKtx6a7bf+f2F5uAhx+dBAO+uXLm+zraA4 Wzro+2txoCEpYr2Q4P66m/lRHl8f4tLG5pI8iHjZObMw78VsrG+qjcDJmpzPdSP+eUaD xlo3JFq3k5jxVk2v2Mk1/T2zfKJQnI80MkiBCXAwKfCGtTocxEYQk2KEsZbmMgJHhu8Z AVO0TDn19IxNJH+5v+Bl3+llMvsZBvqH1/VI7h8rUCUDVWgwloA5JyGFIM3OaQ53METj 1qx0RXMuxl0Mg+EATY1wJ5awuNRLwyG+p8hWytvfJgBhpkYkPdZqafoCLNzdZzKNDts/ P1QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487423; x=1780092223; 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=INPKxCo/13lsupH8RTnZ2qnDLqr9desj6G1cjc0ZHGs=; b=XhhUcJskKywGYDE/e4Be+F+sbAnOOqscdTqcrLOp0dO7/YI3ZBmqdLqfBN74vQgcEs OMUS2wOSw1+cZRbYt2LFxavGxEYVziTZsGbaUWA8cDc0eJPmlHCOgqukjQ670XBZqnyb cFas4x0JUqo72N7F127IjvuFAUkHdPiWBUAPiTVNZowXPeSfSx10qqUzf83OymW3LF2n +AxBwHjTPoZOGJzUOjQzHE9PLLTdl8gH0xodpx4FKtTRc60QIeUabBhsrt/u/ZO8EKnb UU1Lpt5s4t2ZaFmShL9Wi5nwXW3QIydoeEKYwLkXkL5CQ1TnrHioNaCRr+j2UaQ8Eudo VrMg== X-Gm-Message-State: AOJu0YxsXcXvYEGsdiPaRbQPSc8AA9LvJXQBildPlx2eIUuJ5181vXkO S9JzEFTv5DaWjlUtoKwftUqDOxdvJVC/0HLJ6AOQUSx5jSDXN0lsbtYq3JCzUKygLgsLEm2rNBM jBPpn X-Gm-Gg: Acq92OGQbTyAygN7z4gJK8baAPuzupyft3TWnl/H8n+YpE0eayUcd4BgCKSWVg9NmHc K2Xa0WYZmTGZBbKdZzAVSmIdEPxaXxmqa6YYL4pOPTTp1RA4VBVFb1UwQh7jbJG07PGa4ScNurd msbwq8kZyy+gwKGKIcRfRe/kmOP3/XQhUz2G6b04N+6J/Md5r34yyRXzSW/mSke7aVdXILWPvsv s1VYAQ1M4HhdIJQb4VXGKLTp0jqf6ASsWda0Cv+/cLZSDwVDAEYoSXb569vJ/UvV+JTj04P3ZAc zC+vOcmIcUwN3YleYxNrPU3rfmCiEyfwEz5FAPgMb591y7GKIlkYcZrOs9PHeS+ZJRX8GfvNclV Fl7nyaSGW1GFC0aldU6QmDMy8R9CB6FjcrtWFqhzSCVrb/y9Rah/UsF/z4Fz+kDGmvVr98lzy9J 3EoA8P7l7PiOBU+Lyx3JtELkQ7jrKEqHIMOJA38HoNuzQNThCgnA== X-Received: by 2002:a17:90b:2586:b0:368:f0d0:1ce8 with SMTP id 98e67ed59e1d1-36a6770aa6bmr5096780a91.9.1779487423326; Fri, 22 May 2026 15:03:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 37/64] target/arm: Implement FCVTNB, FCVTNT for SVE Date: Fri, 22 May 2026 15:02:39 -0700 Message-ID: <20260522220306.235200-38-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487611924158500 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 8295725b83..3bd57ff350 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -462,3 +462,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 da46976cc6..a339ffe454 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 Mon May 25 21:16:02 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=1779487562; cv=none; d=zohomail.com; s=zohoarc; b=Wt5NP5J4cjxn2u/r1j/qeXWgCB/hpTu+n/Be/SnTPznAMPwEgtsZ3wvHerhFJn2DifqH4rtRrxTe3D3WR5BcK8pQVyUD0sq2+/SXzIkl9oCw2TT9QRkwLpOfBkUHSckDT8GeG+P0ap5DjLuthdLHjlNugsQ/jGNXYd18xuvZmy4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487562; 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=VXO5AoHZ+TNu+UxgxRJK5CMQ/DzRT+M69M0SWhlwPn1BJ8KOrnuecOIEjP0kT2p3vJcH0sCckk8+uyMmeLMWEdRvZrIzPmghyCHdqE2rii+xD88QcxWOs/ZLIuFGAA/hxyy6hmNt6XcbXf2Qkuh/evr0IL01Ek5iOXCWV/IIRvI= 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 1779487562694940.1896934600358; Fri, 22 May 2026 15:06:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXz9-0001P6-Vh; Fri, 22 May 2026 18:04:52 -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 1wQXyD-0007rK-Pl for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:56 -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 1wQXy9-0008Qb-FS for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:53 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3664df30f53so4653164a91.1 for ; Fri, 22 May 2026 15:03:45 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487425; x=1780092225; 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=Z65kUocnMGIUnmkv9tBx3h3R/AONhbPbINtU7ZSnmIBaPB2g5TY6fkub15TFcNrZoR cTA8xKLD8mp3YYfYr3G1I7QE18puQ421gWdyUFjmoPlOQzg0a8QcVojo8FWECW+VycBO 2ECkmJ29NynOIv7EZdjIc1/ViwCdn7mHkM1h6tAv/sP+hU4ZYwE4ZetVp7xamtfR4Yui kxXOhRMiwQiz0IgFX2KUtTSRJWmabPMK3b/oKAyf1BMA6K0ZvJVEmpyr0JvGEr7yQuyC wCjxKKHkruUwre+dqXDolyukBS+4G43ifwjDCtgemN5HHFI6i+MwuizXEXoOaXsk3U3j gRaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487425; x=1780092225; 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=JMgensexF+jSs4X4Ef9DaewnkPOTRg9WG1O+OrLxrhyh6d9jbKXQFQolCLNp45SBLT FUvUU1qeCHm7IwMIJd/+NBQLUKiwpygtHjdPfsJy9pWY+M7wKRfxY8GazKKfiYn45zcX o0fQ58x6hWahg1dzwm1GPix7x0l59e77RmG6L+A+cbcqU11g70vtjf57kymh4W4hLu7d K0KGnU7yc+CmV9LD6RdCgT9rwTQKPpXHg5WkV7PVLgE6rgUjMAJG3om03p4XMWfZ3xRy wi6gx3Xo+eJS64sxhWUXTu8QbvHuwgFSWLIZ7PNo4zfIu+s9i51ospRgaRJa3a+STjTO BqlQ== X-Gm-Message-State: AOJu0YzPe6ssR13oMt82PR0mXsjPWyiBkovBX6I/CLNOI0GFD+DodLtM CRgGQ4I7D2kzFHyQzPWQISk51rvhM39wqPJc5mQVa0w5oNYCjPuY89evPRAOFfpl//L3dSeTKlx LhOF+ X-Gm-Gg: Acq92OG6HTaxjzfMklkHuUCB/dSjcet5JLVFPN5zuqtNuop2viGCAF3uMB649zSepYr K0VZpXZQMHngyrE+tXzB7V4olqm6Ng85XCi6rYcJq8EKfaysPiFzojfWlHgvqDNEXHvLwyz6PVl /LRjMwRZf0rbp/94XUu0vbkH1/mRMDjbOf5C4d2hDZ/8KSjV7kc3Vu/PufUlzdGtJzxmPyjADpM MWCb29NhzH0oChS22xe3uIu1SJc5QeOjF2TA7TJYlCD5LXkOqa3MRr68mqZ/7ZoaB5OmusTBwZr xm5/xUMSACoz6HqVCFYkCarFV78fd3yMDCGziqU5ne/XfsRSPSSXhJfXI4W+lTemI4glnrenf4f eibrCJt8EV63WH5RSWTxUiKyqpyMNx7LSJeXNXjB21q83Jk/fqrPA9/b4+doavcnhBqWZYAA7O/ +KNFSlFTVbm+11DYM4gxdwLsy7TZSuPNd5MxDwrNH2xecV1YJzxw== X-Received: by 2002:a17:90b:548d:b0:367:d850:6a5f with SMTP id 98e67ed59e1d1-36a6761ec34mr5425277a91.25.1779487424769; Fri, 22 May 2026 15:03:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 38/64] target/arm: Implement FCVT (FP16 to FP8) for SME Date: Fri, 22 May 2026 15:02:40 -0700 Message-ID: <20260522220306.235200-39-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487563694158500 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 Mon May 25 21:16:02 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=1779487937; cv=none; d=zohomail.com; s=zohoarc; b=LkYJDGjDR2cLqJvv7aGDv7t6j0tuv/cLaZQZdBbxBttwXl4HjMq/eUONTOjYtMq4e6lr1RSFtPJWCll12Q0y6Gm2Q4vxRILcuVJk8aVmmP/occjeEOgwJWMooBqfi+KyN2wBWonHbFdrOOwFwc/mcckKTPDeoSedV5GPX6UuRS4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487937; 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=w0yBRh5J1l3q022T6o/GpnXIDt3YYXZY07/u2symuAc=; b=APE8j1cytdJC/yj+59PRbhZX5q5BArTBn3v0EUsQSIKkhjY0x2qX6lIZKz70ZUnjGsAi3xHAQ9J5mZETGOBbp5MRib4EOgIEIwFl5IbPsvJO4AeKAWRaAZ2WAwYRzagRrE+dBRglg7ImSj7R0IzRtnefRz5kOZNzC4PFSDC1dX4= 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 17794879375641021.472670746056; Fri, 22 May 2026 15:12:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXzH-00020M-0H; Fri, 22 May 2026 18:04: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 1wQXyD-0007rJ-PR for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:55 -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 1wQXy9-0008RS-Hz for qemu-devel@nongnu.org; Fri, 22 May 2026 18:03:53 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-366375c4076so3247084a91.3 for ; Fri, 22 May 2026 15:03:46 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a6772f486sm1726789a91.2.2026.05.22.15.03.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:03:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487426; x=1780092226; 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=w0yBRh5J1l3q022T6o/GpnXIDt3YYXZY07/u2symuAc=; b=Mg/tl4FcZD63SdDQQxhZAJOgMwpr1xI09v0d/C+kPoa6sxnb7BO4+JYQao1zvdjSwF iaQXrdK+7Qt9B+dNr6OdVx5J+SYQAnNbosfrExRR+w3+n8CMBkVEnLLm7NV2Li5wjuRg eH1QEp/ZXOJcck0ZllLWOwHKzq617gKxCcovwg0IWbav+R5FACxjWvlpqNC6rq930ip+ C/IPaaO0dRoA2gWWdl68fnwPY3AG2zvqjQTIo2PIiNAPgtgnJlX/CY/LNdrtR8uo/d0v QrNOKEHTc5smoXLYmMceZiVksk36UpOQwqYT7k3jYIkPjSCVikaI+Sc52XZgcDALVXbD ykfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487426; x=1780092226; 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=w0yBRh5J1l3q022T6o/GpnXIDt3YYXZY07/u2symuAc=; b=cvNjRYxyLQd1RbS6uKpPgRNpv33Oac1ItNjeUl6jm540/4X4Hq/ySpfGpmUV01Nmn+ vEELkmGIM9IXRVGuqNF6uyNDzjDFBX1hFfSHM2GhM1DlIpaZ8XAYj3b4Kyp7TjKTnpG2 a0LDSiIIq2PU+zthwhEjNWHzgA9E2p7sF+FU3q0eESR97BFGC4L2tNWlwLPnJNDldiS0 WGTl2sXBNelgzL4sNatWlVQm39/OKsvUrb1yrws77z+gA/tNgCE9xQFh1mOZ5ywJSdhQ 8RnDi+2ASBwdidgh20np6eC6oioQDkpZRmT+Na+vAa/drQrjBDoP//iLKUTY7iEfE77f eQ0Q== X-Gm-Message-State: AOJu0YzN+1cvET0AjOiCYSUY3uDa1nA1apBTvEmV1LxQEFlDf9+y8v7N ERMS0zfPzsOAhWdE7NARcwJ6QcPSD6j1ymME6CSYEgVVj0zH3+hC+v66i91dDcjtxZt6FvsO3UA FC3hu X-Gm-Gg: Acq92OFluPqHE2Ri9cZdvu7KkN6y+Z+uljTX3mT/tLt4lBXBrlRA+w0MGJVKOlSP9NN i2WS5WeDuB8uZoro8Ecn+yZk0AZBBvDgAzSa5cDycAo7JsXni9C+pkLFkI4ui/2x48YftZn+qbs /fKNNa734i0WxgqYhFQSTbE8VVmU8uYJaLzOx9we6QY+Ak2h/YmMR9iNdxrsUUy4G6GdSIaRetj PkSdpmil7ITIzBUlIh2bGgRk5yVYKWpEbvpqqDuD0xhbWe2JljkTecjdJBBFFNn1jyLs9y/scny aJhrBF1a6MsXzRZvFMhd1yBZXSKykd4xyXEvNUh1BhhHI420JZLrGU4dC3u7BMQPyi9G6w/G652 nCzayTzOKKir0SHMB92WwHnFm8KSE+cuWc7owm9OF4CNVQqh8QBYkTjiUfFegZY/+/BZk9wrwcV UuaYWyBYPMlciaDMIkI+8WV5iurfYAFPqxVKtvsNM= X-Received: by 2002:a17:90a:c88d:b0:35c:cba:3453 with SMTP id 98e67ed59e1d1-36a67693ee5mr5440521a91.22.1779487425591; Fri, 22 May 2026 15:03:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 39/64] target/arm: Implement FCVT, FCVTN (FP32 to FP8) for SME Date: Fri, 22 May 2026 15:02:41 -0700 Message-ID: <20260522220306.235200-40-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487939485154100 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 3bd57ff350..a39dc6f859 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -509,3 +509,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 Mon May 25 21:16:02 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=1779487916; cv=none; d=zohomail.com; s=zohoarc; b=GujizdGLVk5yW+tWYG6jwjLqeWZ99CHrax3YY7np59CXtCp2dkqoHwNKUrf7wC5CmUDwwcszXCl4wMAkMW4k8ckccwWykn9mVhLtLwciAhJV7MVGNqSXPibvn1mtPnFVRIzKKRWmHXBT3Tb8IQt+XtMg5LWGoVh4WIzqZOV3/IM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487916; 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=mUMbr1Mo4sGAkfsyt384Ur4MJ/2KX4R7TjLYuvCu9AM=; b=fVz0CoaDRCzWF8xX95RwL8oLlX1OCXk2G/VEd/qRPJpD40QYzSket3FxmLeIhNTWMPVxOjv21xcFrPKxfFj+2gfCf/ohdpoGnVntc1zo19Km5YvzYhhCxFoJ/5xtQe1DOFqYRzwuiQ160beFbN+jwKBRD69WD9x1+/V/wTlFNNE= 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 1779487916301206.3602763300887; Fri, 22 May 2026 15:11:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY19-0006Kl-5F; Fri, 22 May 2026 18:06: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 1wQY15-0005zK-7O for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:51 -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 1wQY12-0002UV-Q7 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:50 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-c80227c9572so3679048a12.2 for ; Fri, 22 May 2026 15:06:48 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487607; x=1780092407; 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=mUMbr1Mo4sGAkfsyt384Ur4MJ/2KX4R7TjLYuvCu9AM=; b=uZ2roy8i0KhK8wS27X8He5vPREXeN++cZeKP+Z9/Ng0HI4VzLXoeEXkZfLmuGDbYMf 5hGT9Ugj/5RDfaJg7WFqDLgMejq/PudUl3+AR8o+3l9DFyhBtE014O4hKaySXMVqVQr9 XPabEE5WaUADRhxz7JMGkF9KKm1lbYaWVE3YC8sgpC6jH6B+uT/khz3y10iWyHvvxBCh TeUMWEzYbGpY2pDoMqfVhxaXOU+KMDp85pcu2WvTMblnH2mZZy5nCoSEqSycdTmshD5r Ot6A53cQgOV+emDe24tCUdR0LDHKgLEMVFl7hNxqDZ5QlRdLufaQkoKCRlrCYSaHl0lG EUAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487607; x=1780092407; 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=mUMbr1Mo4sGAkfsyt384Ur4MJ/2KX4R7TjLYuvCu9AM=; b=E2Rqg2lhVIoERaXbwB95tairZXvXf3pOS2ZsWDkDWrymAJtQz4BBm2xQW7CYZiAMJH 5J5jIjwc/H11lUkABicIC4ddl8qgbUq+Sf10b/jczz4KvubuBI7EC21wrD/0Na6LUDBG qjQD/A/YSx9tMw/ciQBbk7rfCHZgYEsMp3EO6gys92WJS4BKUG+2s2Y1BXi9yvAUncKe eyTIRvXPfu2FfUG7/AJKaJZ2qbSDQrkAthOE1DIeKD0rutUXxgI0F7N+DsQjIi3PwGXL qkiLIHpg/dDaIW2kye+TpGuIZ9k92cF0bthGnFK66sRNbzDyyMSEPEKEakGZVd5dZ0Yf Ss/Q== X-Gm-Message-State: AOJu0Yy4Sur8ozhqPEeIZJFnJWrY6vyTBr8PWhOD1zM18xzciAFdTzhL 1vQqjZhEndOZPnUXrXtHG2k/dURjvvfpG0ixg7jV34dGxH7B2auEDx884YzHoUTLzOyjCtMwDGF bIRk0 X-Gm-Gg: Acq92OFPJsRXCms/qJzTrFdcAhdMUIymASsdqaYvCr7eyZLcFW9cWMZstAwTZ8e2aeX 9ZGHLjbzOL1GY82p5B+/5VxnrkSVjclkaCF7nrDADfjtk3nBB7Eiyfz8Qr3dEv4a+keeiY0N0N5 c/Q2l0pRwPenxuPEUo0dZ1T5mFj0rbHYUC7I6NCLlcz5h4nq1ZNnk4P1TdKET5s7F5dKDZ4GmjB k8dsTcUON9A6qMzKZ1Ft7ni7bCUSRNSQgYw09vCxXgLbU1wDnREac1FNwsE0ucfpUSG9LnEAuV3 t7vLCZwEpkTljq/G05zLoBNUt1J8x2yJwPzZCcXod4km+JS01H+ne9RnLh1Lk9QdHeAxiksLD/b k1LKCbKI066VvErUfSWOAjD7LCpNJJAqtru4gC44EYX1kaJDXRDNwKfVAozOKSMSUKAkZ2fuQWj VRcGN+9pDOLQtwRddETWUSrzReTZ0dYIEMZYVHl8Q= X-Received: by 2002:a17:902:f544:b0:2ba:6ed6:aa35 with SMTP id d9443c01a7336-2beb05e4133mr57181235ad.19.1779487607117; Fri, 22 May 2026 15:06:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 40/64] target/arm: Implement LUTI2, LUTI4 for AdvSIMD Date: Fri, 22 May 2026 15:02:42 -0700 Message-ID: <20260522220306.235200-41-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487917309158500 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 2100da0a69..e6d405ea69 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -5402,6 +5402,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 Mon May 25 21:16:02 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=1779487839; cv=none; d=zohomail.com; s=zohoarc; b=AS96Y1JpTuFPN7sWI1sXgLt09DASNwdjphiCkCLIx36TtYYQ/U1YQ10n5INDdVX6Ehyjlis2EtDDVjfbiELZKgfWbN3MFKyMSWl34Psui3iunK60+ivAxMBKl7+0fJ28/8WgLuR6uDRFJEFXPIVkUYeukTHaKQABGnRM8yBgP1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487839; 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=8GEEKHq7P6kbtKoG9mpoolbgBO3rzFQo954EjHh4Tb8=; b=RrMOm3jkVeQmfb/RSWFh/Ff0tMNzhxAHCi8MGpVc2RebIVsTgsBaqNw1XhqkVjdAzF86gtl15jZTBTdUjq63eFquZUYvSwKbnMrG56J1OWOc+j+xdgNgGm11kDJNFx1vAvVtU9NG8kUb3P6I8e6noYr0aXM9tZi02xF8uM3W9bg= 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 1779487839529675.8968376708686; Fri, 22 May 2026 15:10:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY1A-0006Tg-Lk; Fri, 22 May 2026 18:06:56 -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 1wQY17-0006CY-6C for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:53 -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 1wQY13-0002Un-Rm for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:52 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2bd9c3b550aso54711255ad.2 for ; Fri, 22 May 2026 15:06:49 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487608; x=1780092408; 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=8GEEKHq7P6kbtKoG9mpoolbgBO3rzFQo954EjHh4Tb8=; b=wkh/LRnQpMBxCly/Q6hF3azgxMnr7KCWfqKV4rgEeCMFC6HaBP1LnjDDrPCJQNdEQ0 fdmVRd8B9bHPDhQIg/vvsS45pzSh33rIu9Auznta+kT/hTt4btdNLUyI0hNz1vKMBMfY 5XgkUNadArb1S6RypVj3Mj3iqXC56A61AExZWv34YU06/IL30ZuXoSTXRHsL6dYgPHn0 GmuLD1TdU5XBIdJEFCPi+HkuwT5EoowzJ2/pk/39zeMEGRogQtsrzVX4+uwj647Lh8C9 YHGcDjEBBrixNroBNI/msh/JwfiX4DxtK+goqMPO4vPKU3htCWcE/qYc8CDBN1w4Vxym YLBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487608; x=1780092408; 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=8GEEKHq7P6kbtKoG9mpoolbgBO3rzFQo954EjHh4Tb8=; b=WiEi2DcOLqgWfiPMGoliHTMuGPwSxea1OSk9/vaXBiKxApitNPvXgWY1SAJRHbPEkD mA/uEkb7DH6N/GsAqnApMsTiJWNkmcyjZt8fDFjIOfSU8OyPAWy5ZA1RRjFY+G8QT0wQ BpBNTGujD3xOpKSKN8qXh74vyWZbrqWFhhGjpnKqjjmJc0zgr39iFiLZyK5fNjNd5UB9 6MAOdVkGHjXQY1nfLzRIrmGQ75Gzv57zp+MIR6WETNX6MMtoyfNzgd0Qz8JCJALQJ+4C eL9q2YOJVu9VmmVrF5avavnsTQIev0vzopNQgnRipqUY2N9XlUo0tK4Q1gjOxmGBvZgk oeiA== X-Gm-Message-State: AOJu0YxX92DZix7yC0ctfSmoQNehbkpuvFgycZ7cX2SPYIxCnw96YRwZ VsPHfZ1wGCWM2e46betp1ZD/KTwbv3p8Moonpt3DFZGpchcL9fT0LxJcdXyGlGbmwClbP/6ZhXe swES0 X-Gm-Gg: Acq92OH36ZpLzcnkMOUQtyzL5bm9eicit6OZruuZAGoJKL26xjWUzRCD5OQmjUNYcZy 7BJQXV2pYJTa62iPb2uQ15lWJvW64t3+CiBbrEn/AezRW8aR5vd3OCAnRenpn5BKurrc/bQmZtw QU+GaGF70MZPeeFlSJjpBT2aE22GsG9dwu0r2Z4nvlC73+inpH6S2HZg04y9YQz6LOan68Jra3E 8FMSvaVFwGYUeH+cSqXpo5lP4Qan200DVp1NfLMgIg1RfG8qzUa+thIArTK3rtJiknIojXowuTL /4dVVXB97w1ute5x3lgWL+ORRk7eRGur0BKHf7R5kBbGqBwWnbw+2Nvbg1quLJZXoUMXp7lhMw+ xfEFevsgwy4wlPBFe9KI2O12m+Y9swrG9jUl11SsUs4n49H8ekYI5LL0VriXhx8VtvR5ZXMbZgr LhQd+KGR9t5F/kh87ztURNV8sVa99+MEJV92YJ5j8= X-Received: by 2002:a17:903:1a08:b0:2bc:67cc:d1eb with SMTP id d9443c01a7336-2beb07261f3mr58898085ad.28.1779487608125; Fri, 22 May 2026 15:06:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 41/64] target/arm: Implement LUTI2, LUTI4 for SVE Date: Fri, 22 May 2026 15:02:43 -0700 Message-ID: <20260522220306.235200-42-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487841090158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 6 +++ target/arm/tcg/translate.h | 1 + target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/translate-sve.c | 68 ++++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 11 +++++- 5 files changed, 86 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 9dc0eed630..de6c5e4d2a 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; diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index e6d405ea69..14597e4d7f 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10817,6 +10817,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 a339ffe454..2ee5a36c5a 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8286,3 +8286,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_STREAMING_SME2(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_STREAMING_SME2(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_STREAMING_SME2(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 Mon May 25 21:16:02 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=1779487841; cv=none; d=zohomail.com; s=zohoarc; b=Oy9a/x3KwhWCE/5Hw4+dkbyl453zU+xZc5Aoftz0HxsG18ZsewcknfbE0Q36owVAWyo6nHU+sTTK9XL19m+kkurWkiIyCsPowMFbcG1bCIgf4oPO4lNxiIfbp9WsicKx8r2/sMvNeLJMJO+c5xjqfeAH5am1VjKi2Zsofk+mLYM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487841; 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=3mlHp35ogsh7c26vT4z1y+taeBeDu4URlGrhll39PMw=; b=dE7tUDHxZn+7TyNKsKpVHc+PcbeEdK4buFWwK3S2zvpYrhLM21CJwKKW9gbzVBzrRXDODGheeiTnTrr5VuIeJBPN0ND3r7xpKieiO7eHGQRsKsXMKf8MFL+WB/nSHfu76hkukzuJ7zrukzOlaFd5aaM8Yyn8xXqG9yMTzTiBgC0= 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 1779487841041952.4261379772279; Fri, 22 May 2026 15:10:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY25-0007AI-5x; Fri, 22 May 2026 18:07: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 1wQY18-0006Ii-E1 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:54 -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 1wQY14-0002V3-L2 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:54 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2b4650d5f5cso32362015ad.0 for ; Fri, 22 May 2026 15:06:50 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487609; x=1780092409; 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=3mlHp35ogsh7c26vT4z1y+taeBeDu4URlGrhll39PMw=; b=UdyMnMxmXI56/fWwO0P8bNnFDiIhASoUsuZSTvDHmsQfyAiHJQ3Ir1J00w6IIYA5Wd 6Sk1vdPC8gRHq7TT58eNmM0zCePPsP+OeU3PH68fTFgHMLhyDnCVpBpPO562VXQWDjcD MtVbhNahZSJq3sL3p4qQ6OZ1oS8Qmk7Wqg/k2vkpUaDQWZ8ji9xkm8IHcuWwybw8kq3J DYxvUiL9IDPW4fdqER3fxKeuy7aXsMmmQzLEifo2cSkJ42ms1P4FSmrhx0YfdJ4jU15I m3gRds8JdOeyqiKLpYanY1CU/cyJb7qjnyLQJND5vYHaAqD1NZOq0E8NuIs88wg8/u7M HgTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487609; x=1780092409; 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=3mlHp35ogsh7c26vT4z1y+taeBeDu4URlGrhll39PMw=; b=UB1KF2UM2pKFOs04YmvorgqnU24Q4D+ou7oc6h16neNacdDkp1TKGB+jWFGZspJMum Qmp02ciJuvzIUUBTQSkRQ2FE/l+2C0yeYvpjnbI3nlIfcorcdPEWPJqjN8X2WhQ1HCgf xS2kUcz7bL21lKia2ilrj/VqIYB1GfQRFhVdQ92bki7jEgDQDwoYaCAK2BX0Lv9s7hjZ fzoHeGGhUM66ic6rC3nBL3st1ps32JoDxz4xi6uwccPNC9SBKzqTqm2F7+XQaKKIOMgH eG7VF3IV+ssJ/Z7KlOvJseZzZn6XJgg7DePNgvfnPOFAIUp95VxPrKoKlgOJclYBa7HB RW1A== X-Gm-Message-State: AOJu0YxtRUBrgeGak09GcUKgbakSNGVqGl3zetLLyR5lmbJtq94VQZWV OaSZSLrAvsiMyRSZzVaaPCUnIWyMd2hm6kTuG1CQ7pORqUad0UPFkWPHKqi60fMqRQjZMYkntCU AJAiM X-Gm-Gg: Acq92OEi+LcdgOoHLb5EJKpFxbFmJ9Ba/hgRE/+qEERPK80NSUGZzXnHp7CfZkoArpI U+ESYKEBObkO59B+6C2V/BFpEiI/Z8Rg5UnYoVvliTaXvwXgmHrZw1vv6Xq24120AIeFIKd0Tj8 HU1Qyj/hJ2T2Wwb9FhNQAua4E7KxYYSB/SEjC0QQx9FDkTcAUHz+hMpj3l7dkPvmhcNOLI3BxvY qt7rzRBOmQS1B+S8bT3phOeygz3rZijxFdnuojUJomeWQl2zx9eH3venDiV7sGj/J9rWQGkeGmL OHNia/GKuq5Wua1e7K9hvATEEiHm2OgC8WwdF27R0D4C2WxKr09ZM3EIR931DcI2xyO7m7DU42c OQoCbXvYU7XjXBbcoM/Q7T+J2j5st0p9J8SctNGy7PLgKT3xtxvlTi92tq9qBDoxoWllahgppQb KWskC+e1fQ4Mpf1fvcGAwR6qhAfO5C5qxhfZItNYQ= X-Received: by 2002:a17:902:fc85:b0:2bc:f202:54d7 with SMTP id d9443c01a7336-2beb069e6c7mr56649375ad.38.1779487608782; Fri, 22 May 2026 15:06:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 42/64] target/arm: Enable FEAT_LUT for -cpu max Date: Fri, 22 May 2026 15:02:44 -0700 Message-ID: <20260522220306.235200-43-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487842167154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 3 files changed, 3 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index ceeeee5315..b5735a000f 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -220,6 +220,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_lse128, ARM_HWCAP2_A64_LSE128); GET_FEATURE_ID(aa64_faminmax, ARM_HWCAP2_A64_FAMINMAX); GET_FEATURE_ID(aa64_fpmr, ARM_HWCAP2_A64_FPMR); + GET_FEATURE_ID(aa64_lut, ARM_HWCAP2_A64_LUT); =20 return hwcaps; } 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 e44b3016be..8fc4b2a3f2 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 Mon May 25 21:16:02 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=1779487735; cv=none; d=zohomail.com; s=zohoarc; b=FWQxQbaD1/rATr8WKGQmJXAPw1dgj/C5iImxbPbHfXEzbnLH3oDTeUHQIlw372QKNWFUQfSnJDzwsze5rGRPlV815RPaFZr7bQkARvtXLQYch4+kgeK6PnGPfzGwUmdMws/XA3UbTyabmDiEHpg53XPl40AW6y0XGzhdyw55kSg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487735; 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=V7FgucQIkhCyHgccCw9hpCsmHHiR1DXe5MU7JGwGj1I=; b=Fl7xCmVNIC5DGE3sxx20itfgfclbaPRmbI8aZiIEIGziwQVseaL9AcYYeTwh3QNgsZMbVvRmLxnXhdNsTlZf3TEsIPjYyP/ecZlxWtoMPGkbUyQVsDUd1rEaMN0QjesGMPwe0AAq8jqnpZqsuV4d+E0M7IkYYdcot2WobfCCqhw= 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 1779487735389793.4829346593255; Fri, 22 May 2026 15:08:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2B-0007HU-2B; Fri, 22 May 2026 18:07: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 1wQY18-0006Lo-Vg for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:55 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wQY15-0002VC-5E for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:54 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2ba856db1c0so57507715ad.3 for ; Fri, 22 May 2026 15:06:50 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487610; x=1780092410; 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=V7FgucQIkhCyHgccCw9hpCsmHHiR1DXe5MU7JGwGj1I=; b=xMF03GjWtQcxNTm3geILaqSpYgEd4K2fn5Zl5k1Mkn/yKQGv65wO2wK7gG22wRo6V5 LRU2qqU9jDRdo2TxZRFi0h1egjH5tiy3nGp1b4f0I4I6ITty5Lid1GqYxsEf8vkfjAI/ jejlgjmDRQM2lKzJrNOeBEbP8KP4SWy71T92LCgsmlRP6ac7ScEYgyu2oRsAg9GyjVjp r/aOUqgV8fGaKjOMjWyv6d/xcFO+6g5YURlmTTb3UG0MHDqQVlPIbO9Qj3OfmHEN+8te 4rNBSCIJCvml8wbUZG3uJgBBVjs1/8PISmSEQgUww5GXyy+/LdnIksWsNJrfK+I6Fzp/ SUdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487610; x=1780092410; 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=V7FgucQIkhCyHgccCw9hpCsmHHiR1DXe5MU7JGwGj1I=; b=o1oiQqYWU7tx0PIfTbBlnzIQVqJN+NYqJkIPkRocyKxUzbrLeAMo6pyOMAA1dMh7Oe aVkYhVHMzrej759o2OvK3ktoRKf4KaxDu3mEgSavdWiZbLggeuPGuzLnFqLUnwMIu2Aq 9o3ta+VT0j8lFCT21NDQh0pP+8wYX3Q1mMea85ZjWvAsax4h5s2Io7qG6SPb/QILOsCt ktpybC8VpW216keyySQ5mHug/5WZ8JX1YfMlwY+DTULij9JyXx4Mg7TpOGTCpOcnl8DR ihDmnk9VjLqNleRrznvBIGQhc6k0h/N8zMcs5ffCfzzMKxBjrUIIE27twaDQNrjj9Mq9 ivCA== X-Gm-Message-State: AOJu0YwO/VWOs4/2VJ2InJLQFq/+SbiSMQtMdOt3LdK+xbRwOFYTDsiM 3FmSuLdfFVA9gI6ehedK4FqreuzeKV/L25PpN+4rYcdMVmYwozrybind9hZSo1He9JCJjMT3zL6 /ivGo X-Gm-Gg: Acq92OF5qU2Nrm/Dy9Rrj5AE0zMhBJPrv4UchE47/o1dGME95UZbdJvQTQsXqD+i5Yv Me9m0oZo6u+W/+HKWzaCSypcKUsUpz2eM71ZHvEMyeiR44ELW0cOydhHB2tU8f39nUdb/J5VDP0 uQtbBPu2QBqkopC0xG6IJae5SXTtyfzHjpYwIO2wYHsatdG9bADFcK2YaPX2DXCCOsnHv7dixxR kLRNjZanFIsqw3cIAN0zsi5WNXeYg9xAHTJ5H1tSV1HsmfCG45Hb/AgHeRdxbB8F5xu8JdKNm2D IAYnmJEszYHJijUu5xMWeOIAU2ZqyE1VcLGYhVixTEz1wT4fwBTL0jgB/n9Zn+MPVqdZsEERpTz VuiGLuRauXAIoz9ies1GPhFEN6xByLkQnd1GgrqmkRSB37XhtajLHY016qiXi6VwDA89Pif8UaS xuyAN1TecHRhmeqPBnhhAP1lrMNbg0 X-Received: by 2002:a17:902:e745:b0:2b0:6a22:5165 with SMTP id d9443c01a7336-2beb0631a29mr56887855ad.7.1779487609599; Fri, 22 May 2026 15:06:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 43/64] target/arm: Enable FEAT_FP8 for -cpu max Date: Fri, 22 May 2026 15:02:45 -0700 Message-ID: <20260522220306.235200-44-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.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: 1779487740654154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 3 +++ target/arm/tcg/cpu64.c | 6 ++++++ docs/system/arm/emulation.rst | 1 + 3 files changed, 10 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index b5735a000f..7674e308b8 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -221,6 +221,9 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_faminmax, ARM_HWCAP2_A64_FAMINMAX); GET_FEATURE_ID(aa64_fpmr, ARM_HWCAP2_A64_FPMR); GET_FEATURE_ID(aa64_lut, ARM_HWCAP2_A64_LUT); + GET_FEATURE_ID(aa64_f8cvt, ARM_HWCAP2_A64_F8CVT | + ARM_HWCAP2_A64_F8E4M3 | + ARM_HWCAP2_A64_F8E5M2); =20 return hwcaps; } 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 8fc4b2a3f2..aa0c0ee1c1 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 Mon May 25 21:16:02 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=1779487696; cv=none; d=zohomail.com; s=zohoarc; b=m4dc9dRhTfovgDJ+ZhapTyFFV4yk9i3MAwWB2WLYW5uaKFBC04J0b2T6BcGoeRuCraMrjhQHNXCRcuTXNB2LFWsrSv5bjaR3Q55c8cviyLDZBu6WQTtj6mWcy3DvNDmejMryM89PmBjHgqKFXAMVsqBTCz2bpt4otaju+sJ0U3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487696; 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=rRjCP159VJEQd1TORVL1d7Ygw8lPSNjMk9XPV1UN+aM=; b=dAgDqTF+NNwelH8d8Yn7FZAq/XobNHAVnwGloVJWi/XU4C3GrS+0bTYWVdmI0WnVbkBgkhhhSXQopXA5dtoh4UPuVX6lSkrlCTTSrldxjMkVhQOdWglvHinlbZ4z3ff+y9iglX2Aed37K3uXKRn8AX3jWy+uh+AJ0+Jcag6BWUU= 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 1779487696058819.6992546889632; Fri, 22 May 2026 15:08:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY1c-0006sp-9v; Fri, 22 May 2026 18:07:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQY19-0006Qx-Pp for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:56 -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 1wQY16-0002VT-0b for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:55 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2b9fcf7c91bso86478895ad.0 for ; Fri, 22 May 2026 15:06:51 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487610; x=1780092410; 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=rRjCP159VJEQd1TORVL1d7Ygw8lPSNjMk9XPV1UN+aM=; b=SeE24r0s/toZGOSsZQQIVFELRE4vaW7ehf46E+jWnhvi1ykBIYIbPpPhlM9jmBU4hP MZFMlscO7/O0xbWE88jzwKQdBsw2APXlBeAi4rG18E8A8mBsXFRvulINWw24O3CeQN/O NkXwD+ozdTvBDJq8QMzEovH8DGaMKPsUI7lGtRotGr2ZaqLV0Pr4hbe0UTMBuJLARpQT NERUSP02/Rwa/5Aik8YEBcCvGOdQYdnrASWBM2GQYvWcBebdMCPqCXMnDXuhsraXa3Zw /5NNSaXNZpxTKimbO7C2pgJEnEV83enhPc/d6wDZez2yRABpa9lxyNRsGxRntuUc+YOP 9T/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487610; x=1780092410; 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=rRjCP159VJEQd1TORVL1d7Ygw8lPSNjMk9XPV1UN+aM=; b=e/8Gse9W0FeUhBUDpJy/jfd75rzxSbbLUX1o0R0Kbp/V3mxl3MjIqBJ+MPnxVJjlXh qUdpQj2OtlW8sV2v6PM7+gB+ca4jivIEW4eduOFGQGGuVFWE76J7ZftFxwke1QbMQYI0 oJcsZEfKzsu63/Tf20d7gLzSlHaveamwA+PMiW13TMY2fixvR1a1mkkkntK+sSe4nscA NsLnQ5vhV0hz6LNAc8XG7QisNrKrzI5A5Rqw7J6ImxScwTTOob+1Cqe2+ggAPqtuv8bY eeJsaD8pZQDERzR4lZcGyxEj6eA0sGWeQ+j8PFtUw76aots14VKfexD+WHL11HAjrGHD CDlA== X-Gm-Message-State: AOJu0Yzko5EvECLRsTmD84tVg4xTc+3SYERk8SzdFMiOroq0jbT9F2f4 2u6PW/92C3rHKaXTVjZQAF5xGZydotS4XWg7JYWU1E6T9jBgtaCy3p0ut5jlqR/uHW0qTwih/Gj pN7W4 X-Gm-Gg: Acq92OEpuaDIuP9qFJV32gVz5GrPbtTFj/B+jnCDNU/Z2ZKTi4qttM4Ni/9ca6uOiUJ eDyGclz87YO0XB5+5TMPWlwGHTfFh39+VMhUvbjrAXy21mHNwf0UgJ1KohrhqmLB1dNS6Vk8+HD GBlFx7YIyC1AZpeYuw1MO8y4CfWE+xwZ/Jsg+w26+DuCyE8NWP18OGJreEkogeeLd1phsq6a22j +CLF3FhWYxRl5cfsg+GbOpUXS7aq2zc4XwIamzdtw/Ie5sJscxqnC9xchtwEm0hxpXKrMtBn/jr d6zp4jN7drWjXZkHZKPU1iOlOKZUPC3JsX2UmKRPPH3s+dxSVMmxsrR/a3VolFw9bNCMO7V59Io Y+5jShUtpNGSGyapR5eqcviVswpDQPa0UQXjlUwa6yQXSPogjQZU+pfh+yo8elzGpY5pzw1t3x5 xDeHmSL/FkI/V9nFLd2PnpYpcEqiZdNaFRdGDbn6w= X-Received: by 2002:a17:902:ebd2:b0:2bd:de3c:a021 with SMTP id d9443c01a7336-2beb06f9a8emr49791775ad.38.1779487610374; Fri, 22 May 2026 15:06:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v7 44/64] target/arm: Update ID_AA64SMFR0_EL1 fields to ARM M.b Date: Fri, 22 May 2026 15:02:46 -0700 Message-ID: <20260522220306.235200-45-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487698289158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- 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 Mon May 25 21:16:02 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=1779487847; cv=none; d=zohomail.com; s=zohoarc; b=lWB8QDy/IrVKLH0kkBZyDYweMTPPYh2UrNwkiD1DTL9FLB4XPNFXFZ7Uwa6+Rf5OCcWU6cKpwR+uNH6OlEur8Wb7lTwdtKj26xiCocbynUTrYlblaMyeKX33WhDaxxbLmZZ3/gxkQb04k4a6DEHZ2cKvM6K4A8IduvaPbXcK/VM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487847; 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=k6wiO6qs44r5kz6eY2n47HcKuEBYuKgXcNS4hcXwB8GrlNIMUa8knWBkdNRC0E2OIY/zIbcu7seXO5EGtoJ5oMZIs8wPEGfzGFaWhf3pgOTtDBeB1PuRDg/MWA7V0Fo+NQS/deZwsxvrxNeIoSusdOjyasnBpIbCs+ghUJMH8AE= 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 1779487847895279.49994402767686; Fri, 22 May 2026 15:10:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2J-0008OG-Ig; Fri, 22 May 2026 18:08: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 1wQY1A-0006Uv-IT for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:56 -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 1wQY16-0002Vo-Rf for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:55 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2b4583f0a1aso53730125ad.3 for ; Fri, 22 May 2026 15:06:52 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487611; x=1780092411; 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=NsT71NYiW45O+dxG9o4O8z1TVkW52tiJy3Sx1t7i0r7G6kWjeTAPEQ32Cwo4mvs2jt DNw2sI9qvcIV7GfCE9CVjK4T9aKZ/+dcaj7jBxzqGaUWG/2vim+tvNc9PvITk62N/e+g bMb0un+g+XgVTHBdbWuutdzk0hCBvlC3y5GarSVBP5N7CKWS0f36uZK0gM/wmZICMLmH c35kmYOnewomlhXVi0zeD7hewCCwLtsvcwDD82d41rRRTwYwF27eCYUzJzqV3zoxljbj uIh+EpSboXtbQ03RI1/SBcoaep2GEtqzlzsX7DOQHPmtmYA1ElPPcrNdqVyH/T7fw2rR HTtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487611; x=1780092411; 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=XC7zGhLRr/0vkwYxLtGgC4Mmz8QXt1AzWeFopNDeZgl4P4lNAQiofGVAFxLdxU9mH2 LaAes8dPlY7e6aOyu3rWaHvuhL42UIAajXm8wl03nmDxTRxqyiWK94/+XzL3wLPuaEYH YLpO6BqYIX88g/xad7xqU8wMw7h76wWsUuRYYLdFCYUjR9I+m5lHOlXu9fNNJPFxzONa XxdykRszTWfXmHJ+26+WvIv1GMMsYCN1FA6IYUcuEywRo1q5rKsdp0ugtJOU3rJHEnfm NuquUJlaOtwZYviumiwDJ0DmyM0AAUxJHSXPMGLw5dZl0rCBd4InC4wvBR45ye5V3oSI TOmw== X-Gm-Message-State: AOJu0Yxx7NCrg1PwiZf2+3bChDPamImGh9p/kV7nICzH8SVTauKZOsWk 0Vm9SD5FY52pr5wZ9I6S6cRlH9ADSNHoFDMWODjuSxejqzgFQpTBDHBvtSQEZ8fUe7jg2U0U9pd bXRfJ X-Gm-Gg: Acq92OG/3GLg353u5jqQxghRHqz/0Qg5v3g/BONwEZiQFZXYVuiMrlO+twodKmKkBWT Q4uJPg4ORGZReXUQ3c3K6CCqe6BywL0xyCm/EaCWLejg/SY2hhg7iRdLXL2W2E6ce0lGdUY/zED etnv4apVPG1w7RZBEXQh0ZtQs5DFqQmG1xgB9zSaAfzT0EhaIlWHlzHfpXA+nYuu2Y3G6+fPslp WhgIGmRANrH8oCCkmaMO5obBg/XFr15eodpwEud5xnUdwlMrvDQHfSmVv06ZXxZp+NOiGD3otn4 uwZKy6y/5eD0AVpMmDL7i0sC98V4nk7+qH56A2UpqUYTDPcfOu0YXg1X97kqTACx8AzQUq1qu+e bgiqob5Yb+N/3qoAKoIXV+6KxDAdctvtC5MrMkLEkYeXVCBv+EzaSRHgr9rZ6A3vqzx2jmOnAak XdymwRk3Dd6s501LRkh9FaXyMHJJwF X-Received: by 2002:a17:903:1247:b0:2bc:8f9a:3642 with SMTP id d9443c01a7336-2beb0758d9emr58191295ad.16.1779487611157; Fri, 22 May 2026 15:06:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 45/64] target/arm: Implement MOVT (vector to table) Date: Fri, 22 May 2026 15:02:47 -0700 Message-ID: <20260522220306.235200-46-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487850193154100 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 Mon May 25 21:16:02 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=1779487921; cv=none; d=zohomail.com; s=zohoarc; b=Uj8/toWF3AYtAKwGWQ8h2hCogD85HiGMZZi9xyz2xvtXFD3/Pa5t+G6m7GCFGuauXPQU36V/NjB8LN33l/p3bD9+N3f5hZZ1dxEtH3pscbf4dP5I0Xci8BAjnluhJP1uNQj0j501efN3j9q/sP0FbRbxdc0PadBf5TaMs/cVoAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487921; 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=Aey410KQFopLAqLMIS0BdZb8942x3gUN2OqXOwWfF51QPpL6YrUJHLr7IX+Ah3U7tAit/BrmAHoj+YkiAOUnyea2kC2N/d5nvUZvXNaZP4iqlruVWIhOAgTmtrc2apF8wdDzldD0wm/4oY5URGXSJXoWzqyb5NNKNSd8xOrraKo= 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 1779487921000493.0520499932102; Fri, 22 May 2026 15:12:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2X-0001it-LD; Fri, 22 May 2026 18:08: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 1wQY1D-0006el-BF for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:02 -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 1wQY17-0002WT-UO for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:57 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2be1dd4af34so64104355ad.1 for ; Fri, 22 May 2026 15:06:53 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487612; x=1780092412; 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=ZNmrhfB/uOpV0HMO6G4nS9Uqbk/+yhhPSu/tINtDB4zSIrgF7wpz8r8DCUsdn8uekO kO+iHvoZ9+L9I274rr+hXddJsY+Z3naTkaPRRrndcoL8FbWlAA/wqjML9fwiw1AuINoW dcnTQwdByvUZlOA1Vxko81pQoHe9mgZpUIIOLobDjlHkCb3LKiFd2F2tGikCHqMtWTTZ 8mgB9Pf9P5uqdeGM2h6LYNQIVoG9JC+OmdiPQNvsLJZQNMAuKrmBgGUp25YKI2u5nmjX wMOOLBtShNMRjlf98W3Es73YXkBsHgAdittszckyf7PPEy2d4SXVcUsoC6TyquuXFast x4FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487612; x=1780092412; 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=RU1WtWuKx9cAHsDNva4YjJlzrBNbG8OpPB46yAoyIut75Bhr2ylYIcg3IXDDdImpXW QzEe/7X69t+nrICFd7uomT2rUT/x+dBl0uJyu+eKhXjZfaHb3A/0ZDmYnfinhcaMBzfh q7OsnxmKZxO93IeImSUxHxSdzeLyey45xQb88hZw8r0W6SsKNXS6RQDSNKnY+SAPLR9A xDuFwDoDIbGSpGivQvNW1lsSMqT6D/xYT9mFwgsX/JdLUaydAQop++EZgGMX6nKuAIN0 RFgpTEM+i1JM/IBsCyK0s61q1S50YmPmqZCAqzfTode6g1/TqzrqUhw/807t8s628UO6 NnQQ== X-Gm-Message-State: AOJu0YyivlxPkcSxEn9WBIzyqp+wKeIy+kL9mHyZSDTJZSmHJcEum0KF a5nlCa5beLLAMkwRAJ0huRAC6uMKX98Y44tBXfXF1jXTMR9uLnIBSack+ibA2ghG9yObD1j/dvi 4kqSw X-Gm-Gg: Acq92OGa5G0+IPivGggamSir/QZCN4UJ6/gF/MIjTU/wR8Ul52g0Bf7WEhz/kFYzIa9 ZqL0Kk4cVV8RuL2QlKl9DAsRYcag/rivXKU4tGoZJMbyBa13o5RN7e85fpXYmksHfEi/oo0CJ5+ 5+gtnv+QDou+VTiVzIeXVYmmUXN2t+6QqDuVyeHTRtx8cN+zc4feQPe74S9HOHOR55874xS2BLG PWZGd/fZkIEXhpnk8cw+8VQuCb+mkL3woDmsghnRyW4GNsFJtOb/BGiQNIB77uhlYt3LQrH5YJP JjKVI0rR1fKIa8smzUzMq10MhTi/HNvChRPJrZ1b2r4TO/DNKrCh444g1Opme2Sdo0Jc2sMrBwA SwB6Azp+Igd+lGADsDityEq/NnijfU4crzxHUepFpBMCLTZ5xz9EXOMUC2jskd0385+nVQ5EYve lGFuDLqLHXD/PtJbZaaob27kx+gwBDtPxbicoGbS8= X-Received: by 2002:a17:902:d4c3:b0:2bd:646b:2ddc with SMTP id d9443c01a7336-2beb0375f34mr59132755ad.12.1779487611964; Fri, 22 May 2026 15:06:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 46/64] target/arm: Implement LUTI4 (four registers, 8-bit) Date: Fri, 22 May 2026 15:02:48 -0700 Message-ID: <20260522220306.235200-47-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487923259154100 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 Mon May 25 21:16:02 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=1779487687; cv=none; d=zohomail.com; s=zohoarc; b=K1oyW1xtYpUL6ao3Q+FId1/oo9vKlgV3VTWkAkYnbLCyyAmZQLNBrRJjsULovVlzG1s5LL5TT8v/IcZBQVT9LWNfRu78EFnpuyMUSfj+gEN13Xu+m3GEoojaQtksV7Q1AmMtJfaU3piha6QUf6nUSXLW1kFlJiV31KVQB8p7C5I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487687; 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=Tgd+j3lcaK2ld6JxfnCeppQQpXiqWsYa7rmt84Ndi0M=; b=Oh5trR1fkwUQ6djH/VrxB5USd8E8Vw8Bv58y5wFqU//kUJRPr27zbejkKCoDel4/E1BVevfljC1tB3n6aOkCt2WzmzFj1pYQ+1tGoopP/tWo++Q0VkfNwla1u7xAJ0fnaYy9ilHG6vtgUS3WVVmd0Ah1koJP4lH2uMAZcXGucNE= 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 1779487687074241.9709329648358; Fri, 22 May 2026 15:08:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2C-0007TX-Q0; Fri, 22 May 2026 18:08: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 1wQY1D-0006ee-BW for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:02 -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 1wQY18-0002Wv-Ll for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:57 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2ba0fc8b1f0so55973165ad.3 for ; Fri, 22 May 2026 15:06:54 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487613; x=1780092413; 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=Tgd+j3lcaK2ld6JxfnCeppQQpXiqWsYa7rmt84Ndi0M=; b=gRP4aOG1ShWiIyT9Zpb1JVi4xhRQX1NsjLBkeRqynb4k5DA/LoNnE8jasyScy+se+m /maweiZEacMAlqswWhytu9d2BTO7b79UJjIq5p9/b/c9pIuYzb0h90Dq5KRyeCD/FfM5 9Hix7FvLzPL7rn/xhrUqqjG7nqaa9+v9LYrMN5FsIslE59oxyD2cJF4JKY90hyXYcDnS bfaux/m3MOOubbH3FBJuiqIZQDXBXfC139SA/ZUx7BdapfSDVRRvTB1VrhMMG8xLYcCw koDhhrGq96yBKnLMJxP60rmX2/JgtejpyWwkAoNiDvBqbu/opMPWv0U+4rQtfiWFpyp0 2XnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487613; x=1780092413; 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=Tgd+j3lcaK2ld6JxfnCeppQQpXiqWsYa7rmt84Ndi0M=; b=r7p1VeD5oKR48JHPNBw3MzPgHSaNnNWjMmPRXjOSxA1YzBMQTAyQbIORi6wjaVibpj Qwlo+KH1IBfExASS86qt9not7+ZG2sNZUKQuOPrm4ItHiLiyN8/35ZXEYxqncw7Z54sC BpoBngnS1vqh1+jg443/pmH1jUPQiNFqUYpPdzSOulG16o1Jqr0evLKe9DeFnTSCaZhT W/mOMVEJ6QIz4qhXREg2DJT0L8KvTTkwfm8rsAr+QOFBN1fq8FEjMq8IagyeCUt364HW 0cCeV46hS+m36u8zUw45BV97+NZWQ/7uSUzDIigzvJedkTbPtT3oReRtjDP+p5I1yNZP C8og== X-Gm-Message-State: AOJu0YynErIreoEJkPkUcQ3j7fKMiJ2mCOBtv3Ob+QY+lsryf7TKvOL2 7xdb4AhrnMe9yKWOZjCuxwozkjAXsMw00EywZt0jYHSIGXhMmxnJ289KSZFRFIIHkx0N7fs0pR9 l+cqx X-Gm-Gg: Acq92OEIbDgePYE09R4eRCEtUoJqdSn/B/bjnJyju4X0/KQaHySK4YwO3cDwITpJ23N Y0QBadN6WOxLLQHv6njzS9bv5WZWvPh2flj0Jyh6T0XjYfQIXENUS3ixC8Z4B1z9nYR8ScrAXV2 FIk66njWxUwuJPd6FKOhJW6jMQ1Cw0B5rICbsna8nSm1Z3RdRVsCkLZvmjQv+z5w8JcUAySKdgf XgzwsqJ3gohsrB9HfLEIDeu6bHlqU+aPI+6yH6fwszM0oxiKJ7JRtX2uYx7sSVIz68nPeu0VsfX RMAPtHAiSQD8mmCBK7fQd055vlH+aYnvTSCJgJJhSaB8DTyQspdTKVOWcCmerAxun0sq1yCu02k SbjVt4gL+hHyKOh989gfFzKsDRTRp1KhxILHyQXRk5Ggz6z2+C3lsXx24LYdhz8/7xwM6NRbur8 KObrfFo0+ecyH3OzOGJaKOuaQMhPte X-Received: by 2002:a17:903:3c6b:b0:2b2:49a7:a5bc with SMTP id d9443c01a7336-2beb0715592mr55564175ad.39.1779487612805; Fri, 22 May 2026 15:06:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 47/64] target/arm: Enable FEAT_SME_LUTv2 for -cpu max Date: Fri, 22 May 2026 15:02:49 -0700 Message-ID: <20260522220306.235200-48-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487688261158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 3 files changed, 3 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 7674e308b8..08ee5fd192 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -221,6 +221,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_faminmax, ARM_HWCAP2_A64_FAMINMAX); GET_FEATURE_ID(aa64_fpmr, ARM_HWCAP2_A64_FPMR); GET_FEATURE_ID(aa64_lut, ARM_HWCAP2_A64_LUT); + GET_FEATURE_ID(aa64_sme2p1_lutv2, ARM_HWCAP2_A64_SME_LUTV2); GET_FEATURE_ID(aa64_f8cvt, ARM_HWCAP2_A64_F8CVT | ARM_HWCAP2_A64_F8E4M3 | ARM_HWCAP2_A64_F8E5M2); 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 aa0c0ee1c1..9c82df136d 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 Mon May 25 21:16:02 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=1779487917; cv=none; d=zohomail.com; s=zohoarc; b=iLOzpq4HZN47c4yRuDZ528TV5gMYiE7t5ZZIjzaNfQBQ7AzGPrk9kt1xq6KX89Cxths/sh7CmKmFK4DwGaipuWxg4mk/qKhsmpC5+EvVHXc0DTGmrUY5j+7Wc2DL7zL1hORKS0nLAhN/KH61a4CRkvbE+wFKBzKwpeo8R5JrNNQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487917; 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=unqR5EZ3uxbK5l85Vl8sCfVbK9h9Gg7mnyWkgSYZk0w=; b=Sc3WVCzdyzJiYUJJvamE5fz3Mcu63VxNTk7VSeZeaSknIY5/Bl+Shvxfx5J9bJWVYBkTM8px8xnaJ6usnHNZPSYBF8sS6UIx+9JRPCA6C7qdDV3AIZCVHAcSZVzevVfzyymum3UhcbelIsyX3RkuPBBlRvUQHgqSCEIGidPutns= 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 1779487917401888.3232381515458; Fri, 22 May 2026 15:11:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2D-0007Xp-80; Fri, 22 May 2026 18:08: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 1wQY1F-0006iv-8E for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:04 -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 1wQY19-0002XT-K9 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:59 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2ba1e9d3687so51681815ad.3 for ; Fri, 22 May 2026 15:06:55 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487614; x=1780092414; 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=unqR5EZ3uxbK5l85Vl8sCfVbK9h9Gg7mnyWkgSYZk0w=; b=jACHKMf4ly2amkPWN4rvoF8lEw/lbaWknyMlVun6wMGLho4RlKKo7akb+wJ4GFczkt F43rqePuXl28GcsGL2sVwgcTq7M9Lag1xfS6mDOQZc+jcFE4KvwU3mKHPpgzuxUfmD6F B25ZMYBZLeFN51PXYw3vG2QKb8/Pi5BMgReoeumIjPYC6aSOSv0zPTW2F6S+AtMT3NT5 lrXBfDXtx+LkunkZ66lbc+cVT1zD025DWaHLOtIj+1gZR+DzRivvCmPyD7OVvvCc85CV U2JM5ABGpxIkN+44mTPlLDipcwSpbJOh6Z/SEbi2+LGP3PQ2VZVQ4vK59hKxKnM6/RQf kxrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487614; x=1780092414; 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=unqR5EZ3uxbK5l85Vl8sCfVbK9h9Gg7mnyWkgSYZk0w=; b=jIqLG8ys27ljSZq54JWDlQzYB7XTD9BDIYkRJZp3BSw7EDYfW3Xp2q5BghwJNdiH9y +MyjXT7p0PEqDtMQZ0+bM1CNM+C3HG10VRtFJXu1zcOTUjVmtvsAiAFuDK1swoPK4fC7 r6ZgBKo7ojQ/MH3W3yMIym0iFM4nNgyjEEyJ/WiPe/JZ9grKnUe4lX5JyDykORSYFzNa kYW1gVuRtgRKLKrbPS2+LMA/7d5OQOHwE12NRg3H4mF6M2Fn+hhAuCYVNIB5yLmeK1XQ 1JOOIAAc+hjB0u0Srb9ppd57ZN+BKsV3frYKH5WPYajradrV2keSerundV5zlJECIEpE BCPg== X-Gm-Message-State: AOJu0YwN6XgAWSNYwFMWP5Zy9jO008OId7WRgeiWjBqGjpsu8n3RdXWh mED1yS056+6YnNPtD9yXMctoCvcBr/JLw+IlUeVDfRGLVTutkmYe868DNGNTDMZFc7sgbis9v3x G2KnI X-Gm-Gg: Acq92OHF4ErvgLaQtBf3mz/klMWoAs9JnIWXoqVojfG80fAtHWMue6VXT2qdIy/cJGQ fEG6FsUCSD20Me7X4k3DRw4syqqfF+fx+3No3OPzTSw+dhaaVHZIE8xzpkcrygPiunmB1X8X6XI 5XaIjxpcdXW8LC9Lhuw2GVXI3ueewBdTFhTz1qYsGAUkYUs2PsQ1hohuMntgu4vagRjW1iuntN3 LHh+qFhMhwto9jy4Gvrde6rZgfuFX6hb/ggTFO+Ab2kZ3TtswpqTbMrC1HQF+5tFnzRFd/Awiap sqWEr/bxGliHWR8IxtcxIIQUexOVGR6qCdSr1qKe7sTVUDTJqlLJqYkQFTdTrM+yKrrAA4ACvwE lwR5wQQ3+xGqThdIXM9p0XVeaYG03poQT8lEvuMm3jATgXtAbpKP0s/F2Vl5/tANNpmnzXFSvqb HV2geJF4+rMVsYhp7XhjCvfMeGJ/AVka9HfEO6fBw= X-Received: by 2002:a17:902:e88e:b0:2ba:6ca2:bd9 with SMTP id d9443c01a7336-2beb07032fbmr58622255ad.41.1779487613809; Fri, 22 May 2026 15:06:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 48/64] target/arm: Implement FMLALB, FMLALT for AdvSIMD Date: Fri, 22 May 2026 15:02:50 -0700 Message-ID: <20260522220306.235200-49-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487919178154100 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 a39dc6f859..316e151817 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -568,3 +568,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 14597e4d7f..61ca7ff920 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7381,6 +7381,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 Mon May 25 21:16:02 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=1779487849; cv=none; d=zohomail.com; s=zohoarc; b=MhiCktFIMuBRQ4xa2C6CM52m9otTUwHsDshrBzScS3orE0svZUbu+gST8mhu74ZuXM+8naKBdDbtYptM/P1wFBcnLtFIXL/A8RHYDut4T8GCcG9aJ5JSzajSJLDk6cBouDjXzYZUH3wKZMOzpBhnLXRRjwL0Lfp1ANRvmR1Wwq0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487849; 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=SMNTC+jZ0BqAim5qTslVzFy+EOrMkH7DmeCmY2/hdaI=; b=aIucAvy88wh5abnVi6733rrWL4OH6tdxwoDX4MuaoQ41KwpUiby6kC/OmCYY5YUvEXfJYwvnRSs7Wqvua9XqeFtirtDyJ1tPh4z5StKTqsDsQKjhn6ELY4u5d0Fee3DBT2kr6dBEVBFk1bQMGjXBbPBsGDPKQyrDxeODnh5vPDQ= 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 1779487849912718.2253571264929; Fri, 22 May 2026 15:10:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2J-0008SY-Q6; Fri, 22 May 2026 18:08: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 1wQY1G-0006k9-Rl for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:05 -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 1wQY1A-0002Xx-8a for qemu-devel@nongnu.org; Fri, 22 May 2026 18:06:59 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2b9fcf7c91bso86479395ad.0 for ; Fri, 22 May 2026 15:06:55 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487615; x=1780092415; 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=SMNTC+jZ0BqAim5qTslVzFy+EOrMkH7DmeCmY2/hdaI=; b=FKpNf2Dn7sVBwk9z17xWTGBjo5DxkOGNuWFccuUdKanuXTxQJLm0cCJfFVAXrgOlBj CO1JgRxfpUKOOlbeSOpkfOV33yM1CX6As9RdfRCQvT/mJ2qVvcc0TzzsWdq6F1dfgmP2 rrph9+fYedB+sEnOpDAx2YrXmYgf7YoLAiCLXpLQp/HnMSsNCx2MZxpNa8iEUloLOfqr /eXDlvSNhNzs74N1flCKmKOWhhBfnOe4RE02xRnJSpErF5RRbmkUViSyYv4UR2PrF+Oi R3kdcLRC/Vv8BIbGUr5rAmwuG5qHpwybfiQh0yv8qWgi7O5Gdix0cFqr1en3ZGy1qjMf Hx/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487615; x=1780092415; 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=SMNTC+jZ0BqAim5qTslVzFy+EOrMkH7DmeCmY2/hdaI=; b=Jrbm3xIwsUL2g15XWfEkqzgXjI60qEhub8EwxNZNIdvoKvLkCLkIOdVHa3LMCRRPO2 70YDwCKPS+EPu5MOO5Ipcyy5NCV8b1B7OSltq2LjchkAPf7fSsU8s/mWf+QS3Ou7jon7 dUFQ7MSFWAd9lPI3JwJy9wAOSXiiMwhqn9T1yiLZ+r7dEEoK6ro1SF6jmsYdQkpSvzdn X5cW9R1FiUPlGhlDUq1X5jb3fGgcEblTBza+UfdxzPl0rcS/8HqwmDQvfGqsLYTNprul ngWHjIgcwzeGqVwc+E62bHCsdbWoERZcM5YxwxQrabYzOY1Ke6dtBQa4CfadJG/vXGvY /HPA== X-Gm-Message-State: AOJu0YwyjXeiPmJIAKbvSaSyIL89sjrlVGyJYRp/K16bG9beeKmcqWQA gJdz91T5+WgHQfvv/EHR5+cVvIasO9q+P14FptJ4XiNpGYDt/g9ZosTy3ytoxkkEvfThIOAHgMg rxOeN X-Gm-Gg: Acq92OG3Q5h0m/x6nV1jXpQ2M60XhKoV1NuSkDFDcwzRG+fOIK4SSJa/E7TkBrHBLCz FjzAzQ6uVUJNUM8ioGKyrbyNm0+fw3ikd+Cu9XbMKrpmcss6esVd8bgDde5DLl27HkHyBTdJgDL +9R60lLg4XmZSul+KjFii/Wm3LAoYjcAvKSWo0asLXteSCKAggAUfaQXD98XHLo/PfEO3VH0yyQ qY+K99W3BPgi7zJWZ705aggvhLRyYfKQcmT2TyZh9ctXPwyranM7rsQFOXoO/M07egy4dE0UvAR 8LnLWTbH52+tEXugez9ATdJOUjQ9f10KTdi4vtnAG/GurjLdU0LyjgVmkmodJ9+TBuUXpNHhVbA YkP3YkiwONGzMLID4jlFiSDjnKuhfHFWBw7/+1gPmwUBF/azJGSimmNT+07Li2+ExbpgZ0Ad65H AZf85TmwEzzyL2Hdf2eHCkOePM5n/sIL+bpObqi3M= X-Received: by 2002:a17:902:d489:b0:2ba:6ca2:bca with SMTP id d9443c01a7336-2beb0680e99mr58165305ad.26.1779487614626; Fri, 22 May 2026 15:06:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 49/64] target/arm: Implement FMLALB, FMLALT (FP8 to FP16) for SVE Date: Fri, 22 May 2026 15:02:51 -0700 Message-ID: <20260522220306.235200-50-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487850969158500 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 2ee5a36c5a..dc2484847e 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8354,3 +8354,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 Mon May 25 21:16:02 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 1779487860085748.9247176840039; Fri, 22 May 2026 15:11:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY31-0002L5-UH; Fri, 22 May 2026 18:08:52 -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 1wQY1H-0006kQ-4U for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:06 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wQY1C-0002af-Ma for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:01 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2b45cb89f7eso53327205ad.0 for ; Fri, 22 May 2026 15:06:56 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487615; x=1780092415; 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=OXEB2UcZM2l2jdzFCAfmcvzI5GkMbps0o1syZVwrYgc=; b=uMdtoS+ZVhoxWIO2VNWtnAk6G7b+m1/9XYcLH0Jhc1yHi7Bfmp5WKWbNZP/6aqnSLp x3G4FCN4R7QF90+NlyoLNdzBhHEPauFSYxDWRxP+WOv5EnsNrSSfRQG5VLFEexImRkF2 ZvvPG1C3kfLGphDOar2UwDXhv+xrmKRqkmRa8iBKqTGTpQP8r/ULY30LHx0Z0GBbKxkM v5Eo0lCGNCFQ3FFPeo/HNPuN0vcp27/NCIDPVBnxNTPabT9KT6leP02hFpsPOEstsbSA oMzePKz2h1rpSW+OxkNudO7TAVOT108wjlZ45v1Z7++3alQqPZab3xk3jyYKpgdB/Brq gUDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487615; x=1780092415; 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=OXEB2UcZM2l2jdzFCAfmcvzI5GkMbps0o1syZVwrYgc=; b=ef3Xs2leFFTOr1jZV8HY5S2+sP44ls0rpQ28qzs5xJ4nUDcOI3jYPC5T0aGi7Nu6z6 ewURS8KYXGXu9J0MfPOuekKrvhOLzYhaOXkGjuntXly32FspOR9Js0jQyftink5icVya bx8y2w1IzBytCWkBNOWhIz6pinEiq09p1utnRvdiFQjKlFTNQBwBCJHHuxGtCHsZratE //2sZEssO2wCyE4mI3vWEdlZQrXdHPSAKwGWMFrZQ6+KAZext7c4K1UbzWE0NCVNfYRU L+sBkAcVnW9vwqrrM/OSZOM0Kgr5EtTP7p60cPnKi8mG5cS0S8xk0JmMtoftobfM6VBP OjZw== X-Gm-Message-State: AOJu0YwBQWOXFTBByO0c1hvyUqSyrsj7yHi7atVMBVAxxnxx1uhYpZr2 ilanNT+eJaTv3XVDxS4ydwpq0ezkYiHHDHNW1CeslNI401RyN+fZPCJxMzExyNWDlUGlXJ0eIti Q+2RO X-Gm-Gg: Acq92OELjsRH2meFOxWW24SMCR401r8ZsCAGIzHo0G7nypFKXmZ6MxcCJZ51yZL7uXr Rx9C3xneeX4f1l/5dMKP4GITk7cAOzH+8qDupzmEz3erzyovTVt1kxd1rsre7X+wzR9ofJgUQ4T kzyiawtb/UmVV/MjceL70Iradm2mTDxCVi0DGy8tUkVKLlzRAnfmrMw5OVBVsZE7RuPRO+iH+x3 QV9ViuJjKnkHlrgVW/nmljNWsGK4O5PBHhAQ2gxbnYQnoRwcKUnsjMnRHqm94Wa5HhzWNKwdU0K wFDCDe8wsXZ7WDNTpRryOf5JaGoSEnR094cphRgvG+Y5Vun8sLT0HOqWtCmlQxVhZMOOIeSFXP3 FfGTpF8Wm3FpgqxeI1P9lIn6/hPp+Pl7IaVFK/+nSbdI0JpzZs08X/BIt5a262/synM0S6TzkjB o5j//+npLqn91d/myr+O3V0w6ggAmg X-Received: by 2002:a17:903:1b28:b0:2bd:606d:b342 with SMTP id d9443c01a7336-2beb05d366amr65140385ad.26.1779487615458; Fri, 22 May 2026 15:06:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 50/64] target/arm: Implement FMLALL{BB, BT, TB, TT} for AdvSIMD Date: Fri, 22 May 2026 15:02:52 -0700 Message-ID: <20260522220306.235200-51-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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: fail (Header signature does not verify) X-ZM-MESSAGEID: 1779487861019158500 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 316e151817..2e3eb43799 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -629,6 +629,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) { @@ -673,3 +683,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 61ca7ff920..a9e816fe3e 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7397,6 +7397,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 Mon May 25 21:16:03 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=1779487827; cv=none; d=zohomail.com; s=zohoarc; b=jCPinFqYBRoI5jAO2cvr89HDi7A56FVQg9MF7rKeKRVCJK0wGXTKr61vv3j0PT0mt+acinxZ1qC4yCYpXeDFA4Fs98LnmLA8p/afRpe8EZze4pfYjxsHZkQgX3xXqwGBarqMwGtuHotqP6GUKPdnbW/F0l77so8d9VPxCtzWZLY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487827; 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=NYnhgOtc22ps1dbE8uAHDywGG6G9iAb2JOADAM47v90=; b=O6r3TNX4T1Q1ALU4N6I88i4uiHl0aV+e4e59pGdshYp9s6nGJo+CsCk5gTt1fiPdBDwDBRIEAJGBj/z4jW5Q5YyhdH/azHfBzPcTACKzHsX1l3/XGDnI9rSFPqm1NbnJCB8gOckra8LEqmC9tdySbih307FveWpr3KqcUAnJVDA= 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 1779487827544381.15034080854; Fri, 22 May 2026 15:10:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2G-00083K-U2; Fri, 22 May 2026 18:08: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 1wQY1H-0006kN-3X for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:05 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wQY1C-0002dI-UQ for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:02 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2bd2051167eso37658205ad.1 for ; Fri, 22 May 2026 15:06:57 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487617; x=1780092417; 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=NYnhgOtc22ps1dbE8uAHDywGG6G9iAb2JOADAM47v90=; b=ScH34XSh4jamSrWNXtusVUtZEF5+FWnq/73/+cEVqsTGwqWsjw9VnjZO9BMZGcTbIU gvwFRL+uXiNZ3QIgbxgDFySMlXgRNg6kWsyzH82Ou0EiN11HuMlYQCuPIjM6F0/6OM5X FFMCZTNbFWtsol77Ge4/1P2u1lz1fb8xkyWSborVYJ0speevOoSaGvmppqxoWtYXEdUX nyStZA/NmGZPjq33m8UdGV4BjfmwvxHNKIgzOTPlQxSYSMBq5WaRTgCzg3WCio/BO3m6 7SrtBm5r7f98dBRqW+sjDtCX5DjTiRInvIu45KVCs2/BdTwXe9errQxV/81bdYbqRHGP lT6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487617; x=1780092417; 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=NYnhgOtc22ps1dbE8uAHDywGG6G9iAb2JOADAM47v90=; b=IVdurheAMQqMMsS0k/CMpz50k9eNTCLooCddh6qn+mU73SZT4jqaFCJyPNK7Xjc6Xo xMKIoGXkypCyL7dDGxvfLsz4Xj/ST14TQXeAh4MBdLExOYBUhRLe7E0TQtrY7DJHVRZd LgIBXakoS2L3PfDswIVLPFAQ9Laa8s2VwH7wLCTF5B1KZrFmOc4jmKSt6mjHLFUo4JTK ofAMVweHmqusSoHqR6nT3zTtRG7lRJMzghziOOqzlLVzCzMoMfQrL25BCRYbxrAD3tJi sRVW8jem6gwkxPx3Mc7PeCuCUdBNQOI+kaKqKKZSx1d7vwV5mGPO207XR/GA/64h2lgT rLEQ== X-Gm-Message-State: AOJu0YxRSXBRRgrl7ZpGABISkIqVAauDJ6nYiWduQxrg1oPMEVykfMJ1 lmPCEPLTk8SQ68iCp5qxMuDEsLA9l96mG+2oSDEXXSAcPDEJJp6G4VKSD6R3YJGwLy8P7pcsg0x V4UYM X-Gm-Gg: Acq92OF+rJd6mxm8L4XstMKuHnhNwn1unEPcZSEBb2EDteT/lTx+8r6KyGUnce7hidA GD/hZHH9CLfwQHbdvV8upJDXhByYyDvlaW4ne/7dqQrQwKeNTD9BKIP1YsscWZGEHsjsGF+2rt5 UyPXm/Zu67SNuMgnokOUlKMQ9ttxtDElsR72GPpA7LwLlNyzRrMF2UY2jdoHfeIGIEYwevc0oG3 UwrGayra2K7wtyMNwyAGJMZ/Apb0Jtuz+AZPsF0o02/aB9gJp9mX1zh3HK7QbKJHbvl390xHkqB danhg2ve6bYyZMjMGvAftVaxnI+Bszd2L7nuLcsbz6Ca/f9EYO+utPgwGzu9FAcdsDnqwfbF+vq Hn3vrlCeukaIqhMx0lFH5LmXH+F3sAl9eqHbTAa58bb/82IAAx7zT4dU6jzN4Z/jPckZDQM/pBW JiaYGtT5W4XS1WcQujqi4HCoKnd0YmY8HaEf3wE3w= X-Received: by 2002:a17:903:19e7:b0:2b2:67ca:5ff9 with SMTP id d9443c01a7336-2beb026f4c4mr60082155ad.0.1779487616499; Fri, 22 May 2026 15:06:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 51/64] target/arm: Implement FMLALL{BB,BT,TB,TT} for SVE Date: Fri, 22 May 2026 15:02:53 -0700 Message-ID: <20260522220306.235200-52-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.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: 1779487828916158500 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 dc2484847e..f74e888580 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8387,3 +8387,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 Mon May 25 21:16:03 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=1779487765; cv=none; d=zohomail.com; s=zohoarc; b=l0sOORoN/Dsw8yz/1w8sSmuT3v8GTd/Jnbd9Q9jQvPraeEkcltHKO6uNS+HIWqS9jJXGnclvmvZiy3yRfVNJKaZJhLdugDI/PTj4fFhwFz80BdHxWe0+Fw31GLNPjyn5r726fPgDIsNCd4tR6ogiJsAJnVOXMSetUSTIJTguH6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487765; 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=HSbz0rz1Vzev+MKaGO1lYcCzTIBBWb6RJtlaZ74LNDs=; b=BIgI48K2QEx09WQHAYySZQvSCZRYSHWFXF3dAiKJ9E5loy+1XY7V82IXtQWNjcTsSkjpkQaG/IWVRrj+S2ZJGWu0/f+kgf/80nAsGLZQPwp5N5+2VUWu3mthlCICPx0TBnDeqh/o030fNH9hq42gxs3zIL5/tIJNWO8PQXfryKs= 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 1779487765462381.7956149303069; Fri, 22 May 2026 15:09:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2F-0007lw-3E; Fri, 22 May 2026 18:08: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 1wQY1L-0006qM-Dg for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:13 -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 1wQY1D-0002fG-2m for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:03 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2b45cb89f7eso53327315ad.0 for ; Fri, 22 May 2026 15:06:58 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487617; x=1780092417; 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=HSbz0rz1Vzev+MKaGO1lYcCzTIBBWb6RJtlaZ74LNDs=; b=Dfeu6lCLMcy9nj9zrOr33IOCMCv6/RVzITnzOvsGNgCkv3pnl4++3tpMLPSfDC8QSs TEIIqNMFShtOo1e6RxPOwRry99908FUQBYcbi8OF29G1h9CjXDz4oV2iPGhP+BCCXob4 zSpJ+nZyI6gdlwqyeNTm+hM5664k10KZcrFSbzhlKA1jUBHhLsK1yZvTreK6y//R02cb 3db0em2iPFlUnEF8esg3liVGFS82jjYudQKCxotsxdU1MuDWCmZ76cmEYExCtdkRtWfq QxZfDkE0gREURl+981q1HzDOEV9s+FXjnA6zS8d2KaO3m+hGbmPNXyeMBRZxFSZqR6MP qFqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487617; x=1780092417; 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=HSbz0rz1Vzev+MKaGO1lYcCzTIBBWb6RJtlaZ74LNDs=; b=LDxco7phnEzXamvZXzO0YPcoYMnlMuad9+bnvYwr/sMes6AFolZ1TMMeowdmCrn+h/ UJnAf7FDfuXzLLZEZdDDKt7GkDp2BPPFYo4sXlQalwoNWUFpndaIJguqgMjbpa8RFPkb Fh4nq+LstYxR805jlEmOrFtSppdlDlEo1mKDzOCXnG2mk18F0UM4ka/qVhlTvjzYdnYT O5tO6QiL2Crbhg+9iaZsIQkD3N0683AA732BMkGvtyEFGzFZd8xbsdC+jB22F9rp7y0M uDPcn8TQQVpM8ybPtGpy3xUmIDnsPYGPTN5DZ85F8wBarB+SLCqUasJypfIJ/LkgWSVy Ucww== X-Gm-Message-State: AOJu0YyOLJqphNSmsLykp3sNIRyAZ6RLUZPBAEERLQSnZ/RhBxqLtE75 hx/emt7WL1ej6GF00TomH4Xu0iqxmYWAUh44mviepH6PsBaM3X2eEOJgVII3bemY7mxbt3HT/ew OTycx X-Gm-Gg: Acq92OEH+YTaaCQtFYWDw7g8Nm3kmxYyCGW/8PbhaMmFV/AUqYClhn9rtZBtCp4ysXd I/qoP3gURzrkITIov2Q21T78e9zeiu4VYIXX4vtv+3Jh6YRZ5vb2L0xZAX1UXWwiFg0KokqFxKm O0LDXdiFrPIBETLy+oMD5k8Y5SGMxWbDI34lKs1aZ4X/g3MDA5S2OVoXw95e5jRAIf4yNFUj6gI A/1bAt2Kqo1/wSsEkeFJ7I+Czcfci7qMk2BmnCoT4CODfpfz7LIAMPlE/FywWsUOrWqFhgW3GPC lbRTvhJGc57YfIkrA7y5lCcVfjTIR/389mnhur5WtRWpT0WxL5XxydjOr7xuzM2C5hvL6MHvLgZ Vih3bf/+N44h7FUb+80Pnj+JW/yjPIaf64/sxoWAt1luJEswS9gagVzSQMRwCc9ZhmleIY2MifJ hgTGj8bgUHZ6isAwYXvZSoSf0Wqm6K X-Received: by 2002:a17:902:da88:b0:2b7:ca38:975f with SMTP id d9443c01a7336-2beb05b57c8mr59728445ad.23.1779487617396; Fri, 22 May 2026 15:06:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 52/64] target/arm: Enable FEAT_FP8FMA, FEAT_SSVE_FP8FMA for -cpu max Date: Fri, 22 May 2026 15:02:54 -0700 Message-ID: <20260522220306.235200-53-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487767155154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 2 ++ target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 3 files changed, 6 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 08ee5fd192..2fb43d51e1 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -225,6 +225,8 @@ abi_ulong get_elf_hwcap2(CPUState *cs) 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_ssve_f8fma, ARM_HWCAP2_A64_SME_SF8FMA); =20 return hwcaps; } 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 9c82df136d..c7128f1cec 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 Mon May 25 21:16:03 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=1779487736; cv=none; d=zohomail.com; s=zohoarc; b=LVOIkko98BYCO904EklpF9PeSxU4I+yRdeM/r24LfimNhnc/h0MZxvjWdK8dfU79A5PbK/5HAZK9In06CupxgLQJwTBwfbJvgE+KMvyqjcysgqS32mPh7ES0d5J1NN682wezp8ezWwwLFUBk0sOw1aKMRY9YpSvJ1M+simgM59M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487736; 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=63SLsAwN+R2/NKJc6wAwfjdhLCbUlj1w/1+4wqYKNRU=; b=Kt4Y0bst7ZgECAEg8KfZstLtvtFdz2n0tTRR0RBalLPqRboY9nTyzHMszP1oMkP9YfmyEfy4ewczB+sQpuGmDqghwFPeAxkGXN1nNzZ418JIHGzzZttM6RNN91TZ01UWXni1Ikd+4iTy2bVNJmuFvyIot0D9AMOKVelC6k1OTCM= 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 1779487736395141.39295574751395; Fri, 22 May 2026 15:08:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2S-0001DA-P4; Fri, 22 May 2026 18:08: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 1wQY1L-0006qI-8P for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:13 -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 1wQY1E-0002hT-TO for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:05 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2bd80b3aa13so51854395ad.0 for ; Fri, 22 May 2026 15:06:59 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487618; x=1780092418; 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=63SLsAwN+R2/NKJc6wAwfjdhLCbUlj1w/1+4wqYKNRU=; b=kfc/E9OE0yPGKtZS8PVVqLnDhPwphIxhwIxM//I7Etcwf3WbDZc1FuwBzSk9Vv5dAS HYwBd22pa4a6VWrPGH3phu/vk58gKh0JnI4IEEJFFVk7MuDq+ZClGwMj1dPxV7sxaPUp PQSf1AZboenU7axhlzaYciZect6riS9kx8p2or5oS+YuX/izQ3lrisFGGnVH8nv7tlfF 0ZZYv/131OXzDUAA0i83T1cfe+MFfOlJtMFFNwgrLP+wWhmNYdAMwr4v8Nxtm8YpiAWc HXb9K1O68F4jlq3uCMh/cANwEUgnBH9iqNNxiP75+gb3de6g84w6DiPvA1rGXBr7xoJe 7GeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487618; x=1780092418; 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=63SLsAwN+R2/NKJc6wAwfjdhLCbUlj1w/1+4wqYKNRU=; b=GwD1+8vjwUbnyE/WslAEEUmDIoD3LbKzwoQOTbwY++SobxxHK7R5W00udVJQQmNKTL jHEamzxd+YayrfKv4nLfuEIllIDs9PoJDQnYIlct8WAMPIHNmcloUlp/ADYkhBaDz5OV JSThPE8Wrn+eyzYtPZxzZlWbMmd7w9jhCmAsJjgz7wwECHfzFiw0iIViuTPE86DpWuwI TRV4SkfmdqXX12SDQPDnEU3t8DKir+ONzlLMAsUkn9PnFBdxi2bYDm8FwKQ0Iy7zvaZ7 b5Qyc2X/eJmcDZJGlXW54XZSDnm07E5d70CQNtiOEj8y1DD9aAdVDZXnZ/C0ghbDf9yG /Uyg== X-Gm-Message-State: AOJu0YxUHHznBmw4JVEEQHj3UlS41MPno16wxKxpLBaVRQRLNZqNMBhQ Rymi4cZkdTmHL1aa3QmpUmzhZ3gNnc7VqdWCe+n6vhQAdCyEYfB3p19w+ZFNtR+B3zuqZXLGI/i 5eRgB X-Gm-Gg: Acq92OHB/n+i5VRtHQRp7FfXehciBwlQ/QXpALT3656muQe+swD1FdNRdSPvoaSNSle g4p9EVbFXP6uNcJJlSaKJALvoiW3WTJ0dDtXe6XYeBebYvKzQn8Pv1FXX9dEJ3WAqlKiqIVQo+i x9GblPXLjrVhmEGaRZOK6SMHqurUWhRMSiuKzENgfNFRFl7Uhbta3hNELCVwjg7QTSk9zen7WBN Jrlo/5+WWWJpHH0gtb1MFunXzheTXRY4ukBdBaeIVOI8OJqRSPPHWwN1vmeKTrwF5i0eH553xup 2L4nbCBybBtB/vtBdrNPId8+jKUh3KZfngA+Bh/WYijIOABDt1bRecb9xPSgrRGzFpTBiix6OHz HpZ/KB2MBVV8PjJdcOtGZe8BEzZ6ojv86QhsVFVdygqzOwtO2uaHt4R8xtcFf2Rn9+PJzysF21W niUDm0CGZzMGdPWUSaXs+roI+i8YrbNNmZN+V4kYk= X-Received: by 2002:a17:903:46c4:b0:2ae:54b2:27c7 with SMTP id d9443c01a7336-2beb085795dmr49064095ad.39.1779487618117; Fri, 22 May 2026 15:06:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 53/64] target/arm: Implement FDOT (FP8 to FP32) for AdvSIMD Date: Fri, 22 May 2026 15:02:55 -0700 Message-ID: <20260522220306.235200-54-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487738477158500 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 2e3eb43799..d1d5b22cbf 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -728,3 +728,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 a9e816fe3e..d2e945a9f5 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7400,6 +7400,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 Mon May 25 21:16:03 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=1779487918; cv=none; d=zohomail.com; s=zohoarc; b=E8DxSHDIodcBlxRZy4VsgwfUxywPcPN9UIfB9XcUVoHCQLM1wBZwrFmy/E+sf32s6HaFtRQShyEdEsQKGlgDS5oru6+A61Ok6gK16ZdTI+bqRNO1R1PuCBUOt/ZzfHbhd2c8ezi0DgC4YViwKrzL/Lm4QFLJe1FkllRYIG4XsJo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487918; 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=8eytuaCbSA78hWc4iV5jWqOyRZ8ZpfJdBOHvcB/QX7E=; b=IVoATeCGITOjpKHw6fLbH20sgJqbr4wmLHsd7PqnCTBZNNmfFAqQg0awCyOL3Ja+k6C0+lLb9db7BGPlM1+o1kNsaFZaxMSDkxaR8AODaUdwSi+2pszloVvvHPMryzqEwKnt6X5EtuuK2BQ2sy8fakZ2QrkIqpWgjjh/VT94QXQ= 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 1779487918834493.4570470039182; Fri, 22 May 2026 15:11:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2Q-0000we-QT; Fri, 22 May 2026 18:08: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 1wQY1L-0006qL-B3 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:13 -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 1wQY1E-0002k4-Uf for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:06 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2bd9c3b550aso54712315ad.2 for ; Fri, 22 May 2026 15:06:59 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487619; x=1780092419; 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=8eytuaCbSA78hWc4iV5jWqOyRZ8ZpfJdBOHvcB/QX7E=; b=uqNxaLlOrlsKPVS9/MQ1ebP1UgqywLqgqhig+3zh1s8gyviS0Cwcafypm6LB3M/uTU U40G0oabu0vajP4EMYnsLYcOHpIBguaEJ8Gv4cfAThARgJY7fbcE28l4zXixC2hWDlQE 9SjMM+2u31UR034a+4w4V6zrZvUh7v06wyYWvOyJHqNer+D86p7H/Onz6lED/YMUUTbH LgdGt8twvl3mRvrluuD4sikxT58Re3DgUkIVmuiAWmrMpgl0b5jhgnyfzOEr9BQCqbHJ Ax2hG40HwIMJ4dcWAYBpg1FAnyZJSIi0g8Ch/RuAYG90+yTuIPt1pS+MQ5wlEXRoDZKC nLMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487619; x=1780092419; 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=8eytuaCbSA78hWc4iV5jWqOyRZ8ZpfJdBOHvcB/QX7E=; b=kPyX/d/TvUCdwktvY8Fn7CTRBDonEmcvY6Lj9n0IWiDm9JLiBIqnI7aEncBoICXGza ZD74SjLnCZiJchsh+v7QkUBoseLJ4TG0io1tttZutHjDoHPozESypXZUJQDP4hDelkyB Ugxsh7uHlUY1Z784GX/PUY792ly96kPHLJDxc2TC9w85x9UX2a554+QdZoYvTPdalo5r kZmnG3Dh2pKEXy2zXl9Plk+Y3NfMBA/QRFbK/WoVP0tysSgMu2l9jrfqaxJulQCI5oSm 2sKNzVpvgAW/OEv1rPHNCHfUqEoshPrE0TSe9OL39CyXOcZ0ssn5mzbN7VUkVU3tPFQJ oG9g== X-Gm-Message-State: AOJu0Ywb5jJpqZ+PoaSJyN/C7VR3XRnDnr+mXnlWHnUUFGiu3sJAGmE6 afpHD41TZS8O1b+DsK49GqIQD+ceUkyOD/JRh/FkrwUI4CskmZVCKjA8OIIdXA+Hoine9i5AodX OA/w/ X-Gm-Gg: Acq92OGiptRHiNKNHqMLMXHLEClqNZSiTjjAQ8wXE6cy707Sf0vFWdG7v9ItnL2bIBT S4EVCmi2Cnepsy5xvyLC6WrAAAYpB8SJicOn1yqldnRb6/78q68RFh6tCmh/dGJIIbueC9kwc4i oF5NpvtoVVIVLX59qQ1NsHHxzQmx3mNpbTEjHsQYhOCTwOwr4o8GyKOJHsIi35Wj76/gyYRRuKt OrAYmenJo/4uj/MFpbw34md0rJq9KjPTq1gR3Shcc6nYW0SpmAbjDUUJepBlkRIeyWzzTmGwaWf KF485nfaS7DRQ4A+dVXyChTrPeX1nlhV7ktPXXxkZVEMFsswxwiDz5/FtnrsiuBNxB5+MCpJAfs VAJMbLP4G5jFRieMub50Mmsbg7OOeczHX31Rr63039g0rkcp7m8FxhQgP4S1BSd4Laww6jirmbA uaDFnjkAcL3fP5jOfTXdYZLdQyQxtC X-Received: by 2002:a17:903:41ca:b0:2b7:aba0:ac10 with SMTP id d9443c01a7336-2beb066295cmr62433645ad.11.1779487618820; Fri, 22 May 2026 15:06:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 54/64] target/arm: Implement FDOT (FP8 to FP32) for SVE Date: Fri, 22 May 2026 15:02:56 -0700 Message-ID: <20260522220306.235200-55-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487919322158500 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 f74e888580..af7f115f4c 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8390,3 +8390,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 Mon May 25 21:16:03 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=1779487937; cv=none; d=zohomail.com; s=zohoarc; b=O2BnLD4ROjt20QeOfHzn9fr06aQoDnbRR74fBXh9h15jJ6rj00sTn2JW5SOYjMTu1WGZZD5kkPR7+Q1mUVH5adBjAOrk5dfn9gF4A4zhVD6qGlrc3ZqVvv/sUD4S4+HCOgrjmQoD6CMpHGZ/fZRwA0tS/J9vXoeKAWJHDbDQkMo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487937; 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=DXGx/WBGcKnMUpqhswWDYQkiKp/kmHzrTzXs8KT+qHU=; b=HgtBtkGwEBhA4BntZPaQmBGVZpCKcjrgK4IyjtRs2gJw3KWI0XNZJDOl8UN6Jh4etg/Q6nFxupyIYoNfR9txnhwkdt+AxUVUSah6QLHl/G/8ufjSBcIqnTBg1bnTvSexwtoQrGXmozPXFZ/wfqvgh8rCMlwRq/OX77RB3+1nU+w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779487937510198.99544340049636; Fri, 22 May 2026 15:12:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2P-0000iP-DC; Fri, 22 May 2026 18:08:13 -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 1wQY1L-0006qN-Dk for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:13 -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 1wQY1G-0002nJ-1W for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:05 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2b9e9a6802aso33869695ad.3 for ; Fri, 22 May 2026 15:07:00 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:06:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487620; x=1780092420; 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=DXGx/WBGcKnMUpqhswWDYQkiKp/kmHzrTzXs8KT+qHU=; b=kbE2hi9lo7s44HxvFG2nJenN0IrRry7yZlEW+hpYRr3Pp0KqsxieG3OCu1SQD5b2zL OSmMfLusVWt54MSEdPhaBuOndf+Lt9erRp30TuTZRHPrX6UydgVy9s3UXy/A7BSSdX6s bXzn262sIkBPmmP2PVqwt3EiRZuObFddLOFMDEHa2p0tUSlsaj003g5DsWNEfoCxAswg nzThXGaLllGeXVzpGmRSHMGon3XBuSYdl0+vmA6gm1mW37qYZFDqJlWVxPU54Wu6IZ04 UeJTxox3jdCXP/3RWS4fxkERoc+LyvijL1OI0GZ7iJKnSosCDYzPJg3uWHYkdUa/lQtL rVBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487620; x=1780092420; 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=DXGx/WBGcKnMUpqhswWDYQkiKp/kmHzrTzXs8KT+qHU=; b=HTX9AMmQ1qzOaywXsXCaz3U6AGFsPht4RxKaMn0Y5D9u2NV0gjbfS1kcjdXrZKxLuP IJXi+js2c0fkaLHic8PkM3BK4JydiI5QKKB1xlmes8HvEQHPi12z1jMOUs5CoIrymevb t+YuAPwJyKQN9//Ln2t2894/0P6g/h1tfXMuhxk30apu7N3UMbzA0mK0lGtTp7JArr3O ts5WFXiNAry1v/drWdYJ/DEp2c0vN7bjE34NyDatZWScoBdcCegRBGO+UKXyNXdBCtVv EUmmkg3fAZ+rCOmr9QuNpzcucb3f+vtFKwML220a0W1zHNHfocQ5iaTM2nqf1PQIkXi8 WA1g== X-Gm-Message-State: AOJu0Yz8tO22/BROCs0U3szmFncalDII3Tpv+wcQ6TiikZ8yUSwjgLbM Qe8KaftiDYMa5lOhLALXqTppjMXwBRIkwt+o9nuaT8cFE9Boj/ncw7fMtQrWC3pE672EIy3E/co sOEw6 X-Gm-Gg: Acq92OHTMfj9L/tpyqyUawp5rQbt8Xdd0PXt7g+kEbc2xZfdLY819jAgbj5O5DX3jBA PBlUXU8hLiHn6R8HL8jmmh92PIHjsHm2uscRMGFFa0MGOmO/SzwOJHGjrzcKAGl/sWu50Ci8c7i oaX417BWIOmmHT2K8gpjCWF0+qRB1tzEq7dHXCmc0fiWFgaEJjFoYJhKkyo01h89VeeG0vj4dRy 8/m8fMljfg+B8zDUZdoYdJl6mtpmB1YQt3I1fqowptm9F9bd6EU7pknD9bV4tbH0SC49evxUY+N bg9Dvk3FxBh6gzhPV3HCqXTCwUb3TnHrqmPNPch9VGEBna4VNIKmbnWRHtECH+zZR0SmlCI1DMw hFKRH0rM/vCAWO2Ji4LYaUSOOIgCiOucmcJI61FU/EU/lz+WQXGIKd0d6UyIwfbTa1Kw7Y/tHb0 UQ3PEOALwk5/lxiNBf4r3Pxg4jB5Rfh9ZNKSs4oEo= X-Received: by 2002:a17:903:2290:b0:2bd:5a99:f293 with SMTP id d9443c01a7336-2beb0631928mr56103615ad.21.1779487619515; Fri, 22 May 2026 15:06:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 55/64] target/arm: Enable FEAT_FP8DOT4, FEAT_SSVE_FP8DOT4 for -cpu max Date: Fri, 22 May 2026 15:02:57 -0700 Message-ID: <20260522220306.235200-56-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779487939422158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 2 ++ target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 3 files changed, 6 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 2fb43d51e1..eb3db355f0 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -226,7 +226,9 @@ abi_ulong get_elf_hwcap2(CPUState *cs) 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_ssve_f8fma, ARM_HWCAP2_A64_SME_SF8FMA); + GET_FEATURE_ID(aa64_ssve_f8dp4, ARM_HWCAP2_A64_SME_SF8DP4); =20 return hwcaps; } 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 c7128f1cec..31f637fb1b 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 Mon May 25 21:16:03 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=1779487916; cv=none; d=zohomail.com; s=zohoarc; b=jv6/CqWR1+WtKAAzPRVthBd8EALfDz911f09MvIJoyK5EyN8dUFlq7T4lDoHxSNBms2/KSQl4qroMWmXm7p4EYm3pcpSIHMKWYBDikrpQY1FyQAj7GY6lbN84JFp8QKFjv/gFs4HtMGN/sgZg7eClLM6zsuQt9O9HGlpXN3POt8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487916; 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=7mCXdAwGQCn7pyKxhre4mAGOBY+eWGwSc3wK5uiJp8Q=; b=C+FbFfGKtpDZ2I1fw1AAV5U8GxGY7nsC53wRL06yKvzQA+78ftzJPDvcaIY12PH9YBfreq8PtLCszKU7J8n+UIV4MD4tWc+loD31Pi6ldHlRjjThm8m8DNyCoDVhxBiYy1VO6JTaJoTiNWAv23bILSsMjvJzj39jEYG4xgwWd2o= 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 1779487916294604.706489169518; Fri, 22 May 2026 15:11:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2H-0008Bx-Kp; Fri, 22 May 2026 18:08: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 1wQY1O-0006qi-SF for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:17 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wQY1G-0002q0-PM for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:07 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2b4583f0a1aso53730715ad.3 for ; Fri, 22 May 2026 15:07:01 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.06.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487620; x=1780092420; 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=7mCXdAwGQCn7pyKxhre4mAGOBY+eWGwSc3wK5uiJp8Q=; b=s5or/yAg0uBo+6X7U6sXrWEq4Bv6JhmT39um29G/c8Vzo9NwFtw4Vb7WU7kGZchWHc K+PyAyIcFkLgsP1G75V/dXC3vU3AlBojh4N/rpNBYDgbujsC5sqXR0xA71y9uah5bLix fHysVAWiYl1UPYrcMeh6lOa01NtMN4x885mwm1zxc6iKHdeO8Y7v6lJ04YTQCZEX4V6s iQ1B/SlCHFjkn4gFCTXUBER+Liq6Qr53NCeU8lXWOHFQ1zIgGn19yHj2J+deQYOkb78+ OsJ3pDwsTov5uQAzBpzy4KdgDu1Z7+Oun4sItvLMPVZFPD+L9h0Q6aGZl7awjCtLGtOO X1xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487620; x=1780092420; 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=7mCXdAwGQCn7pyKxhre4mAGOBY+eWGwSc3wK5uiJp8Q=; b=Gm/jVjNYD4897hfqYBMtCHI/NFNAaMTXKJP7lIIAd4iAMuEbqlA8S8G+7MnNXQsDc0 jPuhdBWn9FISq/xjVqq+LS862Cz0IUNWe6uyDPFCsVT9Xdg9tO1Nx1DL7zV3kwgJ5BVH gTsWALB0wZkoG9Ljid9UXnrnaOxwRkgpydb2BLklR+Rj3Ot5KoGt4FVKbPLbTYiwLEq2 B0PnTUU9TbL9pORW65ecD0nyuvXjXQ8/ED189GhnlNhk/fMkTRcjRO5kSA1B/w1k45yt R3DIoS4kyl8dkQF40JnEhMSmin/nME55Uw9AM3t20mgGtfaSIVO91plJ5Em7UlEXvzRw DRCw== X-Gm-Message-State: AOJu0Yzjlxj9byGl/DkpoVCVHrME6L3YTWteQtM+hiYtMmTtAB1QpTj/ nX498nXFO4qVYf/Zp+t3wWmwV5s+uqomBLK9rlo7lUIgTHJRfkB1Ib7bYuxaE6NBysxQRQGB+pp obuPu X-Gm-Gg: Acq92OEPmS1+zqa/yTG1C6WdjMCX6QwZ91xVdW+QpEQq8i5n73WehT1amfOawHRsKxW ly412GqKudVFg6KJaugHDafjic1MAKKDBdtzN9Vri0+ck+YwJSxe9mDd8QNDizOBWYa4TkGocMe N95qlU/+1EyibuUTAykyFBHoTAzjYJdwoUMn0hsBTYn83wjLxphP8QY4j6L15x4rRFBEFE9ywje cUqlvZBy2zQoQyQnT/RRBoJ3c83qfVW264EL3hNJ/ni18RPVYBSwqWtx76dhCVkYpHDd95jM8qf RkrLEvN9P2q543gdcxGsITCuOnvSGnQ7cjKnwuyTvhcssuhqce+KY9hM2YvTy09TGX55X9S3KtZ 7vkTRzlCknOcl/xCRLqs+qYq3y+1lBKR3sbitAm6Wfh967+cP4TOZW2JmdUbX3MPMc083yiifMu xJKSdIlnXINLCeKgvIKDGwuW2qNayv X-Received: by 2002:a17:903:b84:b0:2bc:db35:96c7 with SMTP id d9443c01a7336-2beb07ed803mr55232205ad.28.1779487620459; Fri, 22 May 2026 15:07:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 56/64] target/arm: Implement FDOT (FP8 to FP16) for AdvSIMD Date: Fri, 22 May 2026 15:02:58 -0700 Message-ID: <20260522220306.235200-57-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.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: 1779487919196154100 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 d1d5b22cbf..a25e0a1d92 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -767,3 +767,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 d2e945a9f5..3f3a39da4e 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7414,6 +7414,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) @@ -7429,6 +7430,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 Mon May 25 21:16:03 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=1779487847; cv=none; d=zohomail.com; s=zohoarc; b=oAL7DyR9G4+34AmcsJHVBXZmbvWGn7j0rWXSdsaQgEngG5aDds8np/H4fb0BLePODa5BneA3nG/uPWg6f+ag7+uEO0526PdJi+4/kxZ834s9vi+5TatrOdwDoMIEdldegcbkq4iyfaie050UbDqd/knIJG351207SmNOjPjkwbw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487847; 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=Ch2UaMYXrNBylPBlE3O1inT+1vW1S0aTRYA2Jc42jac=; b=BR/aNgepgGgE3h455zswNgFHBEas0QfI54tX/+mtPm0vbjbN67riz1OKFKtfE0d6KkUZHx+pWsReuh4LxNkH0qagTwXgiFFBWSXxQ7/RJoRmNr89HWK8aGRYZUDJtTwWaiUg79mp/oI90P6N7yEmGKKGJ2n+l9HW5DlK9Cmj+/0= 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 1779487847502533.3233975811822; Fri, 22 May 2026 15:10:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY36-0002cs-Gb; Fri, 22 May 2026 18:08:56 -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 1wQY1Q-0006ri-Kg for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:19 -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 1wQY1K-0002qP-HQ for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:09 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2be1dd4af34so64105325ad.1 for ; Fri, 22 May 2026 15:07:02 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487621; x=1780092421; 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=Ch2UaMYXrNBylPBlE3O1inT+1vW1S0aTRYA2Jc42jac=; b=h8ilcmhGLTVIcP5LH931HZ/FscsaLbmn7U+w3KIBrrsMF9s88TFpkr3gwKZZJ9h255 skKXitlYijF/dGh5aEom8oZ5OtCbcWagJj8WVIUExtLkqAZhGFubswIqsjO5MYOK2pQ0 ktoh8rQL33yTLCpggDT4SzpUHzlj3X9TNIsgRkDhSr+iwElrqUZA3BgNOZBvCFRFA/of bGi6hHlRRVIvOYuvQhNTkV839Vjk7y3HNChhBOJrQ/HlTt3eOXda3fSTa5oROF3LB/KQ EJhoTZYjNSmXcB2PYPsRO7/EFct+f0QLiXXNFZ8Kk2DV8tHkr/T9O7dCZ/2MoOkBpsP2 7uxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487621; x=1780092421; 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=Ch2UaMYXrNBylPBlE3O1inT+1vW1S0aTRYA2Jc42jac=; b=ie7p8O7cCjrcVkT2yLjjMq8gNcs6jlGJhnHSXnpqT3OrbwvEM0i0pRU1HBEIwNKcX4 oAzypmsT4rkJAz7TE7vu4PbqX4zEsYhc/WOYUcO+Aj+AICv+leICKegt7rcevCAnZ6PM jMtdMaESRFqDWE9WhQz4fskACZnptwcWKZ/+poJN7zSCP1pFzLpKOcf9gcopk3zuQnqr 0fvpUyj4YYhrJRRaVZ+hNMg1Sk9PZ372LuNAd2G3OD4R6X29sa52qTNVCa42H4bQiKXw p9Fw2dfekkau0xKhJudS4qqD8r2pfuFMVOzkxWsSzNu6I8zGnM7oAsl+Sa/3JyPfVnSM v83w== X-Gm-Message-State: AOJu0YwA//Pl7HfG7nt72coQE1ld0OqqxP3b9L+SZ/fNPTSRz5NqarsJ 2flK0VNU+DKQTYfPPveftx9wrncN8Kd+pg2SNyyQOznMeZQbwo8criRu/97nLKLy/Rn9ZgX1bZW N8T7v X-Gm-Gg: Acq92OGWBtKLCUPEAe+KgwR8Ht+MN6F/nkqB8MMaxrLkoyGSTR1XOe5jmA3TI9gUv5T 1MzJ2u16hiZB02YFBpTn4BGzX8pSrPDcK3h+93wyxwSwMZ6wu4aWbedZjDFrwJx/SR4eUjDWNIQ 9t3P0RIkQHGi2X8xPn7dwFoEL4//Mc0UbLBy92+Q/waLAWR2ly7yIVj08mKsDus3hRhJ2EHVI9x PoFu09YNYVinYyRWHI1EXxgp6osjDFM/11G5udyQQTK5vX7WmXAhYs2L4IbgUdX1pHkz8RSLcFW mt/5i5HxMDCL8QKKQ7qdiTXsXZDcRL9HttHqOM+gOrI8lGEz3Fl5fpZ9+Al7zrE/9joGtOH+Ru6 1N6Lt6AXh6w2sJFrcWiI8/EpvO9a7tYyyNKF19yI1Ilqb5qh+6t+n0aRf0g1R/+XJRh8v4FOjed x7OG8pvm/w/6vBIqilCzQNpF+0Lx7nFFOAh1r//jE= X-Received: by 2002:a17:903:298b:b0:2bd:2de3:51a4 with SMTP id d9443c01a7336-2beb0604f43mr59055085ad.27.1779487621201; Fri, 22 May 2026 15:07:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 57/64] target/arm: Implement FDOT (FP8 to FP16) for SVE Date: Fri, 22 May 2026 15:02:59 -0700 Message-ID: <20260522220306.235200-58-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487850189154100 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 af7f115f4c..5cecd0f5fb 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8425,3 +8425,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 Mon May 25 21:16:03 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=1779487777; cv=none; d=zohomail.com; s=zohoarc; b=AglDuI+hoMRm5b6F1D4M73NDA3Gcf1GLbJ3Pwev5oQdQ0ges4L6ZKmAx323gwDUS9n84t+rtoPplZfRjQ2cx/hFQYsp+Esh7bJRlRro4rUgQ4AtlxDl43xWJq8joqwdTKsivuARtE9brYN4BFLoY+ZxCEJ43PIys18Iwmcjp7GY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487777; 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=AeprYmNv0oPRh8wAhRuE+DLu92G/3KJF89zekXQItmA=; b=JgBdJCshYsXFg0QgS9Hf+M54nASJufDc/DD5DekbVHLfi0gejkd3+TbuY9xfkTI+hHTsZm8J4lwiq/G1CHe0EZIga0s8fAcQghkn7TntsDGS9zvhvUmZTYBEUQI4to1tdzRffvGf2qbC33qqE9pITbejphDryAzMFkdPE/cUnK4= 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 1779487777724168.18740222451083; Fri, 22 May 2026 15:09:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2S-0001Bc-In; Fri, 22 May 2026 18:08: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 1wQY1W-0006sP-4C for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:21 -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 1wQY1K-0002qc-Lt for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:11 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2be1dd4af34so64105425ad.1 for ; Fri, 22 May 2026 15:07:03 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487622; x=1780092422; 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=AeprYmNv0oPRh8wAhRuE+DLu92G/3KJF89zekXQItmA=; b=dMOqWhefpqDcB/B8zw6JzI8wKJaRrTI+5H4VMPsO9vgRPXAK4QYeys8YjEKm+Ys5MO TPSk4Z+AQzX+alwfqdCVGyFUt6vyTtD3I3znF1cme30vKytPNzODz/LqUq8AZ6rk3/tz ourVRbRdz9Px/Ww2XIasOK2EZGT15wqnNlhxVCGQCZKV/Qm+6NsRjUsEp+/vhmi6vNme Ht4Q9EUUbpKfqfqLeExGxu7+goc+tTf5TIGuyeiIijAtbyxNkHYL+ptTtWctJDAuqf0Q yqYAS715spTNOoyaMeAL5rjg3nUhcS+9bzMmJHyrFbHNW0vlGX3xLVFStVNHMGmTAyMN LVKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487622; x=1780092422; 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=AeprYmNv0oPRh8wAhRuE+DLu92G/3KJF89zekXQItmA=; b=lwFpx/xYgjxH7Fz6HzKMFrt+Ni7618wnVqk+sFWpxwTVuItN9e2UmPgD4bWeMn9mZ1 nl3Cu5Uw5OK+jFDY+T5o36vCNmlNdfsx7o8t5JLD+MX0gQi03ExBt4Eq12bDRrw8QAD4 7h/2uacT1DS4wttcwdUrRKPF9AocQI+Ew1sCuCIwU1etIUc58nREUf0ZV5K7VFix4X8M dqeBaQ09CZ4KylJU+h4OYswvIvLdLAz6DOajdcqzKARcpTf20+Rwmav8JVUrypvsmHgq 0U+lcBCFXY8//7sQYbA91MBEyNUp9XrKpeonOCQWk60RUiLiYrFKEqJemLKhpOBulFLX HOPg== X-Gm-Message-State: AOJu0Yx0UYbaVolSvSILNpg96ZTmpHRLhSSj/j9E4/RpApt0fc8fP1lE 0dCsd/LxH+EeueB5IjxjjLFGhcl5cK6hwDVR18mMkOlEXR5uSbfRfHWtTuW8zNFNYu0pTcz515u g2ar5 X-Gm-Gg: Acq92OFShhJM3AbnnvNYADB4DfcHx9AIaM7Y0ck/VIsrWAC73s265t2lQ8gwi+uGZew toZq/K2tgX6rmZMuFjTEzjTiOvZ6f4/wa+zc1p/2RiyV4PfFEdCBYsKGfV3UtSMUoIlupvAdVEW wdxNm2vI3ITLPZD4gMgur1ynkOapC98BpJOfGgHKIO13ctqsKTZBjXR0BNneiaG5h8Wk8AXq9jv MpHgIUkmLufsq6Yp40SilTMWQ166ZkHWdxx2wktpgySihsa5ecZ/xaaaWf3VLbxepKxqrgAL4w8 rClLWDLUPc3GxOZxk4IkU0SRhPL3AkPSx2y54dpfS/uq2S4M9S9dJ+4khPyz2L+FJ8H6XIlTh5/ wasAEISUDQ47B5RGdjifxnuKwPCerXEwi8+LRZtXeVO+ltTDuQZUGBu/NRqiy7W3TlNFUMZ9DRG saJ5ftACR6db1b/yknn0tOt2u6u3RJ X-Received: by 2002:a17:903:1a2f:b0:2ba:7749:f89a with SMTP id d9443c01a7336-2beb035c500mr55359015ad.11.1779487622005; Fri, 22 May 2026 15:07:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 58/64] target/arm: Enable FEAT_FP8DOT2, FEAT_SSVE_FP8DOT2 for -cpu max Date: Fri, 22 May 2026 15:03:00 -0700 Message-ID: <20260522220306.235200-59-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487779097154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 2 ++ target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 3 files changed, 6 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index eb3db355f0..c9ab26b2f5 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -227,8 +227,10 @@ abi_ulong get_elf_hwcap2(CPUState *cs) 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_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; } 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 31f637fb1b..91e66096ca 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 Mon May 25 21:16:03 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=1779487952; cv=none; d=zohomail.com; s=zohoarc; b=Kv43gfUcGdfPlEAWy+ZjgjZW9nmRB5vp9ncHW+4MA05Cm0bVJ/HoNbcG8eptR45PUI0KydXKuJ3nUTPPgPCwt+UNLj9jHurzAiRxFhwqZ01H8i1gn6m2o1gTVocD7BEgiFXEavUaNYKG5lcXSFylpiuHKOKKuOy8Re+maynRVmI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487952; 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=yxD8qyzTpD2dsEiaYlHBw8DIPMk7qtwsdNgrErHTZzQ=; b=bipZuxcm0ooIyYQxlVno0LuKmMs56C/K+uOyDfPKeUjq+loAI9Vld05hVdd9xTNuMxjRRlkbHIZdc1hQnY3k3omXLIL0QnEjvZuYvUIJrrT4entgEolfs/H2Pxlq1P7Dp+J2N5syvp7Qj4ri+o818eqqyTENaKldcAlvOofyWW8= 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 177948795230818.637979097373545; Fri, 22 May 2026 15:12:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2N-0000SY-EY; Fri, 22 May 2026 18:08:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQY1W-0006sR-4E for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:21 -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 1wQY1K-0002sY-KB for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:13 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2be75f658f3so31887705ad.1 for ; Fri, 22 May 2026 15:07:03 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487623; x=1780092423; 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=yxD8qyzTpD2dsEiaYlHBw8DIPMk7qtwsdNgrErHTZzQ=; b=E2oLB2wra3TXzrPZNfQtr+1X1FudcjLDA26nRM9LMTDwC7GN6noRgZ6SSsNaoKZ9Xz Dbc+GC2DMXP7bdxqPKc0FP3DIqAliJOymrLAMUBKv5QcWHH6zoiuoxqNiSzrCuvcEXxz Ro8Fm4zIqG+KhlA3xwUnU8hA/upq5agUAa+xv2D1iwE+1RAzzpvBQmMF984wr5qnslq3 1k70UVt4DyFSmzQX1ZR5VlRiwirQGmeXVK13qwJXVAssUs/lf22PmOXHTk4dGBhad5ik Sywz0Afb+R/kNhjDm3LXvBOELA+fZY20ItEynq2en5P7NikYcXdnvJY+8Azv+8ITMtGR kyvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487623; x=1780092423; 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=yxD8qyzTpD2dsEiaYlHBw8DIPMk7qtwsdNgrErHTZzQ=; b=PwcA9UF9lamkeT/3s+fjy6kblKuFMWCWqQ84ijl4+650NDhjrfegb0AADRamptkma7 OJlZjWpePI/ZdJv9bND/HidzFm606Ve8ig4oJsWwr//Zgk5cfi1NWc5+8XrlpbgQnx3q fXDW8pzl1V3esuayFi+QAaWvGIBJpMmL2AHjmgl6K9dCu3n1ctQ6mweocz3jCs1NIsqI 9ELS/vs1CCAlZYsdKtI/R9c+fR/T3QP52+/au3cnih+vkCwmtCiKwAn3ak4BG+nK3fh6 VqYEXssr15OtGrjcWcxw16pDt0OHouFewhCZHkRPG2KOCCpfCNV0xNw8YxGeUTdHlsQs zYew== X-Gm-Message-State: AOJu0Yyb2Ebp/GBCk9ZROLtDp5B5Nc5D9QjB8buNUCsrZTKP5iUwuWWP m2hBAonngHhU/oaWxnhptdNTEYxMeXNn4MRmeeEzVrQFFDm6aWkKKb26Ut25iTQn0YSQdo+p3qj Bg1JZ X-Gm-Gg: Acq92OGjI+omqfg11hh/KONzETgivlejM+vENA1yTeQHGwjPVOjKDtLnyXJewuBnU+k /4Hd4o0z4VbLHfVsrQh/babOVlX9iADENhk+zCOQQBLjHEN+V11A8ns9nCcNwoPFvO0k2SJhDFV LJ6lPfwTWmvM2h89hIsfw3KwwXWWEUn9OpGR7W23f2iKO54dSSi2WNtbHsSyzRdiwN5ATch32nd eLM4dLAdKqFzdw1ckXtLKbJLg4P4+iTcZNvthTnmv/zHkB7zNDelWgFE3N/XRVxyFcAFK0n3dvk G1VGBzBnC07in2lsPP5Dxtd6+JhNrTRcPiuv3GX9DFrlIJq1ttn2uHAM/rJVQFwXOfOzbV77Aiu g4Bt7vx2UYu3Zd4ndhEWc6xb1+J+Z+DZ0vNJqxPkEHDP4mNYWlW9Yr/4PLo3ianmfzRYz9SJwer t2+qPmbAXWvV3tBWTSiK5O2jTZ7D4m X-Received: by 2002:a17:903:3c24:b0:2bd:e43c:12d0 with SMTP id d9443c01a7336-2beb0770e69mr59298415ad.28.1779487622811; Fri, 22 May 2026 15:07:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 59/64] target/arm: Implement FMMLA (FP8 to FP32) for AdvSIMD Date: Fri, 22 May 2026 15:03:01 -0700 Message-ID: <20260522220306.235200-60-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487953700154100 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 a25e0a1d92..9db4ff4c2f 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -806,3 +806,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 3f3a39da4e..c62fd6f4c3 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7415,6 +7415,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 Mon May 25 21:16:03 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=1779487784; cv=none; d=zohomail.com; s=zohoarc; b=ApoOv58a9are6nZImzYO/obKakGEPCTWHs25XQcJwCwPwVRvXTDItKtgGnQqwjVhuV3UIO02fynz5ab3x8cGUAmVj1dl1J3cqyLJPX6lc0QxzP4sqP+y17rDdmQREEmVXDqYGaKCeD3LJnEB5q98F9BafbvPb7nZlBLJSv3xq2U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487784; 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=tNas8j0YGMewMuMPCse64nyq2c6XBZnLm98phrEO7Do=; b=W/JGSuH2HSUeI3a8Dq0NpfAdqOq6qUKGaXIFdiDUgXx/qFuBuE/AKIZWCAar9j5O55b5tmHWHbG9DtghoTK3G2IC5d/MNHe1KdSXd4ZGHFkOJFzLtliaaz0WglCrO6OGNpnJJhorMN2/fEl1+3QUffNEAjMhbs6tYuuZeX8DazU= 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 1779487784057198.51836655938132; Fri, 22 May 2026 15:09:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2U-0001MY-CV; Fri, 22 May 2026 18:08:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQY1V-0006sK-Tl for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:19 -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 1wQY1K-0002sm-Lh for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:11 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2b941cd869cso51094965ad.1 for ; Fri, 22 May 2026 15:07:04 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487624; x=1780092424; 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=tNas8j0YGMewMuMPCse64nyq2c6XBZnLm98phrEO7Do=; b=khvC0SjTJ+nASHS6dP4wm5m83hEFb3RPiqu5Ir3V6VvetQLujSQW7wl3Jh3Jft0cTo jNqNSxMl/0i8LracFcegmBY74Z5IQzq24MWvohpLVT3tH8np377ccXgUQ0QLJHOolfQT HAG1pl2+Oe6RKbqkindqsu2T4+sv73sYPf/9cKa249nIgRcALHu62PDaq80yPNgRh24W rDv9uGNUtSnm68Atth/HcA4PLLhZzHYMA87kn02q7kwj2klrnElqf9dvWGMngO34E23F b7tnw8LOAJwC2gJYmlbLtTdaZt/d9hUd/cCY5jzDla5zypiri9TcugsnmxjNtzNzyaG8 dkLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487624; x=1780092424; 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=tNas8j0YGMewMuMPCse64nyq2c6XBZnLm98phrEO7Do=; b=dSkeR/S0eTG0996iJBHXIHEYQA1UTSeCz/a/810uXCDDXqYdDmV7vYe7YXsik7+2Nx 9cItrMQQKZc53fNht65nQAIQUNZT7BZ9fFroDXsQmLOK/dPKMz6Um1w/WPa3NATAD+3W kWCI5SYBgTBPxL5oJ46yH7GAQA4JGH1692R743sgXispDkzbj7LgydyvA88gEOgl3di7 vuQh70REB5jOEWKTkr9fN/pnH3KksCL8OCiB7uq54WMGBxxjdGU2cUz95mD+nHlrh6L/ B2b76kK+RR4npkYW/cNljk/ucGdZOhiT5BXOnW49Sztoo3N86Eq8vvK/nHa4k+ACuWBJ ZM2g== X-Gm-Message-State: AOJu0YyvUbGLS8tmeNYL/I9Atq9/FT5SdLTir2sqX9PJnZfzAT5X1uSG j7OSF5fVLufeymBZm5a5hRAlCP6lZ50pyeCF/AkRBkJNdnZTemQkLIymlOD7d19U7exp+ygggzf ohxr/ X-Gm-Gg: Acq92OEYU3wX0tKLIvYL10wCaExTvbgvxRSbe3loHNV/a2L1dk0JwMhok+ae1zmudDh FX8cD8zbwiG/yjp8JQktQahjOAhMWTc+JR2YOax8RVAX7gK/fFTtKMIs8Nm3skxsAlU08qKP+Bn biy9kt0ffyRxy9G5Zl0D4rSVJAkIhXwZAAS9ne/ZS7PJc3qxhBscwsEtxQP8lJ+qCWN4TuQdpi2 3u9u2XnsoE8bRNZStPhE8h6JYljyENFs59/KWALXdFS85t0tn12qnu40VUfY9qjiQerZ+xulY/t mgjRR2HVq6xcNGucTlyx7m8QH5dSnaGxjoJZRWT2Y0zxAMAr3+TLjRgyByRWVbpG3gtuYA+4mf2 b9y/amCZSiyvaDeNgP/AjDLkrhj9LjwBOWh/5vU5q8ENywe9meW7gghPKufs3iiFSxTd7X8Jp6E OwBUlAuMCCN2SCc5U81xdLWCyxtful X-Received: by 2002:a17:903:1b2c:b0:2b0:60db:7927 with SMTP id d9443c01a7336-2beb06bc19cmr57543535ad.28.1779487623608; Fri, 22 May 2026 15:07:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 60/64] target/arm: Implement FMMLA (FP8 to FP32) for SVE Date: Fri, 22 May 2026 15:03:02 -0700 Message-ID: <20260522220306.235200-61-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487785238154100 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 5cecd0f5fb..510d8ed3e0 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8460,3 +8460,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 Mon May 25 21:16:03 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=1779487851; cv=none; d=zohomail.com; s=zohoarc; b=ZHtNG107mxpU1GKy/3fgScdsDORVluphBuZ+qMiLSCnCR3ic/yL6XftOZ0E4EHdVHl546eIRI8x5NaQg8pBFT2Yo4DvT/GqD7Dmi6z4PqPuYIea06IqxewqvNHkyQRiAA/wPBetEP5SzT+SZuEEh6dYoytx0i9nD6kfaj4hhppw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487851; 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=tSJGtTmXrIutJTfw225D/kpWUuwozty16kvKc6iYOfg=; b=N6zKBzZxcSdr0U0gvaYYcq9rEhECFcxHG/8lzRoQFH85bkzjGGtilVSh5cMYCld1MUpz3IgBufDT0S7KyLdQJksHhG7OfwmparwZtZ/rjtSQpnz1H9jvSLiypqWpFnYdiIzU795D9Wx/wQQNHtAzIG04ocQ6F3yqn6NDZSflvVc= 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 177948785165967.30380586205047; Fri, 22 May 2026 15:10:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY37-0002hE-0X; Fri, 22 May 2026 18:08: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 1wQY1W-0006sO-3g for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:21 -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 1wQY1K-0002tK-MQ for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:12 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2ba928852a5so54804785ad.1 for ; Fri, 22 May 2026 15:07:05 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487624; x=1780092424; 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=tSJGtTmXrIutJTfw225D/kpWUuwozty16kvKc6iYOfg=; b=Pbf6h0k2Xag4vqiz5MRHyMRoSFRI/TNdrQSd2oV2eLQpRLlMf3POy2wbnspjX8Qb/R f3um2VuVTMNXYDTUGamp7T2KIXd1Nr+cxBrE5WlsKLNTpOAL9+jVPocIz5Rng+kM2D7o FnUuqnqA7k0roDGmPQD3+e4LpI/0meqr5SAD0bMgD7GgQ0+519zEFHn6Vtq2AbcKJRFR rbXHlXM5JqlcxMgxApNb8OZcpuFUoNsQSJ9K5BZu5v2RtlVWzHDx2iajkKLhasEyveKw b5G/4Cw022lS1ISkYHt6Ac9D3tfqHgUo9mMil8d8gXHZxNglUrnPGVgfFZFcwYYk/QSP +jSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487624; x=1780092424; 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=tSJGtTmXrIutJTfw225D/kpWUuwozty16kvKc6iYOfg=; b=V9jlGEuSgpDhB8up9He39ZA4LCyTVfBycgcoM8w0/6p4vNKEK3AUfnl77CDhPEuzza vBKbziRCb1MXoinr74Sf1cjrB0SBlT7KygrUNxMDA3JdEPbe3rKB8J7xv5pYwBkYDyF5 OVLeO8uL0QqC1bWqLIm4fa1n6KIijTnrue0eFtOZ6YusyKzu4rIZttbjn5o5nn/imx/J GCH0FXCfMx07AfBnwmq+w9RcWlUyLVdEk8Ko5jhoXljSWIeslvJtd3eIUno8Q7DkXN/s BWveJZ2d7P/BW0ADr/6bPfs1a6t+UxC8+3Tv1/PPkasD9UearmgYc3AkjvhOFWFnj1gt DX1w== X-Gm-Message-State: AOJu0YytGPuzFFmkY8Vxk0VJMzWs3E2HPdh+x1JoqwcfCNsYbt/0DLTD Zm7Mu/Fjt2jpVvOl495JhPEjM3PYvUefe4eOd/or+8PWVimxwI7Wpnj3iBZp4tHsB6rclXAF44o 0+nw5 X-Gm-Gg: Acq92OEtSYDX+Dido4CY6bZ5AqBa5n2RRIQTyBJKO2xiZ1FPzM5NpcDIHiT5ge09iZf 7290C5n8kmeWqV6MII75r5Bfj5scuyCccajpXYIbdfPq9yA+S18EvHEmCMDcYJIHBHxdCAEkklT Lw2/dPguSX54astPh6Z+2AZZYIo2V0mn1f37edDBp2qCzS9vvBTC4O8HZfaqBNtK8ITfdrrbAjL fEUjBl7B3AZJkSoxPR0UWHKkcvWZ+ok4CkObX33dStuTghIqX2YuoexHO3s2NXtujIfNmNoooFx 9lq3bs5nL/rqctYJanw51w6PlbqbYYLFV3WTLgnmQn7LfqXYQQ0azyuuZYqPIvR0NDX/tI43mXt 8PSgnLtdQ0Q10gZaOHR1PPgoAeznjFXO+HkFaqqhYblE7jXd17iFTL48ju/4K7y1Yiizfhj0LNt qaeyybYtmb+bDBDp0qWWXsSUI5VVjA X-Received: by 2002:a17:903:198c:b0:2bd:2de3:519a with SMTP id d9443c01a7336-2beb06ea5e1mr60150835ad.7.1779487624467; Fri, 22 May 2026 15:07:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 61/64] target/arm: Enable FEAT_F8F32MM for -cpu max Date: Fri, 22 May 2026 15:03:03 -0700 Message-ID: <20260522220306.235200-62-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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: 1779487853055158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 3 files changed, 3 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index c9ab26b2f5..160a6c7769 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -170,6 +170,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_rcpc_8_3, ARM_HWCAP_A64_LRCPC); GET_FEATURE_ID(aa64_rcpc_8_4, ARM_HWCAP_A64_ILRCPC); GET_FEATURE_ID(aa64_gcs, ARM_HWCAP_A64_GCS); + GET_FEATURE_ID(aa64_f8mm8, ARM_HWCAP_A64_F8MM8); =20 return hwcaps; } 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 91e66096ca..0091b8d337 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 Mon May 25 21:16:03 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=1779487854; cv=none; d=zohomail.com; s=zohoarc; b=kN8HbnVitEsl8qM9CsNODJEX7xvSuyF6xygN9Z7UE1TdsVdLV6t6gZaUks436XlBvXp5NOBypxSQquuyZ8LixeyooB+wz8CiAQhRnlHBzXLR9KaITlb9LrXqZztJYfyfTep/1DktABEWe2wxe+rndI82Z8N3SHhZeNSutFnU9yY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487854; 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=1BN3YrxBeYnKrLp4dE6hJz3KYuErqD7i23aJarhXNf4=; b=TASFXhkT3c6I63Gvft39/zkw4WUDkN3Wj+pi6JyCr5weTiUjqZbMIwI//e8Kd7EL+Qc7dWlCwEsIAcKao8Ed57X8EWHEWdKAB1aOIco1TN29rHDhg9IRHLAuBIP0Oudmn0nZ6lrJXmexL2/SuUcW3Ubt2uTmWDhM8ENnGdtFPY8= 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 177948785488887.95305840428489; Fri, 22 May 2026 15:10:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2W-0001an-A7; Fri, 22 May 2026 18:08:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQY1W-0006sL-21 for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:19 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wQY1L-0002tc-Qx for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:14 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2ba3e3c4f87so80343505ad.3 for ; Fri, 22 May 2026 15:07:06 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487625; x=1780092425; 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=1BN3YrxBeYnKrLp4dE6hJz3KYuErqD7i23aJarhXNf4=; b=iKOr4c8gYPnf+hCqiQaWYwtEv53F520hdyhNySzgFhfrVypyj8eVwd9cEulz4yUWiV EvFm78TT9tWxr6dRd1HcjzECQj4+W0NbEREFec/hYVZCtS6PPbWPyhoXPyAsexZAdumb NamKdv7NmGmRmIYuvAATRdc/lw3fo1ySeKhzaQgOtJoGbVcg10xF8CY7ujskDovzgnZZ zBXIAgSq6otu2XlK1E6sPtFj5CG7M6PoUQmyUuhUNmvh9BxDPc8qW8DLXNS1BMYF5rn0 prgKfKXycVBwvI49CaHJBepK4G4TlmvtXclnf9BJ0EoSWgjeoyFPDLM3iRnJqkuRy+Yj 1kGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487625; x=1780092425; 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=1BN3YrxBeYnKrLp4dE6hJz3KYuErqD7i23aJarhXNf4=; b=Qet0n4IpEr8aovp9TRzzwngbuJsbRdOJ6LKDJIZ4WWdxfS7evpy7Jf6j+Vek41jIT6 1cPpe+c3bJIIuUGynjHdme8ze956wbKsWqcHJXblKtjK+TBPI1BkGPu1p+cKglF7l54S HcXXe9PfdlkpNk7rrqhoPrW3/Gwm6p1TYVjDPKhgvXPeKMNHbqtIzzCM5jGl1ghjFpJW foau+12GTST13VbEzoc9yBnO+BQiYcLNu8cXkwasE1ged6e6+PHX61UMpWavyF3UJsEF 2N4Wc0HkBkYryrQLL8hfE2aWGAtLvQ9f9baJ+KyPvKCjbETKLlUF/BhU12mUi0otbAF6 eF7g== X-Gm-Message-State: AOJu0Yz9I981OFKeetqkSvkosqcOMu7D9Mv1paRdXp5Nnkduho3tVrS3 jD0yFKnllEAMS6aNUXMxMhTw/sEl1ttcpflINoRldkwA6ZMFWonIVSa0q2f/NNpxvT0h7UW0qWw Y2FLt X-Gm-Gg: Acq92OEge85epCu8Qw+s/qCK7RohOha0tanngSDrJGyKFPgmHpBR6/hpPEF4oA1C1XY uk/z6Qt6fLeVcyv9x/avlwrONK6SUPMYPK9aD3sD70/UsCMsQ0/8Dgbn2mywAzb26zlN18IIkRe t17+lX3od+qmazkYL5uE4oqlRduNw2LMKzSD92UFnAPgK7vgPakyzqYYVjgBOaSGM8o6OmUy+Vu vyX0zlGjDPzgjm5FcJdU8EdJj3M6FDKSq/45iXK14VjELw074jEk7jIBJRb05PZ8Q9rnIKhX0oD g8R5IvZj6XwdHvmfJIiR9mI2JEpA9vxqgMNBrsL/VKNgrDrNoY8AS54TJ8gqz2/mRWWm+DxRN0e F81XsKX7zrOJ1W5rKIzbrvS2mRJe0toF4j0aFoJUlsTZfzEA/WqRCrmZ32JMCmo20swURclxh/e QGWxtWoQebm5dwhAgTLOkl/UMerw64 X-Received: by 2002:a17:903:1ac3:b0:2bc:7d1d:b677 with SMTP id d9443c01a7336-2beb065f97fmr60171355ad.36.1779487625385; Fri, 22 May 2026 15:07:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 62/64] target/arm: Implement FMMLA (FP8 to FP16) for AdvSIMD Date: Fri, 22 May 2026 15:03:04 -0700 Message-ID: <20260522220306.235200-63-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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: 1779487857009158500 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 9db4ff4c2f..8365da9893 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -831,3 +831,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 / 8; + 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[H4(0)], m[H4(0)], 4, d[H2(0)], &ctx); + float16 d1 =3D f8dotadd_h(n[H4(0)], m[H4(1)], 4, d[H2(1)], &ctx); + float16 d2 =3D f8dotadd_h(n[H4(1)], m[H4(0)], 4, d[H2(2)], &ctx); + float16 d3 =3D f8dotadd_h(n[H4(1)], m[H4(1)], 4, d[H2(3)], &ctx); + + d[H2(0)] =3D d0; + d[H2(1)] =3D d1; + d[H2(2)] =3D d2; + d[H2(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 c62fd6f4c3..5523ac03b2 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7416,6 +7416,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 Mon May 25 21:16:03 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=1779487840; cv=none; d=zohomail.com; s=zohoarc; b=ZUZQOAWv+h9198HGHziMHksWI6Idrs5rpypVuf7Zik7ACd4bqtipYJ/S766Efa+AamZKxPljlQJ5sSi4gXb1WQQ0lpuCxWacpXM8ZR0OSqrR1T68cxnv7qGj7r7eRsz6D5pNhbPv272nHTl2IbltioJaOnXyZFBdjzm6OwR7AQo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487840; 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=axueN2q8mn3qRCfoeqYJwXIA/rovvl2ryGFKh2CkQC8=; b=LA+UZaeeISKwAD4UzZLqMcrutX0hRj5BmkPFGZIjWk5r+rxOmOR6q0dW8YNr2TFPZmU9SaRz7rjcOl+X6KxFY7Fv+KQf4zv3k8SOf6DcLeKCLHtjqwGFD9CcaPOV01faj4wlRRgwAYYma8yFDTgc1y0J2CjojtupGjO4XgLyAB8= 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 17794878404631007.5578132049917; Fri, 22 May 2026 15:10:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY2z-0002E7-A2; Fri, 22 May 2026 18:08: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 1wQY1W-0006sU-5g for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:21 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wQY1O-0002uY-HE for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:17 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2bc763e2ba8so39162785ad.3 for ; Fri, 22 May 2026 15:07:07 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487626; x=1780092426; 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=axueN2q8mn3qRCfoeqYJwXIA/rovvl2ryGFKh2CkQC8=; b=wxoSNMgQxFKQQyVFkl3fMVYSA4YTuJnULmcRRfqYTumIQjlVW4cvFDi1EpCwiEz/Ld yoaDgd32jn2ptxH9+Y2fGwALG2JeoYKQhoAjJWfJgns44/GnG0lRy37h0gt+RJ0NDr4e 7KdNqyD3OS5rzuWBf9GmE/u6QbpWwyoGiRjB4jOLrYSqhYIjvy+JH1IM31S2mydw68fE iEwcfs7tpcj/w+wRS73XK2lQh4M60xmr+J5/r92poXCoQm/d/+BEPlOaDDxccS3Y6rEE UnXT97tnmGS8tr1JxajxaBh3bk0gVZsVDWOXH9PjKKP/Z0CFnQhMYNk3s57JxIK4ZpHo amiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487626; x=1780092426; 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=axueN2q8mn3qRCfoeqYJwXIA/rovvl2ryGFKh2CkQC8=; b=XYdzDHt3Tm3/IOcutLvKDjhqGTfpp1cDHzScnChcGiNQvAuEOyRrDJtlbV+vMs5aJw I1Ei9+ngvTjeU+G3+siGqDWJxXPPwKyBAB+fwhB6LB6zuR1fcBhpUsIOQztKcQEnMnI1 4dwoBjdnpLmIneKQy+Iv2DGJltchIuEIDDayHL/Nr84T1OzHaQuhzcZbcUzZJn+YvhjA Z/mLm7fC6NLyL8/+oVwy3occfwxrgC1mI0EQowm3WZkuWSI3OQcInGFGplKe5Xi+WQJ8 ThTxmEKoPW1K4iXQkkoFrAGcCfLcag5WH/v14C1VbV9LiE712jvWp4nKeVP5yQyiImeE AMmw== X-Gm-Message-State: AOJu0Yzjy9cWZ0mPyS4om4KDqF/hOwn7wRXKTND17XH4iDME2hyUqHKc 92/ery1uxdkvAbFqRKtEHPCLciqxvYhJzDSm2q+YEx+e7aOcbkeB+xnIurxnQGYd9v9J8rqMM+A MTEW9 X-Gm-Gg: Acq92OG8MjgvEoX/GH4munvO1SoJnz7eOFMmjVkhTAvDuLoO/QzktYSbGjxtBR7Sn7s w+BNyoPXQ+qqU3feqB8rpJT139jjoLriEOnkwGrbvAOgmTpV27xlTkJl1AlxJHodpjJS7WMiceK 07SY7UAibmN0hnXhsTy+P1sOl2vIniQjoNXQARlo4W0Ezm9TdRlFPSvEs41S+f2DeWelkV3oPt3 xAIYP7mdHfp4bGUEIQKZiqLU5nCcsXAYBihyVYe+WR+lyqH82L0CAizwTsYaIyo+KPN6RILIJAr 3JAMN30BTNAAeuuq1JOSe+p2cFBmKgis2FyXtHNilKCdKN3KRDWeZl5WRn7o3K1OCR8gcU8XX9J MymiB8G9r+mnSLYxJZIF1NbC9UtK0yTjUOnS4JkwnD1T+P3hB7XzlxnvJHWldYBxLscZVfY3jFC 2OWREjMpX0rq1YslwTKPtdUxYJzSQo X-Received: by 2002:a17:903:1a84:b0:2be:3850:297e with SMTP id d9443c01a7336-2beb07726a8mr54009755ad.31.1779487626102; Fri, 22 May 2026 15:07:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 63/64] target/arm: Implement FMMLA (FP8 to FP16) for SVE Date: Fri, 22 May 2026 15:03:05 -0700 Message-ID: <20260522220306.235200-64-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.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: 1779487840902158500 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 510d8ed3e0..ed0792da71 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8476,3 +8476,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 Mon May 25 21:16:03 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=1779487824; cv=none; d=zohomail.com; s=zohoarc; b=kJuE7xAXgZKedFxU+xZ59lHidGoEartzl0Ev1OC0tnRVYtNJ6eI+f5y1HgCrebkfQROcepAzqACHZ8uiHj8H3MIv/eGxm0wAejqfpFfpjIwHmGvHOYXrEFegfDDJPFHDAHmdGrlSZlqeNc0KwSpOMXdRkpEWow+xHlHt4YoEwTY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779487824; 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=/BHVbECGtWD4DzHCzhYB2agsFfNWuyph85yygpzdM98=; b=MeFcIRXYD9v2ltxXibTJzYi8XhpimcGUsTtRluMz3wVwcDyxIXvcC0Os2p4UGbsa8LICMtFyshvT3ZZsz7IVFkmvHUno8G/mFfhVTr3U7Y2ApB9uoY1Ovw80vTWkLD87flPsTwzhRq00pEntu0kXUcOR9sgRrdWTjud4zQxn3tk= 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 1779487824652477.02665145196465; Fri, 22 May 2026 15:10:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQY3B-00030D-PP; Fri, 22 May 2026 18:09: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 1wQY1X-0006sa-IF for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:22 -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 1wQY1S-0002yZ-Bd for qemu-devel@nongnu.org; Fri, 22 May 2026 18:07:18 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2bd80b3aa13so51855135ad.0 for ; Fri, 22 May 2026 15:07:08 -0700 (PDT) Received: from stoup.. ([50.78.183.177]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb56b7920sm27835745ad.21.2026.05.22.15.07.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 15:07:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779487627; x=1780092427; 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=/BHVbECGtWD4DzHCzhYB2agsFfNWuyph85yygpzdM98=; b=eSNlw6nSJ8Vr4Q2G/8OVcmhCu8ap3Yi+r9u822BIskGs1QbTRh69dwfCgAcgCSijV6 /3932qhx0L1LitmSQqcRK910d/itxQtwJi3PF99TL4W/pK0WfTQE8JURgHyQ1breScXt cwrel/4uhPAFCDBcc4k4ue/Zw5YhhMPcZKaQNOMnOV+/xLXFEWZXDWBEmU7yz1nfkBhJ WJaSHs64lAqEwERaXjYPPmGqWpZlJKDH9KfVPzhqGAu8Lb0SF1nl+U2fVxfaRTB36v7C uuyWdAqYvhoEkw6FNAWium7ttw4yltLLcAETFmYVuifpSKKIYHe6WcvVTBpL/VSVJ1zK Y3fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779487627; x=1780092427; 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=/BHVbECGtWD4DzHCzhYB2agsFfNWuyph85yygpzdM98=; b=DfdbIoRABvGj7/V9oVtNPapsdrt1a0Id4bT+z0uWbJnYYdgcMCOcxUgaEfmB6Fgy93 1dx/VZUZOnhlgrkhgVu7KZCTVN9mPw72Qtp198I9WqgKvyKLeadmkzyYPAxVNhwN6iTG xQ6MMM4prWmVSsFDKYc5COBgiAQ4qfn5CMz2vVs2TJd+Ts2Rn9blrSXgHEiNTS1SuOw9 N/vx1uJ61GB5aVWrG97p9S6hxkkB8KcuLxlKOShQh9n8cuGihqrru3eiV8UTrTMhJuTT hztDfMTbdRLpdWZl9zDgd+NuQBsBqYTtqBCHnJmbznZDeRmkuHqkJ6IwAXEPHPLZDfml i4VA== X-Gm-Message-State: AOJu0Yw6E9NxAIbdX1GO/bY1L3Tgc23ThwfKT8fVB7mL+63hcRF3lhng 7huB9Z3NW7RJLuhT+cP0sy4yAxQ130ET1vwwKMa6ofs8dxOLpHY+ja1+hDfedreRfLlOsTQ1jd0 kH+iH X-Gm-Gg: Acq92OF193/oeNS0ph9mT3KDyngpuRzV216tz2Fik2JvxBP/Wo9ZNXsBg2FI+jjhJ/T LVNxPsUmfPTSV7i7A6aDTpa3ZzAxXpASyIHns5Zho6hUqqfXJE4nEELsJg+Ry/hhoaZqd9e7vq/ GPhP4qdiQ3dR8qP5q0ChhWMTGNvwI4vBeAxDmZbzzZ2/VvfIViZXxt8tGxGuJEov9sJxZS9edmV l8D6W5FvV/2pdVgItmErK4cmGXuaeLjiYgWKMZkXzwIFgP699T5t+76PKcKasKszbFWdL/26jmG Qt37nT3DhD0YEzMJ18bIidagXURqmn6/MTtT71UTMUpUV/xFNZo/+yFTpknMxATZQNG6Lat3V9I aK1oeo9fFD9v+zdHg8Rq2MUQ0pHL0JOj0Cx8nbsersQoY4RTX4WWojXJzAiSiqQBp5o6gMYFYHf q8kpAAQGtfzdra4Dy/GPHUGANWWs8b X-Received: by 2002:a17:903:2388:b0:2b4:5cb8:99eb with SMTP id d9443c01a7336-2beb07e9e15mr58671185ad.27.1779487626980; Fri, 22 May 2026 15:07:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v7 64/64] target/arm: Enable FEAT_F8F16MM for -cpu max Date: Fri, 22 May 2026 15:03:06 -0700 Message-ID: <20260522220306.235200-65-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260522220306.235200-1-richard.henderson@linaro.org> References: <20260522220306.235200-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=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: 1779487825870154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 3 files changed, 3 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 160a6c7769..c086eff927 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -171,6 +171,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_rcpc_8_4, ARM_HWCAP_A64_ILRCPC); GET_FEATURE_ID(aa64_gcs, ARM_HWCAP_A64_GCS); GET_FEATURE_ID(aa64_f8mm8, ARM_HWCAP_A64_F8MM8); + GET_FEATURE_ID(aa64_f8mm4, ARM_HWCAP_A64_F8MM4); =20 return hwcaps; } 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 0091b8d337..5974e9ebef 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