From nobody Mon May 25 20:37:28 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=1778197507; cv=none; d=zohomail.com; s=zohoarc; b=FHDGDta3q29Qqz0IaQ32ZCMOisEkAIhN5FMXskN/I3sc5ja0s98TDlhEU5aAjNpbbwgHDX6rh5w6cNfMyJlfpWRgMByt4MOGZOofhig1oWwi1F+0m5Afrd3ZrJ496QlFD8L3YDEm775PT6Qi4sExwq6gQNr9Ao4dGY4Go9ycJfM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197507; 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=SLBUgvemDVI7RU2td5O8ML7A96sLCDah7D9rLOrhH9o=; b=BM27BrOgpo+JfmBspf3XD9jsZIEgSsBuCrKVWV0dlHsZQubmBrzOIgOsBnY/0xXTsEcRHN1ds2C62CUnbCGMFIoV8BuoKBXU7b8V/8Z1gUt8KKFalRnuVeaM4XvapnCCY9aaR9olmIZNUXG2u/ZE+v5F98c6zsNra53E6l4sU94= 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 1778197507858860.2450048520703; Thu, 7 May 2026 16:45:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OD-00008w-VH; Thu, 07 May 2026 19:44: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 1wL8OC-00007s-LD for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:20 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8O9-0000yW-Q5 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:20 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7de4ed0593fso757234a34.1 for ; Thu, 07 May 2026 16:44:17 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197456; x=1778802256; 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=SLBUgvemDVI7RU2td5O8ML7A96sLCDah7D9rLOrhH9o=; b=cRFRs0oua/wqoYxHXWeSPXumPXOC3TWt1N9kqviBa74y44cajn2wPA3sDNKIP4MiP5 r2eFtypNUY52ZooaXnk5EhgI+DTo3ZukXtlP2fLLfgw0Pc5Bsxz6hjYVEL3S2r0eLBB8 O2oiAwsTfbfhGEEFW8pRRHcJJA1bhqK+ftrrEGIHoKGC+A4HreEqgIz1q3ay0Nl0rwse xU2hNJWoRyRtSQ1yqH57wzLNL2DpunoYw0msVqiTFNIo8+t4FmssC7TjGEKdfqglxDwg tgsPyYVXG7orR5xNrvsC2dUpCSV19Qn8smRwSoWe+41hdzYGMEKOfZD0dnc48P+IaZ5I aWbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197456; x=1778802256; 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=SLBUgvemDVI7RU2td5O8ML7A96sLCDah7D9rLOrhH9o=; b=qrCZx7BgtatvBKM1ApsPR5NIgUnNnxc6FSak6uzmZJGJ2lnuPxeqLejAocMBUNYGIW jr2naDo6dTKlyXOPx4Eg9ax5MkYU+h3LRL8Ye7D076ZA5qzMvB6ssqB7V/pEfEKrBWWJ EmdGSL/Slp1y5krTMwReuMsfBf3//madNd4xMgM2lakzgUp7ijrY1RW/QrBFwznCz5UU 5CX7NlHhVwmusoQub0hRPCZWiV9JPlgKbOWvNGqDvCz0slP5u/6s/OL2rBBTcsoC6eL5 GMuWa+wvpIytL0sSVZKAIqbJdKGFp6eHp1wYcFM4caYhepArxjTmK2U4MRZKgjrSMBR2 4j8A== X-Gm-Message-State: AOJu0Yx0q406JNLpQTKUq/TEpTgjadc1KsDVBelFwRv/TFCQQicEiu3L rR/Q31DDYAXph7a6mW/Z7ZrMGmlLgUFfNTu4yeHajZ62tnQJFq2Q/I4CWhggvgemuphErZdksm6 19OYP X-Gm-Gg: AeBDievZgHe/5GPhz6PqFNBJjNGWTfHQGurdCGgzThymRUBwnhSRq6UV2rgeXwMKaWc rKM5olexttQkRpxMmDTyHj8GsUXukfd9FsYg0yoB0wk4Kf2uhXXzkpSJesANOEl24gzUeTmAuvC wE+h8xpc/mCFiisd/YqVFzp/JCue/qOkTWwdhHh34AHYVFX1kjaCDHUnX1aNHIu9+HMQMtLrehp wAWtLKm10kbSKhbXHpL8MdTH+4GfN/0BIY4CZR8vsEcKtMNTWbTWXZhU1ul43LlgEfGuNYmHInA 0kUEKS0ZpuCmBNPJur2ogzi/SXah/OFEhZutCJiOFuAkWZ0TR3lNrHxIkjteoetdCxnv1SL2+Sg oRsCInhulaNp66rmDn8y9AuPXmobIKrz0Txwil8TphmnYwXNnR7z9ClqWb6b55/c1p8VjT2IBOM KIlAHoKEoH8M/fwTwSl90I1YIV3ZpJX8UlobwwL3LGy/TEhBuzkiwMe/8y X-Received: by 2002:a05:6830:81c7:b0:7d7:51af:4aa1 with SMTP id 46e09a7af769-7e1defeb3a5mr6520339a34.18.1778197456507; Thu, 07 May 2026 16:44:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 01/60] target/arm: Implement ID_AA64ISAR3 Date: Thu, 7 May 2026 18:43:14 -0500 Message-ID: <20260507234413.643512-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32e; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32e.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: 1778197510315158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 9 +++++++++ target/arm/helper.c | 8 ++++++-- target/arm/cpu-sysregs.h.inc | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 88fe3ed287..252044b057 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -244,6 +244,15 @@ FIELD(ID_AA64ISAR2, CSSC, 52, 4) FIELD(ID_AA64ISAR2, LUT, 56, 4) FIELD(ID_AA64ISAR2, ATS1A, 60, 4) =20 +FIELD(ID_AA64ISAR3, CPA, 0, 4) +FIELD(ID_AA64ISAR3, FAMINMAX, 4, 4) +FIELD(ID_AA64ISAR3, TLBIW, 8, 4) +FIELD(ID_AA64ISAR3, PACM, 12, 4) +FIELD(ID_AA64ISAR3, LSFE, 16, 4) +FIELD(ID_AA64ISAR3, OCCMO, 20, 4) +FIELD(ID_AA64ISAR3, LSUI, 24, 4) +FIELD(ID_AA64ISAR3, FPRCVT, 28, 4) + FIELD(ID_AA64PFR0, EL0, 0, 4) FIELD(ID_AA64PFR0, EL1, 4, 4) FIELD(ID_AA64PFR0, EL2, 8, 4) diff --git a/target/arm/helper.c b/target/arm/helper.c index 7e7677a584..66813bb298 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6498,11 +6498,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, @@ -6731,6 +6731,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 20:37:28 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=1778197540; cv=none; d=zohomail.com; s=zohoarc; b=U8f7PtThNM3lNkH8n2WtZ0bL2uuluFy5hsaSV8CMJqzlcSosXtVwHdDE/fx3T2qojvh96T+5iyZqljWAo7GbMhfe4buU/mYSTXne9jJBgsMFfM423biY4aB+38nSD1qzG0dFj1V6X0NShRpJprbB+EWXr+sezpebsjXwteqv5KI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197540; 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=aCs6S3RwqHIbMU68g+AI9p1n67JI8P+lk5cSTwfb/kc=; b=M9QPPDU48qw0pQl+yjLIvC+2uzPLo+8/vNDAAMdFnFMXvJjcOrydYDroeVWd95p4Gvb2//cStYTUplVUz2EZKQRzIVEljzF4ZR4al6NwvQTvZn90CHGGAU0t4y7wNemVvTt0z8QVBQLZ443oNO4AwHXS4h0k8jcA8sH8OD/5Q8o= 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 1778197540627974.3952556562333; Thu, 7 May 2026 16:45:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OF-0000AW-Ep; Thu, 07 May 2026 19:44:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8OD-00008N-3v for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:21 -0400 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OB-0000yi-14 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:20 -0400 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7dcd17e19b6so908830a34.1 for ; Thu, 07 May 2026 16:44:18 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197458; x=1778802258; 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=aCs6S3RwqHIbMU68g+AI9p1n67JI8P+lk5cSTwfb/kc=; b=UlNyRPwONE67JW8LSAc2d+r9tPMZPw9VZ/C5SFz53Huz98XWRG6S+3FjWR+GYhV5Al /DTy8s43/f+7q5ZAhsznVaHbL5CoFFfSjznLDtGb3NOlQdfsvLfq7U6nJRRGEeZ0y0pe pmTi9dEFM+4r8NcDSuqI8UU/FnV+gT1Wb1ZIXC0QmiJv9BNe0g8scfW5gHzTwFxI2FKW 2JZs6dpiWsBinzXanJHIlVZFCSSMIkTsYqYXZoCF0Y9OC1yHExkdcXEdUb9MwHxgKzMC 4s119U10/gyxGjLwoiFkOCDAjpF05+uw03xi5FN/cD6Od7ir4HmcjnMCKjyHunAhFtgt Jf5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197458; x=1778802258; 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=aCs6S3RwqHIbMU68g+AI9p1n67JI8P+lk5cSTwfb/kc=; b=SI8QEH7lNVOK+rpBqyvcWrjU4B2BzZqCLwImqb4b60qqcf7/qPcF20W5triYgSlshV 7nHEEzcQTuYXn7vmtHL6uEDbHA3ZpQNUVugKUAULOpTxNVezjfG10yXPYwklIkQFXKl0 Uzih3LWSPXiNVHQOmbGhy/zYaZ83PLKaAuhHpIjTCEZih93wMaOBpiHv5t3xvt9LrPFT n9SxWuUZc4wTCJsUYABBXYES3XFz3yuCe3wiXubMf/oNEAz7Fk91QR00WUm781QN0h2J WF8OSpAQhzO/yjV8pPwoJLsYjhA5WYkPYCNOJBpew+iaHY9hxyLeT9jvgthLlMorTvKq QGqw== X-Gm-Message-State: AOJu0Yy2PjemEoWunKz1/3hYn2ooSicYmrBRSHQ1KT06jSY6i+ONEBHG 2RvPW6LGlSJhLiZ+QHPqIkNB9DLdREozecqFufie5BmimJVSgGwgAIVmS2RS8IkDoGLeo2+SeaA wGL2U X-Gm-Gg: AeBDiesown6qDiMOqr5m5v0H6V5sLwnF/fZUDKHi2iob21sRgsrcTkzCxhQzbsJkUsL e3qzaPXDjM+VEpMjoPUyBJyD/8CtqCOc/SkWPwXISusSJJHT2Lsp0J+SdfDLorrrXT1XZUItzPj PfZhMNjPVK/yl0POayX3g3HszhifAl06t1Ajz3+A00eMg5b60ury/eF0s7CWaXrdWBDwzr2fhdT kcZaDH79MvhXXmf/ZNyYKmkMTRSFiT7g/thqb7av47vLg3loli1DHQ8IiikGSUIOIYD6f8lQHPr lI1S5Eu9iTxJJni5y+pW5t8Jwrnz+bqH679eIJLMkYw0VS1tiP91kQTkPUb/rO94XfPq6eSN/7S zx2e3/XjvK3AHH3LFzfVF6maky6LL6sYoXgWbsESGAiLqNMgew2Op054CoaBxthu1BDm9myuoUk yjL+IOA5ZvkuyjP8CSuVyH0pj3YQ8PSpbZAzIaKpVystvn2w== X-Received: by 2002:a05:6830:a90:b0:7dc:cc70:7788 with SMTP id 46e09a7af769-7e1def32d7amr6304057a34.7.1778197457701; Thu, 07 May 2026 16:44:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 02/60] target/arm: Implement FEAT_FAMINMAX for AdvSIMD Date: Thu, 7 May 2026 18:43:15 -0500 Message-ID: <20260507234413.643512-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32d; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32d.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: 1778197542378154100 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 | 35 ++++++++++++++++++++++++++++++++ target/arm/tcg/a64.decode | 5 +++++ 6 files changed, 73 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 252044b057..21d0be73cd 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1061,6 +1061,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 c7ccb28b18..cc2691b2f6 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -338,6 +338,13 @@ bfloat16 helper_sme2_ah_fmin_b16(bfloat16 a, bfloat16 = b, float_status *fpst); float32 sve_f16_to_f32(float16 f, float_status *fpst); float16 sve_f32_to_f16(float32 f, float_status *fpst); =20 +float16 float16_famax(float16, float16, float_status *); +float16 float16_famin(float16, float16, float_status *); +float32 float32_famax(float32, float32, float_status *); +float32 float32_famin(float32, float32, float_status *); +float64 float64_famax(float64, float64, float_status *); +float64 float64_famin(float64, float64, float_status *); + /* * Decode helper functions for predicate as counter. */ diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 9a27c4c6ec..3c6559964b 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6478,6 +6478,20 @@ static gen_helper_gvec_3_ptr * const f_vector_fminnm= p[3] =3D { }; TRANS(FMINNMP_v, do_fp3_vector, a, 0, f_vector_fminnmp) =20 +static gen_helper_gvec_3_ptr * const f_vector_famax[3] =3D { + gen_helper_gvec_famax_h, + gen_helper_gvec_famax_s, + gen_helper_gvec_famax_d, +}; +TRANS_FEAT(FAMAX, aa64_faminmax, do_fp3_vector, a, 0, f_vector_famax) + +static gen_helper_gvec_3_ptr * const f_vector_famin[3] =3D { + gen_helper_gvec_famin_h, + gen_helper_gvec_famin_s, + gen_helper_gvec_famin_d, +}; +TRANS_FEAT(FAMIN, aa64_faminmax, do_fp3_vector, a, 0, f_vector_famin) + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c index 249a257177..b5ad67b5e0 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -140,3 +140,38 @@ void HELPER(simd_tblx)(void *vd, void *vm, CPUARMState= *env, uint32_t desc) memcpy(vd, &result, 16); clear_tail(vd, oprsz, simd_maxsz(desc)); } + +#define DO_FAMINMAX(NAME, TYPE, FN) \ +TYPE TYPE##_##NAME(TYPE a, TYPE b, float_status *s) \ +{ \ + bool save_fz =3D get_flush_to_zero(s); \ + bool save_fiz =3D get_flush_inputs_to_zero(s); \ + int new_flags, save_flags =3D get_float_exception_flags(s); \ + \ + set_flush_to_zero(0, s); \ + set_flush_inputs_to_zero(0, s); \ + TYPE r =3D TYPE##_##FN(TYPE##_abs(a), TYPE##_abs(b), s); \ + \ + set_flush_to_zero(save_fz, s); \ + set_flush_inputs_to_zero(save_fiz, s); \ + new_flags =3D get_float_exception_flags(s); \ + new_flags =3D (save_flags & float_flag_input_denormal_used) \ + | (new_flags & ~float_flag_input_denormal_used); \ + set_float_exception_flags(new_flags, s); \ + \ + return r; \ +} + +DO_FAMINMAX(famax, float16, max) +DO_FAMINMAX(famin, float16, min) +DO_FAMINMAX(famax, float32, max) +DO_FAMINMAX(famin, float32, min) +DO_FAMINMAX(famax, float64, max) +DO_FAMINMAX(famin, float64, min) + +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 20:37:28 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=1778197760; cv=none; d=zohomail.com; s=zohoarc; b=lXNCnInjyx1TSQwwz+kPZveQGmUaEiSjNSeNUOpIi1CumUcnqZv4w95kcLiv7fCQU6gshrh6LxWTgYLYJQ8Bt7q8oP0UWYn6Z6QBp66JFKhYh27NK4Y++e7/+Xwhp8ilptc9Ps4lT13oJzYnO6XSetWewR+LYc1lcKUc/16SmZU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197760; 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=f9icdZxYx+oMiDyU4sbRQtkDtk863yHoHjjLPL4BYJo=; b=i/wbbGa+jZOUIyLLJrRnt36bR7oOeXbLTWH3An9kAl+sIrEqqMvcdo7vjJcebgGcdEcfm82PoBnvAIdr/CUYem82aP6xxq64BQfo+V/3WB/2r/iAOfUjlMRd/x9zVy2isdoYNEd4MkY56xBqOKTnpuHtGXe/TAhYYb9x1XFhNQo= 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 1778197760970616.2061593748067; Thu, 7 May 2026 16:49:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OH-0000Bd-5G; Thu, 07 May 2026 19:44: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 1wL8OD-00008g-BN for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:21 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OB-0000ys-Ow for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:21 -0400 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7dea1272943so885848a34.0 for ; Thu, 07 May 2026 16:44:19 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197458; x=1778802258; 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=f9icdZxYx+oMiDyU4sbRQtkDtk863yHoHjjLPL4BYJo=; b=RoZdHPNZ/M6101hp3ZMVYPM62R/UOJDlv+Twt23pWX8p1QDUF4+ZwxwDc/jndoWqI1 /szGC9B1W2G9a+bVh/gs2stwp1Vz/tAj7PshMruEpZJTfDV99CFrr+vVH0VEeWmi8Bjy AjjfFw27hU6M0anCCGE0Fx4lzF69xPPFczWgZyUYjJbgDYyaqC/GJ9mqjVF1JFPFyDS8 pFn6NwhuBajwWAgTAoiNWULCCrUlsQtErPR8H79zUsOSjKf7V694Znfm6l6D5PJRvhR3 +4ieXYGsrQ2DOtGr5NYv07DNlV49Ui+f14A94VsehHx2+AqTWnfkgiMVe1T/bstIFC3k d/Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197458; x=1778802258; 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=f9icdZxYx+oMiDyU4sbRQtkDtk863yHoHjjLPL4BYJo=; b=pCS+nJvW6OLPauF5FblcYbxPxw2pXIkPHUM3+V4A3s3wJHhKju8rLpXXU48icTrDOe CGgKy5ieDCe/3GFOM/CsvhXS8XuLLUfKaPT+co0XrSifzJEO9liyQSzxAaBJfrDF+A2L kelRzKgfeRMW+09odxgFjF7Q2x3xmYjKegZtOg7cW0eu6gQsTEXUQWa3EIxGhI8RXlbp nIOmrmibSo7JZ7HGMIYZRtYoc2YW/7GOrkSwWh9+ZGCtDW2JRCylDNwPTLn+bpy3gAYh GrbexbRUmTyjogj7NYw8P8VW8O3NNb9MwAgf86CpkqXYR2uZP1RRiMsyK/IlwFIEkUjf Dnrg== X-Gm-Message-State: AOJu0YxX7/m084zRbbyWN5EkUiKDoP0X5NTdsHrnf6IbVyyztPON5AHD ++5jjH3X0POcy5g+OYSoJ7HacmX9MZLK6teGplcY4o4D7n7bvfDh4vc+7G4KRi/LsE4df8lT9Mt OcGDC X-Gm-Gg: AeBDieuO0R9CxdjShjOOXTD09O9qGs1yxhk5pgk+JqX8ewaJ7SV6twvDY1qd9JNsptn btrkA9fm+N0+Ad26TA8nPGZ57O9IZTVzG/BemDrjxst+Q/I93lZSpCosyYcgJbhFrssUBjhOnhl ZGwFBFXXB63bbnDJ3vy11OGu6Zr+bcUNEfP0B2dCSNTgbCijNZhl/Prsd3khMekEzrkk9K9GmBP AVFZDBii6ZTV3Qg+9cxVki1hYBUFvUmk1nWqHe1yN/w+xMIGYoFJubngduxx1+OdVenBfxeIuDV /6SuysYro5g3CVvMf+YuSuCd8//oQjWsoChQ3XNa5aZdjKygB0MAbpwwn0pETHTnOOexyh2W9k3 U3zRxb6WTdK5/wQjUTwot9CHAsK2vNflK6AscF+5JMkllf+qmUE8TJ7j4XS+J+/zg4lqjBJ5oEc cqMwmlsGqVoUstHL659dAXkchq1nKk27Xl/v15WzN4Re1Naw== X-Received: by 2002:a05:6830:d8d:b0:7d7:c96c:c5d6 with SMTP id 46e09a7af769-7e1dee2eb3bmr6459062a34.1.1778197458590; Thu, 07 May 2026 16:44:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 03/60] target/arm: Implement FEAT_FAMINMAX for SME Date: Thu, 7 May 2026 18:43:16 -0500 Message-ID: <20260507234413.643512-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32b; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32b.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: 1778197762517158500 Content-Type: text/plain; charset="utf-8" Since there is no bfloat16 variant of FAMINMAX, check for missing function pointer in do_z2z_nn_fpst. Signed-off-by: Richard Henderson --- 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 21d0be73cd..fe5d3a1635 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1587,6 +1587,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 20:37:28 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=1778197868; cv=none; d=zohomail.com; s=zohoarc; b=DoseLzt36jIdGWiOsGbnoOQKbIUYRclYMP3H4kJP+CrDp2r0FeowwZsyiaDbA6Azy6eAgrhupvjYn7KZ/NjJbYSAltaUsjAkKVowmGcBHs3hJlEtFzrAj8tbJ97oCE4bcp2c4tUFRTi0ei3oZ/Y4+adZJunS/RJ3AlwU5Ql0HdU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197868; 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=AdE2cHz55YabYtNeXRkV5W0sj4/MBF41JWJ0YA7+D58=; b=fOYjDwz6y+0FrRgCUGjNqJcrAvbnhYcaWSyNQV3YruRzQFdjk/Zp7pWW9l+1WgA6OEJnY8OmlRfgffvsFKra2F4WTKad/YxR4Iu5UR5Exnn3lju7D/Fu/inL6TXS+ufIh6ozNPH//wLzvFC/39J38qT4lN3zmipNoXWsjxDsHyI= 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 177819786848744.51179846522348; Thu, 7 May 2026 16:51:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OH-0000Bs-L0; Thu, 07 May 2026 19:44: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 1wL8OE-00009P-JH for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:22 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OC-0000zJ-Rw for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:22 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7df05fc49e5so1465450a34.3 for ; Thu, 07 May 2026 16:44:20 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197459; x=1778802259; 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=AdE2cHz55YabYtNeXRkV5W0sj4/MBF41JWJ0YA7+D58=; b=y+ZtZe/KG4bjGbr5SpHBNyqqLDO+0j9FvsYRW1yvZzuENLvO3D/GR8yJhJezKqPvH2 A6OhAtm+7MlkIcWFRSOWO4WQZEg4lGkPsWIK/fms2KTN+PivGGQQ9v8iz7S6onA0olT8 8YmE/Ql1wlRHxR0RTyNsZI97Ll22pYUcSSuHmCPDirvlNyxpUy1c9A5x2nROAjvwU7QI +5mIM5YjxAhCEy5u4tGq83W3nDJhvlH2F+m++E0/6lYXrw8WjgtJfeKCkqFuwugnScmV iC4rKb8uu7WDqSD9Ipv+cpmkVIx1FsuPfzQaoxE+UNX3fSHN+1D66e0FR18yiSIIPkhC MlLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197459; x=1778802259; 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=AdE2cHz55YabYtNeXRkV5W0sj4/MBF41JWJ0YA7+D58=; b=bBr3OD7CYIkhsO9owmhuO5mX3alHQ4mAp3zXAkjTw70aO2yPufk4m7cProGbyqgfYf 5OdbJxrZAz0eZ4RZ1yfp4+eNlDr0weLiDYGZgztnhTQufb9M+kQqAon5wMoC/+bbHybP dPVoZ18OB6pA8GyyvXNVd0DOyaDy/RO2Ce/ou5S9cwu5Q2UaRHnrMABdf9NJXCDgAUnn awXD+kXb4JS3cXkjn/KdoBima0PPAkhPbzEBNX4rIguLoqP6ZUB4cp5r2igADhEssqe0 tWpr1SozkSQWpU63kD2Rtw/AdpuEIbePn3FsZGrJrrpU7GHBpCYFYm6av4SySxqh2rnV KYNg== X-Gm-Message-State: AOJu0YwiecgVHWXH9BNA7oeoml/bMakC8BDQA5daEhzOBYInME4H1va0 BqcxdAmSd5WsuOnP+Q2oyJmlX6vSCSCitoCCc57OZW1OI9LCS80UKiIMqW56CjpOCbpFLm01Xzq B3jqu X-Gm-Gg: AeBDiet+kcDpp//41xcYmCWMrqQ6dCIW8yoUJoMHrKEjIXYCawLfzpVUYhEqF0bFFey Zpw5fp8o01U4u6ISOGOCF6q2R9DolnCOhy2acDSdzBlZrdumG9KKbsYtTP1dfJ1fXQBNn8Z/iXW CGxkwXa8UYFqwz60xp7VaqDjDHzg0YJmonnK6L9NGmIFVTiJrIiXJZtAmoFDCPjTLb6JKti/BJ1 Om5nNZ+VXGYeKtDrazRHYSGyU+lkO4fWQ/dfzjuC6a4pCj71x0hBRzspwked+gWrdd4ZtAZdJVh bI+/Q7CM/VeK2/lVveD3temh4x78tfwLlMoQN22J3cYJpRrtdWy8BIpRNBrqFblYL28YkR0fbqR B57hP7TK8EmVSH9gH/ziriQqQvETn3OAonNeUJkMELNfW1qptvxas5jMjKaq9VuCk1tFyh3vIh7 S1AUbW6ukEcqUr9f+Jxg9I8noQe17aCrWbev9EfuVKa5yXlg== X-Received: by 2002:a05:6830:7103:b0:7de:4ebe:e44 with SMTP id 46e09a7af769-7e1deeca7a1mr5827266a34.2.1778197459611; Thu, 07 May 2026 16:44:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 04/60] target/arm: Implement FEAT_FAMINMAX for SVE Date: Thu, 7 May 2026 18:43:17 -0500 Message-ID: <20260507234413.643512-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::333; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x333.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: 1778197868796158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 11 +++++++++++ target/arm/tcg/helper-sve-defs.h | 14 ++++++++++++++ target/arm/tcg/sve_helper.c | 8 ++++++++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 2 ++ 5 files changed, 37 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index fe5d3a1635..4ce661d7fe 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1562,6 +1562,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); @@ -1602,6 +1607,12 @@ static inline bool isar_feature_aa64_sve_bf16(const = ARMISARegisters *id) return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_bf16(id); } =20 +static inline bool +isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_faminma= x(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index c3541a8ca8..1eebb64a29 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -3166,3 +3166,17 @@ DEF_HELPER_FLAGS_5(sve2p1_st1ss_le_c, TCG_CALL_NO_WG= , void, env, ptr, tl, i32, i DEF_HELPER_FLAGS_5(sve2p1_st1ss_be_c, TCG_CALL_NO_WG, void, env, ptr, tl, = i32, i64) DEF_HELPER_FLAGS_5(sve2p1_st1dd_le_c, TCG_CALL_NO_WG, void, env, ptr, tl, = i32, i64) DEF_HELPER_FLAGS_5(sve2p1_st1dd_be_c, TCG_CALL_NO_WG, void, env, ptr, tl, = i32, i64) + +DEF_HELPER_FLAGS_6(sve2_famax_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famax_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famax_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) + +DEF_HELPER_FLAGS_6(sve2_famin_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famin_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famin_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 062d8881bd..9968600f75 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -4742,6 +4742,14 @@ DO_ZPZZ_FP(sve_fmulx_h, uint16_t, H1_2, helper_advsi= md_mulxh) DO_ZPZZ_FP(sve_fmulx_s, uint32_t, H1_4, helper_vfp_mulxs) DO_ZPZZ_FP(sve_fmulx_d, uint64_t, H1_8, helper_vfp_mulxd) =20 +DO_ZPZZ_FP(sve2_famax_h, uint16_t, H1_2, float16_famax) +DO_ZPZZ_FP(sve2_famax_s, uint32_t, H1_4, float32_famax) +DO_ZPZZ_FP(sve2_famax_d, uint64_t, H1_8, float64_famax) + +DO_ZPZZ_FP(sve2_famin_h, uint16_t, H1_2, float16_famin) +DO_ZPZZ_FP(sve2_famin_s, uint32_t, H1_4, float32_famin) +DO_ZPZZ_FP(sve2_famin_d, uint64_t, H1_8, float64_famin) + #undef DO_ZPZZ_FP =20 /* Three-operand expander, with one scalar operand, controlled by diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index aa7d72a35e..db32230595 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4253,6 +4253,8 @@ DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah= _fabd) DO_ZPZZ_FP(FSCALE, aa64_sme_or_sve, sve_fscalbn) DO_ZPZZ_FP(FDIV, aa64_sme_or_sve, sve_fdiv) DO_ZPZZ_FP(FMULX, aa64_sme_or_sve, sve_fmulx) +DO_ZPZZ_FP(FAMAX, aa64_sme2_or_sve2_faminmax, sve2_famax) +DO_ZPZZ_FP(FAMIN, aa64_sme2_or_sve2_faminmax, sve2_famin) =20 typedef void gen_helper_sve_fp2scalar(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_i64, TCGv_ptr, TCGv_i32); diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index ab63cfaa0f..078a085a79 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1130,6 +1130,8 @@ FSCALE 01100101 .. 00 1001 100 ... ..... ...= .. @rdn_pg_rm FMULX 01100101 .. 00 1010 100 ... ..... ..... @rdn_pg_rm FDIV 01100101 .. 00 1100 100 ... ..... ..... @rdm_pg_rn # FD= IVR FDIV 01100101 .. 00 1101 100 ... ..... ..... @rdn_pg_rm +FAMAX 01100101 .. 00 1110 100 ... ..... ..... @rdn_pg_rm +FAMIN 01100101 .. 00 1111 100 ... ..... ..... @rdn_pg_rm =20 # SVE floating-point arithmetic with immediate (predicated) FADD_zpzi 01100101 .. 011 000 100 ... 0000 . ..... @rdn_i1 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197675; cv=none; d=zohomail.com; s=zohoarc; b=AKq85ZgK7l1Hdmat3kXLOnyCHENa2VHrWPfSaOz4znQE1Z9iOPnAOUZKcm5s2VOIOGuewy+k39pxeqXMygMSLbSTNVIaiS2WGpNmkfa1RKdxc92umofbgymL1ULZXLTRK+i5UOIujd5Sdu7hdsro/cB+Fgk3LZOHF65jsOltVqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197675; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0L8sm2nuOmiw4XE7Qu74ytG281Y5T5t916Djua5D5pM=; b=nJBR3Reu8AUXM5aRciDvm3ioSD8apv5sXbcyGyUX9Cs8bwlb21gKK5t+f53r2Qi8GXPIUPdumjZsLdZ7cSoEKtiSAE6p6zdFKHDg705LFEmnw5U2C2kZAYD0PVvN+AbN3Uro0mE7qLdMyrXahygnTBd+bnyRySTpJgES4Il1gNA= 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 1778197675269458.55556888109527; Thu, 7 May 2026 16:47:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OK-0000Es-5j; Thu, 07 May 2026 19:44: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 1wL8OG-0000Ah-3M for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:24 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OE-0000zs-Dc for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:23 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dd73b7c757so781539a34.0 for ; Thu, 07 May 2026 16:44:21 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197461; x=1778802261; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0L8sm2nuOmiw4XE7Qu74ytG281Y5T5t916Djua5D5pM=; b=LGG1CIIotYGCSUPqPvZ4LrIIUj8K9UQX1X0KIFRGkUItPsFTgYbQL0JW3b6TlUbHXr yc++/8CCbkBgppsD7uBLSoieXrGrAIUquGyCXpD3CBBa1P/xaeHOBMKhhIjXFlWDr/R0 s4e+FoD24LDnh3ILk/8sO4yd0X0vvDY997OR2LanntbEIKfEJAEZGuR1fbM6axVDLSjh l3KRJGXJkpdn24mUw7LNJSb2aY2qqjiygV7K7tEN2Cc+0LzylMHdPwn1niT/Zxy1gTdD YUvKmV46nfimPyOy7PEoAxGdNLLHZgY9r4mGx/0vnvbKmoV7XS7H8bl6HpZp69oqftkY Bh4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197461; x=1778802261; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0L8sm2nuOmiw4XE7Qu74ytG281Y5T5t916Djua5D5pM=; b=ax+bFj+vUqLhkXZFQC/trAc5AKPTs4PL3QVjK6q2VDFB8PXWHRL5F9bFhI9SyJQ2gV UqmyulNB6nF0O+sh2xN7fbkLxBRklOwVvEepqVD0ELjZSbEzq4EGnPZ8uaQz2LFcj/NR IA2kpQFaF/5x1COUhgJL1q+Fphf6EfFCZOWsx3DY3Yik8h8jF+BAp5fKBZpdZP72MfO7 F5oXCmz4JB6Cskuw5alv42Znj5zi43rJ0+oJTjAm77wWK4fJ4wvu7Pjc3ZmZatb07von qeJTZF0p4zAnZqo0Ye4q5XFNfPedVEXAtxFAU8DhyWsEUrOgE2QqiFOWO9ppVD0c503T M06w== X-Gm-Message-State: AOJu0YyN7XC5WbuoR1xr8LRF616tiCLVBNkagUbG2lScW6skuErY8QHx uL4RxFtBdIQcn908unZWho0qU4PsJQxHFe+lbrVLCqnASxC4Z52lcTc66cntxpOn26fd/ufPnSe aUDFz X-Gm-Gg: AeBDies3ciTJR+XlYnRFCHCoBaZF4ukoDSf5m6J0DYXL+aUihg1iwo8Smde5cYbC57k ZvU/YMBt2IFkQj/01N75BKDfopj/hIUnsQAHIqVDtRz0X8FNlyzBR0Iv0Wxf2csetm9Ym9yi2Te sCDyMBdXAuVjd9bCNgQXb3hPoNKwOe8pNNd8kZ2bWaJzeWcwi3VHtOYZBvao754E4ze2uu/znjN 8qWGOi/0tHgk7vmDbcRnorMCYgM8tovQqwsGrjJnO8uEWA5Zu0pyBdle0TXYOWCh8PkhvWwP9gK p0LVxOC5IbtMGKllGomrlKTCcSmIcs9jI9+6oqkS1OV9SeHdGMiUL5dgXzuMpu/DxurP/yGP04H qjRSZaEQtMAw+dWIb3Z5EpgZXCdFEUslCsgN6rIXyESgw5hPUvtvdSYOEdd+7gOKJH51CuMB9Pd /7lc5Kvn2oZV6o5eY1JZluJo3S8VKjxGlVvUZD5vKTkOdQTGA3v+4Ob806 X-Received: by 2002:a05:6830:3142:b0:7dc:3d7e:40c2 with SMTP id 46e09a7af769-7e1df23c9bemr6443314a34.27.1778197460624; Thu, 07 May 2026 16:44:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 05/60] target/arm: Enable FEAT_FAMINMAX for -cpu max Date: Thu, 7 May 2026 18:43:18 -0500 Message-ID: <20260507234413.643512-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::329; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x329.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: 1778197678154154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 4 ++++ docs/system/arm/emulation.rst | 1 + 2 files changed, 5 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 649d854a65..ff0c2b1c47 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1266,6 +1266,10 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ISAR2, ATS1A, 1); /* FEAT_ATS1A */ SET_IDREG(isar, ID_AA64ISAR2, t); =20 + t =3D GET_IDREG(isar, ID_AA64ISAR3); + t =3D FIELD_DP64(t, ID_AA64ISAR3, FAMINMAX, 1); /* FEAT_FAMINMAX */ + SET_IDREG(isar, ID_AA64ISAR3, t); + t =3D GET_IDREG(isar, ID_AA64PFR0); t =3D FIELD_DP64(t, ID_AA64PFR0, FP, 1); /* FEAT_FP16 */ t =3D FIELD_DP64(t, ID_AA64PFR0, ADVSIMD, 1); /* FEAT_FP16 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 8cd7fe7b00..da5f7efce2 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -68,6 +68,7 @@ the following architecture extensions: - FEAT_EVT (Enhanced Virtualization Traps) - FEAT_F32MM (Single-precision Matrix Multiplication) - FEAT_F64MM (Double-precision Matrix Multiplication) +- FEAT_FAMINMAX (Floating-point maximum and minimum absolute value instruc= tions) - FEAT_FCMA (Floating-point complex number instructions) - FEAT_FGT (Fine-Grained Traps) - FEAT_FHM (Floating-point half-precision multiplication instructions) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197700; cv=none; d=zohomail.com; s=zohoarc; b=c/E6keK1//yfQeprOBuEjtGakDvXTV6rMycOKnO0nkS+d8dcjVD6dey3rWZqSOaBwacsLxurdWOvn/hVcMwGHqsyZPlQZNgDdZ7SquVjuVuY/RyzAyd6Y2QRCplk/sQHJNKvJErQnexpJpPy8Hb4cYZbhBN+EnT4n8yd+pr3Nbo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197700; 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=DHaqfL3jimyccNFpxwTItrJ53CxfHkBqEkZT8Php2Dg=; b=Gwomxh+iQJ/5sch7IsYbH/9MZASDaHKltgdxbJq1iNsB4jvWw1NuLkf2hc3usq24z7c7RECjgLSuHLmvx5CBuFVkxBN5Y93ESo9JX9hWHsgpivwXJe0C6Hqy7Vh8GtxuB1KM8SplW6qM0+nOuyXJ9ePvZlLjEBVyAgzNJtC5MQM= 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 1778197700719782.8791640200612; Thu, 7 May 2026 16:48:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OI-0000DI-Dz; Thu, 07 May 2026 19:44:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8OG-0000BL-MV for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:24 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OE-000106-Fy for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:24 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7dcd689829eso1261836a34.3 for ; Thu, 07 May 2026 16:44:22 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197461; x=1778802261; 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=DHaqfL3jimyccNFpxwTItrJ53CxfHkBqEkZT8Php2Dg=; b=Qb8laVCvTYG/Bh/JdQ8R0fLdpiLSmxB5cupyXvzF8dhkLNunfpgrXDleaVvbnIJWiY CL6MlWnZWU2cgDkuJy11+/Xmuimn3qNLXVcoGeVTJhG5uAsNt7Ivvit8XguoQESxYuoQ zWwCSqkV90DH6ORXq0M5uKiDEFHOIe/7Vc8Lw5ZbtDEElb2ITcB2qpkGNp8VcfHq+vYK I058zzZW//2aLHiY3fHxR2Yq23tkKjw3chMx7RgwjaglVow1b5JpQpWvbYtv3x+36dJ8 PVqya97uq/J6vCAQ9p4AUPTP+NCtGzUjwfmeYpy+LpUG0XsoTR1b0y9vdaZtsnyuyu2y cyQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197461; x=1778802261; 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=DHaqfL3jimyccNFpxwTItrJ53CxfHkBqEkZT8Php2Dg=; b=MgBwqwoo4HInBG++c1kw/N0b2Jt+yNlOFFvhC/K7waqKXltiPewhqbJfSV23QykqMJ tweu+Fvcz9DB6kfrQMvm40OB9VOoIEEeG65mdAoedrUQ2WajFDZGPsClG1Xud0zPdKk9 EWoWQZsVdKNZWcejBbodciKAKYeTdIAnHLuP8SorWDHWxCGMAhwNdhi+ocHlyzbZbuum p1+2nwcnR0mtAS2szv33E96aGOPTTUgDaR0rffWHwcYRkx4f1h4PbwjRWpbKifPVfEZh u3BLSVtY3fVcZ2cR9uKZesUPWZL9AOr6hTnlzE6SHO4GZTOstFLnRgp8/mueZv9nlTYx 60FA== X-Gm-Message-State: AOJu0Yx36ggvOlPhcGib+t8TJ1onhWtViys1PtRwiHeLBEUpVqPxZqMx PKPlQk4EUTyxKm/+9gnv96H1Unaot00AhxhUv2Q/iSm7DHn0/E/fQ9n+p1JfhEW2eUGeEfh1D4I B38qR X-Gm-Gg: AeBDieuWFoPvpuClGS63NKEEA7/IMyOLxJqS1WVpIHc1RLHhOLK0quVGxA/Yz03WjPi 5Qs3Hl2qy8LqZQaAB/9gmI7h8Yg3aCgYhKXHd3tUBE7an7ULM3AMs47Bb7tolIg2/pfmH7kdRjE i1M4lC1ZHPEPUSRN4kkMfT93DCvVaB9l0jYnC8lNR1NiKQYK2zZxFewtZepZHL7H48VuLYeagLh eC+nureTVU5btxixytfEsSN8qxemqZI1KcQApNkiQK8fSMeMrLKElSHMVbkr6DY8MnCKiM/RJfu k7L/A8b+mic4G600V7M1lgtqg3geUyq713IaXznogHjvyQdBQLTopmex1LtTEE0ox8PPWmTqHRD LfalS7I9NhmBRtlLBbHJAUQO0JaE9NWsNdRkrRuMZeFaxfmFqBqhY8t1P+TFSelbhqTXEiQzRuM Jp7UcxBD70AB6GTTs6nGS95QjrFCvN91mXJ1aPfnrhIIdpCg== X-Received: by 2002:a05:6830:210f:b0:7dc:c926:4f87 with SMTP id 46e09a7af769-7e3666cef1amr439558a34.16.1778197461427; Thu, 07 May 2026 16:44:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 06/60] target/arm: Update SCR bits for Arm ARM M.a.a Date: Thu, 7 May 2026 18:43:19 -0500 Message-ID: <20260507234413.643512-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32e; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32e.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: 1778197702546154100 Content-Type: text/plain; charset="utf-8" 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 0b9755533b..aeba70e6fc 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1795,6 +1795,17 @@ static inline void xpsr_write(CPUARMState *env, uint= 32_t val, uint32_t mask) #define SCR_AIEN (1ULL << 46) #define SCR_GPF (1ULL << 48) #define SCR_MECEN (1ULL << 49) +#define SCR_ENFPM (1ULL << 50) +#define SCR_TMEA (1ULL << 51) +#define SCR_TWERR (1ULL << 52) +#define SCR_PFAREN (1ULL << 53) +#define SCR_SRMASKEN (1ULL << 54) +#define SCR_ENIDCP128 (1ULL << 55) +#define SCR_DSE (1ULL << 57) +#define SCR_ENDSE (1ULL << 58) +#define SCR_FGTEN2 (1ULL << 59) +#define SCR_HDBSSEN (1ULL << 60) +#define SCR_HACEBSEN (1ULL << 61) #define SCR_NSE (1ULL << 62) =20 /* GCSCR_ELx fields */ --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197612; cv=none; d=zohomail.com; s=zohoarc; b=R66hbXRB8SoAM5l0N90J5ARUxWKvqGtqkOgLzZ/T228r1e+P4byJGInL70buBwngOoYHaxCbMRINtFn1nDGff/3C4Gx/Gy1/Ig2lDSqEbDaEHQh5/ilMJLvedhppUP3UtlMNFtfsmfyzDwhz19++xby5AoWsl1nM3iPe2uoNAyw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197612; 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=7xQFL5qnJbTCMuaEBPieq6VTwctzd/ZwaJ3ywMslF2Q=; b=lfLMH/RlCJwKr2lxFtpPqVPJXk14QJ5TMvhK6OklFsZywlLqy2OY9mSZQZ5nI3QxO12UkLYaOWsPIjEfbHpSGBnG6b6WxWstthgTupD7DCy8j1EIj0B3Cspmel0iP7ExdUi853oCyv2rqEbU5ajHHmc2CmYmm4rEYDnLlO15bhA= 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 17781976122790.801544659614251; Thu, 7 May 2026 16:46:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OJ-0000EP-FD; Thu, 07 May 2026 19:44: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 1wL8OH-0000CP-Vz for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:26 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OG-00010r-Gy for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:25 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7de431da8fbso1140478a34.1 for ; Thu, 07 May 2026 16:44:24 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197462; x=1778802262; 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=7xQFL5qnJbTCMuaEBPieq6VTwctzd/ZwaJ3ywMslF2Q=; b=JjYitrDE+6ZYEEBaFrt1WsgAz4vcYVmdJK3Hvi4JWxCj6OBH4qkRTz2364hVRVMDok dpOF7vFVuOIPz6m+k88GlC6ZTgZb3gP1jcPgmnS2foRlvLG9gJBzjcPjkoN2kXVsVJ7/ djCcgmyaaMsRg/xMSypmG644Blgx0ZN7k52OOjUdegbsDl/8POondO2+YtPzWI96GcfI yCQnLNLId4hqUwyPuu63BkVBTZ6MxFzEDXliUJXzd4aD0S59q7cWg36EbT5J/joOGrQp eBJV/kgseBjMmDf1MZex8kYoZqb+G+Dh4pY2uDoCzIVfjAcSGOevTpA1+nuDbr3ButzV GsPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197462; x=1778802262; 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=7xQFL5qnJbTCMuaEBPieq6VTwctzd/ZwaJ3ywMslF2Q=; b=HtiqxBSAC67r29DsyXgu2fIdnxAvAOvmk3AGbsCaOqHBdpDbAeH9OIftH9ob1Opirw +QeI807OcsjfoSWALTDWo3m9xVYdkTNtvRw615TCZOydclXPbatBOp0ODn/vMY3+XMOy WnVATeE8HdEg5A/63RYD4/GqJJ2Mc/VgvqI0nNXi93uhWNII+RXIKa3tW4Had1rEoiWL GYYEbYZKAjjRj9h3Irnz6lxqQvXVyRQuIeOMQBwEGE22c/4N/q5tlYTFPMjHlJRuP0OD J/0yCrPq0DcXWewavijCsv+6l5bZUJh76I87AHfywW8ahdsEkwFLXW5Mla9eFkzz9ejd 7Duw== X-Gm-Message-State: AOJu0Yx4LvVm+pBvhOm9l1aP6lMEZXGX5mEeDDyZHrPMcVQTjorDXHEE lnGdfrnjFIRdym7sHgDud5l3eLCyyxqlpC/YFkivfh6HpPWNpJID9v9vQ7X8dHEtN5ttEy/ia5p DZsFO X-Gm-Gg: AeBDiesQDszYf4Uf1VDsEFzpwKLCckaVg4hfr3KVlsFvDgcg3ZGFBfxtStLFkDg5Zzd 3tfOSucjoZ0jhembgqsSzfZTATA/efqGSZY7b5ywgNwM7nSdErH8q5HZDtY3ypilO4LuVOxbKp4 h3p7fdJB0KgHFY9DymFvQwbSXyToKw6deeYvm3+nUPeJkdnSFCxbf2QsC8IZu2BkZcXVHxCC55g nrG0Q6LPnaIebgR95d/5OTxmrbMpMTjPN1L1ny8Kd1E8CX9sUrmhZa3iVwCU19XUepVq8YoaZ84 Xs1LuEtWsi1gSNs0mt9bAh0K3VyHS5BL/dvhWfvrF7FnXI54/MnASBQjUKkyEnKYxrRwvPMJmYg JTNWiN8WaDnaGC22b6EfMXxq9plsjJFJbDhXvxHvjbTq8eeAqPyGDUfU/2AXjyiguY19MdF+V2w mpJY9i4lpC46i4jDK5lMJyvkVJr6Ac4Ns4UWUSVLpuIiKKZA== X-Received: by 2002:a05:6830:6005:b0:7de:4198:7a2f with SMTP id 46e09a7af769-7e1df0d2b55mr6576257a34.16.1778197462262; Thu, 07 May 2026 16:44:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 07/60] target/arm: Update HCRX bits for Arm ARM M.a.a Date: Thu, 7 May 2026 18:43:20 -0500 Message-ID: <20260507234413.643512-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::329; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x329.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: 1778197613277154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/internals.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index a632584a4e..6376ae1ca3 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -258,7 +258,9 @@ FIELD(VSTCR, SA, 30, 1) #define HCRX_TCR2EN (1ULL << 14) #define HCRX_SCTLR2EN (1ULL << 15) #define HCRX_GCSEN (1ULL << 22) - +#define HCRX_ENFPM (1ULL << 23) +#define HCRX_PACMEN (1ULL << 24) +#define HCRX_SRMASKEN (1ULL << 26) #define HPFAR_NS (1ULL << 63) =20 #define HSTR_TTEE (1 << 16) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197735; cv=none; d=zohomail.com; s=zohoarc; b=DsGO+mcI2spJI04O1QPy+x5IHCB5XxxPcd3htwA4F8PE6qldodaIKqd1vDPt39Htaswr+KGnZlJBiDNS1uP5amNMAfznw7rpSd3Not3KK3PxdaelhCyq+Yv4IMbtE7G+Baaf0SbDt7q4JNimFnfgeH/KHNZ15vPQzlnUgsUoUis= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197735; 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=Z1VZFehutszRylMZ00j2dss6V52WWHugec2ZAPoOXzw=; b=UyLdNmcAmb+PE31UoayyFxQJRM4HTU0MwwwtKVZYMPW4m/UghusIGWQDtUyZy99cPhs9RBk0n/q7NX/FU4Tqxl7TeqqePCAb3ig/mOWqKwpniyLMcwYf/hbX3B+1uYpJ30vfg+C0zmug3xHqypoEMZgH3akITQx2bmq9gKrXLWo= 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 1778197735104269.45138252820675; Thu, 7 May 2026 16:48:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OK-0000Fy-QB; Thu, 07 May 2026 19:44: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 1wL8OI-0000Cd-39 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:26 -0400 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OG-00010o-Ar for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:25 -0400 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7de46b8e432so1308061a34.1 for ; Thu, 07 May 2026 16:44:23 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197463; x=1778802263; 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=Z1VZFehutszRylMZ00j2dss6V52WWHugec2ZAPoOXzw=; b=SJtK7+3+WS+DJum3wWwxHRb8cuFeINXeeob09Y2O/rHagTeD9jIAyYzVTleWMQbzzJ DxfaoWQSfiq/zFQf+8KWItUE4hcnEv1qAjJiE/dADMpSl9nr1OxVFLeqOz6cCT80c2ev 9YHJmLXif1U/7LWO++KApqm5OL7d8MYWcQ1s5wd+t7snSKyJYifQSk36/V7IhEeXao4c EaVh2XyqbGJWwuCJDwvZ/Nw2p8yP1+XebksE/bbCiYHPD8TIbiTX8Ju5/r2HdljUROHy aHcMOrcxz9MxZa7iFACKTMws9d2ZAxkFvdDE0EA4EpscxzpYCidYYHq8eUA3U+w2mDwy GJfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197463; x=1778802263; 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=Z1VZFehutszRylMZ00j2dss6V52WWHugec2ZAPoOXzw=; b=g3U9kWRJVaU3+iX1Zd0u1LtxagJesJYTn4GOmwE+K5WNndenTx6v43cXeRAKOvmIUq nc5MZt90j0o8CkXsPWrg6IOIaxguDjC/9oImV/ixNfggJy5uAqIH0cI1ySkaiOiaADP8 3Iz8eP3YYC1JPulJWmR5oP0gtLh44EdidqpcmkUAJJBXZtgulaWlFMXpQBEAPR66P19B h4gYozG0ay9BAYqdcN/pjbXHLy9usRUtW1yoHoHc8e8BXd4QoRIvDHULTfc8bitn7dhZ PLz2bKgmzdWM88EKuBw1vShgaVeNqvWUk+DWVUPPuXWCAmU97bYbqU5dZ6VT4Iln8e4h 8w8A== X-Gm-Message-State: AOJu0Yxq0Sq211eTUsuUtwV9wgyw2Rf/WrXtzH4pSUpstpFCoC53tB6J jFqGOqEeq+LkiVkyvYqA9Eye/lRnBPeABIeFpOGNsvJBRi8C6x2jE4JSvmxZP8m0AL4wqPAT1ME 7e4BA X-Gm-Gg: AeBDietZbn7XQnaU0OrQvK3ryp9WHwVZsXiUZ3WZAGW6j2eWr1bedEsogWgzfZZRYTH lf0Rl+jSaeg/1BgY8FQojbV01JaOlRWPc2cG+zPXcXWvEcCeDTnvy+M3nHkYHXHBRqwM1Vju43V c5CeDcSejh4bmd25VXXiuBmpzKhiL9oBx6jZod5MXuqjJB9lvzt/ICUWTPsrHMUQmaI+/pvY00U RRk3ObNTAApBB8N2Nqq958Q12wAihWlhaJAZzQC/2T7AGGb8uJ+m/b5oAOI7YbiBJga4T2U2Xmu PJWjxV4nYM2aTGNnvdI2jjjbuAdw5cYbqIyh+PQLYx5Da5tyuSCmJKW57Oy7ETc/7Iregauo1wR vVsjnZQqYgC3SK/WVxz0g4UX67JW6UVgQ0g8lMV4hSBV3nOmI3DFEc2vW4SlmVZe0VvCnlfQfZX Xi29sPWTv0cy7MNKv+vJtx8c0R+YI/srxtNyAqiY2Qud3GtQ== X-Received: by 2002:a05:6830:608c:b0:7df:5fc:3fd8 with SMTP id 46e09a7af769-7e1dee91018mr6345297a34.1.1778197463081; Thu, 07 May 2026 16:44:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 08/60] target/arm: Introduce FPMR Date: Thu, 7 May 2026 18:43:21 -0500 Message-ID: <20260507234413.643512-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32d; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32d.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: 1778197737091154100 Content-Type: text/plain; charset="utf-8" Introduce the special register FPMR and its fields. Migrate it when present. 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 | 9 +++++++++ target/arm/helper.c | 12 +++++++++++- target/arm/machine.c | 20 ++++++++++++++++++++ 6 files changed, 51 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 4ce661d7fe..4ab2a51c99 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1186,6 +1186,11 @@ static inline bool isar_feature_aa64_gcs(const ARMIS= ARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64PFR1, GCS) !=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 aeba70e6fc..c6f1f1a688 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -691,6 +691,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 6376ae1ca3..08024943c3 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -292,6 +292,15 @@ 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, 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 66813bb298..304db1a479 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6209,6 +6209,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 */ @@ -7481,10 +7489,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 20:37:28 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=1778197942; cv=none; d=zohomail.com; s=zohoarc; b=PYrAteR0zF0A1m9Ex/9BvZlTm5sG7gqKVGeE1XHaBqqilxEA9LRglEb49YEV7bLXphe4X6KQWW4CB2f//fGkHm00Qm6IsP/ji3+NRbX90XmOIv1vwIduMnXmeOPT6NJ04DS99Pjk/97C3koJxTDWIPv66gdmGlOI5VAybQ4DUFg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197942; 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=M/2XYJtCmCnZVDd2+hLLU+HjlQwW8RLHBCgCwsIOvd8=; b=fLJyzNEK4EePHm6FFOjKE5hWgJ67nCvwGFFYFmb/adK7qtJKe09+GzkExsVPd0/DTAPHZTEpgFULElu/Az1/726muxYXVqyR0FtWQW3w8WA3I1U/CQXyAuQ96ecwWCEzprSAChqXDlIZpVG5uzXiKYQ22xPDh8Kvxgb9j5zJr/A= 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 1778197942256499.52556697916066; Thu, 7 May 2026 16:52:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OL-0000Gv-8Q; Thu, 07 May 2026 19:44:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8OI-0000DP-E0 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:26 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OG-00011C-W5 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:26 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7dcd689829eso1261854a34.3 for ; Thu, 07 May 2026 16:44:24 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197464; x=1778802264; 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=M/2XYJtCmCnZVDd2+hLLU+HjlQwW8RLHBCgCwsIOvd8=; b=LZfwOry1NVSytGirbf8jj4UevvUfjDZ59JrGslsIr23zvIYb9qzGa8gbZJnUhdAyrp mbUrktqFl2qbPqosUigIiV2IAZKRdfQQwHqRDdGIrUwnjX522y9LCdcb4t69sjxjy3Iz WdiAPa1JRzw/WRy0Tf3z0UoK7VDx/ZDCRdzjDe3qpYSRTO1tnKH8HK4dFydommE+TDNu tEuxLu2QgeLx9lo01dxEXSkVMzR/cxx+ZZfNyxh4ulZ5g90TugArA2255hZRvKaukrdE 3yv8G4GQq3NFvUMA9FsFFaHgENC1H4HsB54zCUZbllyQC+JrY7dNdIi2QyhCyHPuulHd lkrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197464; x=1778802264; 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=M/2XYJtCmCnZVDd2+hLLU+HjlQwW8RLHBCgCwsIOvd8=; b=Mxi1p7lIovkcEZWTXeDWrGq/gw1O4JLgAVC1B+YVaNuZpS++Oz6zabHmHbtsevEv/S oISHmMCkth9IQbNAFFPlbrIFPeTAK1LZjTbtUOWXF2ycyYTwySJ49DbS7FtcQRbChLsf RJPWBWY/K00+yiQ4w6FOTN58/AauLf9tnaDsqS2MXC/ycB52WGmZdBSuhv9yLIRYRbA5 lkIkl91Q5PtZnPO57lcMBYxDhZwE/kQOcwahxDps2Ynvmsax4/X1o7FypAwgz773B8wl ms4fS9lTGL0jMgpjMqyK4ay1rIz+0v6LSSGlHQJjfofaUcfzFdcD8i0iPgsbzEMpyXfQ kCfA== X-Gm-Message-State: AOJu0YzLEBUvqi/acCSnW4LliQ7YJDsKuXqHuVb0gLn/h4F86WXKbmYs FTXRuthIlTTeiZJJtWcpSKF5sePOYhMeOoGZXfViuNBOhtN0501lK5XS8XXtnEEwhzGfZgv8UgH 7KWhu X-Gm-Gg: AeBDieunpxOHj8x1iMpOo0EEycWAZMWhyI2KQzBM52cP2SUfZKNnfZFXnQelyT3Ezos PiZRQcaU9+D49sK8ijYsczIZvzo8G9h6IfCk9CTAkBmjqZuuUhkULFwz3aO4nc4a5TXFa/RbKTu w7Lgj6yvPyWsByQq/+6dEzuHa7UEDcnU5EyNc2+HvNwlP9v8tCBKPvxdxC+qHYIk7ar+Rop5CgT Dp57lFPbGXfzjegZ0Efqy38rq2To2rr8suEczJs1sGwG9saWjUpIkkiQDcphCDkrWAYPgCOFocs KyNkXN31VmO+IQeR7X3S1HZFd4WdWqa2ecw06h8fFDYO6hKnB+r98+NG7YAaArxb+T7nCJ/kDuR im8bov2JbLlwTWiD94tbyXXfBLDmYlyJG7odiB8uiX3tyvzVIJtN5MDIhhZXK18cztUwU1O6X3z Lx+5tOsMWu2GlRCTnyZPujk1j1p7dTV6rfMa+4dev5bi6rwg== X-Received: by 2002:a05:6830:d07:b0:7de:442b:722 with SMTP id 46e09a7af769-7e365ac7847mr490637a34.0.1778197463836; Thu, 07 May 2026 16:44:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 09/60] target/arm: Update SCTLR bits for FEAT_FPMR Date: Thu, 7 May 2026 18:43:22 -0500 Message-ID: <20260507234413.643512-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::333; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x333.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: 1778197944105154100 Content-Type: text/plain; charset="utf-8" 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 c6f1f1a688..8f2c13ca20 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1460,6 +1460,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 20:37:28 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=1778197550; cv=none; d=zohomail.com; s=zohoarc; b=CQHxA6QlNbjwOd3uwS3cfKao0o1/FUwrRkVJ0ArbUeIfi7pZFnWjnrYFYaKmMs2MHYbyE3eT32MyFvoXsApYaa6xl6PCezVqmdopJQHLnwNat6hZjS937KUzCFdJbIk7O+QNvqK0chIOv+3FIn1wLVdHiilYYxM1REq7GGCXZg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197550; 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=6A2mgR71x2gRQlZNLDb+phH7Gxy6pN9ynlj49DFnFXE=; b=DzMc8XMkav6G2F8BVb6xqXm1IdiHTfnScP7tdAJbdgDPvaLFs1MdAktB/WZZH/EnsQrNJL0bPagiPKb3yuXQ71KQMhOQzDEh12DnL2Z/T+RDjciz+uwj3QmOlBCV3aWkMeVtHFVGyWmR2oPaA9kJK6129sprw9pb0pDyZR6Q6xg= 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 1778197550712595.5498133688391; Thu, 7 May 2026 16:45:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OM-0000Hp-3F; Thu, 07 May 2026 19:44: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 1wL8OJ-0000E4-8m for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:27 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OH-00011Y-OT for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:26 -0400 Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-7df05fc49e5so1465503a34.3 for ; Thu, 07 May 2026 16:44:25 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197464; x=1778802264; 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=6A2mgR71x2gRQlZNLDb+phH7Gxy6pN9ynlj49DFnFXE=; b=e3LzRDAbE2y0IxJlJqbuQvwEaE0A4kxUucm0KhFXDj+W9CQxd6d0YXWFItm9EEybaR vdx8I4UGDcnDgkwpAUh2yTOsjs2EkZ5YQCI/xmLSCCvz1XLhazH/6ViBdtOc6GHzf8A8 tpv0D3W9H/wWmaXzINtqliYwg41OMyNOSeBnF6iMRwcYnrg8apTiRYFKBkWgKXaQjd6O 5zR8/Us6Cr1cfR+23QHgAJQLjC85+R/G7euZr8rv6CNqZQzEbiRFhOsQQAMb8/b+nD/g Mh0uSjGqawT1vBbhtmk1INVScaBwxNEZOCAd5jb0IZnwhLcYht2yJkDmsaNvmm/qM7Z8 X2Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197464; x=1778802264; 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=6A2mgR71x2gRQlZNLDb+phH7Gxy6pN9ynlj49DFnFXE=; b=OHfmYvadM5dojvnd+wPPrC/xZCqzFqAByZW0xyxYbQQgOohLq7gGBXUtNHLXeqxp4+ HfAdl4EbJJX73N/BQY0W9VyduoZsKab6hh+RRXfxOW90BUQTQK+XGiHc8rHRg1iWPfxN ROuxlrZ1nAg7cbkYuoYtme1zAp0YgzZwI4/U5bBEsbE+ISwpwfDStRtJmHFYmNVxHSbk LFIsJNF5vpAPmqKPIEDOwiPQwFO5gZH+TIs9cMeEiYecGHHTp8DDho0MYo/mTHMPVkDr WZvGOLfpMrB5nmrlIyEIp872lKs+jsYynHR7Ciwzs7NiQiTFNaEUH4JWtypXfmc7jHoU RayA== X-Gm-Message-State: AOJu0Yy24M4qo9LcpsQeyoLAOYIRHhjnb6uDI/WAg9h0oX2e52NUPUcR F9J5fWGiwh2rK8zh8xfPtGOKSjGfO2WMw2fgETGMljQ4idfsNlt6YD53DiuRVhNn1uGl4iL3iXm 1tNAm X-Gm-Gg: AeBDieveZfhbtMIIack82Qygz9bAKId1+W+RgpPasfs03jydab3uzJ5eWmBJJZLQD87 O9yi167S3GbmiAxNcSgtdClMKNoHTyRGA7mCexW/Ht74mUdJ0/ZgQV1QdONl3G2lWZ4fi8QFR6O 3vPxuZidxgzgEYWm6BzLiE9csKjElik2e8wH6yT1iF2skV2HyR+msnW6CMGpFzTsxA1a+K4cep6 +ZnGamvxpvXZLojOkv1ENemjuAiQ3RJeJzJFske7XhWFinZTmeMtV7cUIdtRjyES05UMCV7YTC2 +SXwp8PhlFXT+CLXSTHLac7BUJv+fo6ad9Io9uowxkmCuGQ82mzDeIqTPB2a3+UURqkexCNOVNb AdIJ3t1ENg1iSIkp9Vk6flfwie64GHaUXETtudjssoaDOWDpnZ+5VywDi/714pzyoo5lr1Avsao 6lecJ1yWTnrIRAWbmHd8HMfJRcQzwTM9hMsFZaGQL1c6ShmQ== X-Received: by 2002:a05:6830:67c6:b0:7dd:e032:3cdb with SMTP id 46e09a7af769-7e1df0d2a88mr7037568a34.18.1778197464574; Thu, 07 May 2026 16:44:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 10/60] target/arm: Enable EnFPM bits for FEAT_FPMR Date: Thu, 7 May 2026 18:43:23 -0500 Message-ID: <20260507234413.643512-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32f; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32f.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: 1778197551540158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/helper.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/arm/helper.c b/target/arm/helper.c index 304db1a479..7a17fd39e5 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)) { @@ -3953,6 +3956,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; @@ -4026,6 +4032,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 20:37:28 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=1778197507; cv=none; d=zohomail.com; s=zohoarc; b=LSzD5jm4zCS5iz1UNUTwSpq0KuzmxwsVTmOFanlijrtBRFyt8xlVEV4Y2d9VXhWlxhLxwLsSLu9+m2lKCEyktGHpCA3c1SXjQlmWLtKsoSVakyGsI6InaWNaTDY3jP14YM+8ARgH+0D5t42mc76k3vN1dgPc4qc+9wvmXWvqN64= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197507; 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=l1WOBWWcejd4Njf8YCai59IybtK3LPcoz1EYaWphZqM=; b=hmg4HNA2SPwCH4MjlnQ1Rw0DEWS8fEoALeFnoK2gbI1ARAru7UO1TSVYBMDc27IzA3hm28jENGcNn8U2ajQBFTBA+e/2MX785zSSktwEfZTTwZaNqbZcQtdFOFt8x1yUlbKebLz0yLwHpdmf4pL69knxRfZn47ta6/Ox54+Igsg= 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 17781975078581009.9968915403533; Thu, 7 May 2026 16:45:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OM-0000Ih-KA; Thu, 07 May 2026 19:44: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 1wL8OK-0000FE-7S for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:28 -0400 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OI-00011p-JP for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:27 -0400 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7de4e6c5a30so1478227a34.0 for ; Thu, 07 May 2026 16:44:26 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197465; x=1778802265; 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=l1WOBWWcejd4Njf8YCai59IybtK3LPcoz1EYaWphZqM=; b=fo+kYL2MGND/xbQhOAL6qmH/6L6XyNCMoIO2LDZ7zxsvI3h1JcMrzANv0mghaVq7d+ NJlRknb5vZHF/clmNVS2NMRWhmBp25uWqOnEnd0gtKD0dXbCt0/XYj/SgVSDaBHEJ0yG fu0uy6WIqto+zDW6LBNr+aUkvOQI9tnJSPi95XWdmFqkXPkeiaUgtz0wnOU+dN6Yps/5 i5w3qycqS3fIQqi6RXSzb8HIvw5qeGN1QFLmZEflzM1Ls+8MZUbs8TlCVZJfK122vYfi sKpX62NEfSKhDIvo9ifyFK2FHWgq8wt20GqdqYliD60NYnEiCbJSFXpOtFoqxI+X6Lw8 z8rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197465; x=1778802265; 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=l1WOBWWcejd4Njf8YCai59IybtK3LPcoz1EYaWphZqM=; b=X3vunpbZnQ6wQzM45TicvbCyWn4Osb7ZJBtl2gdv2izc8qxvsMA5n/Nn0p4sVekn8R iaBDfj27O6LzZzsw/yk/bGm86byXsdwF5Hfr8cEmqX0ipMqWq/ssWnmaC2TrgxzluNlo LgvIRU1iUvEMhQyDdIRQdg1sKPfI+Kg09THJAMaILeWZG7soYoT+zvY2+7mrXd2p2idu H2qdalAToV8HMcDcBwqp52cf8VzIxI+XdcB9nG8Ypbyv/avpv7hfUVGuWUJp14X2yAIp oRQA2bjM3WtazVDS5ivdQrBJOo5k56f/38pOv6Bw1oSBrTNQcEyzu3J4EIyG7iWQcztY z85g== X-Gm-Message-State: AOJu0YxL2T49Jx/zNvKmRRum0KuutsDY6RgPfLrP/KiFHS8fmlHNxxYE ebTmzpniLVPThAQMwB2B5YPJR/x83LLtke/tRxe6E26u6cDQKHR0awDWPUiBSqIbNgTwRwJdnrh gpWOW X-Gm-Gg: AeBDiesZ0nQKKcZsGQfzYQd/ysqe9QWFhPUQdT98hUYjf0nBtMMckMtI78/b1Q99MLj rJbvtNZ2WVMT95ltEYhSlbGcijBKsmpljU8X6qB0fDnz5XqJpR3AYJSBNGbP2H8MxQyDfVVJU2h 1navTb6I5F5U5rbaszGDnEsyd/yyw/krxJW8p1CNsT/2qMnwTRiSXStuOD03jHXbCiryRKGVFIi rbFZvoahTqb7u2oR/ga34EVYOVRqSFuCDbfhywYXIHtQLpjWNm8tB4EkVxOqWtY/vOftFrZDr/y mAsj31x0o91DDlt/BJgMo2qkUVS9FSLcui6QjSEEXmaLhe1JAvM23tlInRuH5GTyHYklUzGLE+K GQItsdYMBRjq8/TlgLdFXE4J2VfFARKbLkOXKKMr7EpuEk9qq0bm1/uaINE0/okceDC3OJ4ecxP 3zmgctSItGA3uSSHBZ45Sd8gq8XoP431hp+uOWSWdBa4LHeA== X-Received: by 2002:a05:6830:2401:b0:7dc:d601:a69 with SMTP id 46e09a7af769-7e1df0b9632mr6391677a34.20.1778197465298; Thu, 07 May 2026 16:44:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 11/60] target/arm: Clear FPMR on ResetSVEState Date: Thu, 7 May 2026 18:43:24 -0500 Message-ID: <20260507234413.643512-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::331; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x331.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: 1778197510274158500 Content-Type: text/plain; charset="utf-8" FPMR is cleared when entering or exiting Streaming Mode. 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 7a17fd39e5..6263a3cb3b 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -4836,6 +4836,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 20:37:28 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=1778197762; cv=none; d=zohomail.com; s=zohoarc; b=T1fEwkStUHir5LtL0sp7409Y02MuXM7g/r6rNZiZqjTG8OCmX6HgFpkdWesu18/v9xqksSgT/y+n9XgFzFlBVS3mGeu8+H0x9zS7p390SUEWqb6SAzSY7QQq5KI4l2pNYKb0tXGaLSIsyppunykVP9sCX4jN5/dbN4HgN+/Cb6w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197762; 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=IBEpCMl8nikzb4pGbSsObaFAkRMOHpI7n4RJ+Yuy9pM=; b=YEzCmDSvXGf1d9oX/dBaEoqpcI6qwxa/xr27ezCNqcRPQjMvj/4DCPNnD4up6+LZbtDWJd1JOZ62OCHKJY8k5+EFC+3/1wrAu3YMx786rfO604sXWDWMzcKplJqzc7nRuOTnhO/dIu65n/ggc2O/2dZa2eG+CM//dut1HyAab/s= 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 177819776271035.54811327458026; Thu, 7 May 2026 16:49:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OO-0000KW-KI; Thu, 07 May 2026 19:44: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 1wL8OL-0000Hi-MH for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:29 -0400 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OJ-00012S-PG for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:29 -0400 Received: by mail-ot1-x335.google.com with SMTP id 46e09a7af769-7dcdd1b492eso1234700a34.1 for ; Thu, 07 May 2026 16:44:27 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197466; x=1778802266; 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=IBEpCMl8nikzb4pGbSsObaFAkRMOHpI7n4RJ+Yuy9pM=; b=LIXtsaywE2+0Lb/AhV21ozlkF19yOyhNCqXZIhf+ammq/QljuMj5vky7accGXDffkM tDWqmBXRQwq5B1SthBAMC+IRCjPFNYtwyQEbZpShAxsgd3WmSrzB01y4VPVSMvZLx2FB Ca3Q/gA5krI+ykk75SI0WZWTGhVHOeikfzbsmXjVuAnRje531xkbtlAZwLSW96lKmzBb +7mRz+USWy4kFgvi7uzI5SdoLI6rPx4DEaaKMFRHEF1KZ6kG+d3RPQnBe5Hq0vjUJqGV aLZJYIrij19bAtIrXlrpHO6s53RFcFNjw6hMv6uydHhHknihRwzlwlyuXE1mT2F/5FH4 l9Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197466; x=1778802266; 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=IBEpCMl8nikzb4pGbSsObaFAkRMOHpI7n4RJ+Yuy9pM=; b=hzJo/1xZcc1y9S/FRX1vGFxotVHQTrZbVM5V35dxZZpeLZU3SPdemlTqLOX8v2tKe9 LX68DNrX2zUaT/Q7oYusPs2dKjmv8mVmTo6L6YvodldTgMzUWVKYOJMMSx5I3nTt+T/J lrkE0cq739HVUcYTUlydeGFrQM0k6dIE8Wpl9QqpHLF52Q8jkqAtWYnoqwNMi4M2oTqG uhWv/WfjL/4kOMXO0x62SM0WfIO+lf0N2egwWI98qU1sb2uRrMwdKvRSUVNHs7KgzKJe JqyerTmdjJN3aJKjCckxCdjzFBAc3Z4RTMUbkDORhJPLw1eRevmNlP+HDS1+ZYgWORt3 XK3g== X-Gm-Message-State: AOJu0YxZWCu0zOipXMGxKXeHs0VakUaM6+O8y0YdvMaouwue6vwKNiQ9 /oM9c3InnPbQ+hInJFPsbHNK4EcCunkkC8alvVoUMsh2I0m3az4s/+HutJWSrd5uRObpTzs/E6A TKwMa X-Gm-Gg: AeBDieshELiynZ9QMq6xJK9Tyb7K/Upxw1DOjDPG/dBCODIAFqaQe0cMzcqrnxISSHE PrkoxrmWkndNn9Lf3aCh9lGtprXSx7EvPa/rMQKksX1AebSWwKTi4OPvcEpul/5wNDnP767AnF8 NesjrVUprqgZUfrCkORsLjDVBCDeoCp9zQ9iyxVLPT2GcN6/as7MOKM9fLyu5bg7jSytAYzcR1B O3cH7+XxXrja2oReuvrdmcY+xa7Gyo5wXoYpOZoFyK53p0w/vy52er/XES8YgRIG0H6bBp5WJ2K oQ7gtRL2MBED1iI323z7LzprJM0L3Esp6CniNFLXJUzkYMD4UVoFtZoAFvau/hUvhK07JEPe5y6 aNR4tzq7ovc1cwTsIKL5XzlHRucwdIPtQhS0GL1jvO7JEoCUSxf2EQKdZPUWCjpNchMF6HSxD3s F1YJ0jb9XU6rlgjV+1yzrRctiwNISpsL2pZ51cuw0zUudrbQ== X-Received: by 2002:a05:6830:1299:b0:7db:a297:9e62 with SMTP id 46e09a7af769-7e1fcf48a25mr2312137a34.8.1778197466321; Thu, 07 May 2026 16:44:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 12/60] target/arm: Add FPMR_EL to TBFLAGS Date: Thu, 7 May 2026 18:43:25 -0500 Message-ID: <20260507234413.643512-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::335; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x335.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: 1778197764484158500 Content-Type: text/plain; charset="utf-8" Prepare to perform access checks for direct and indirect uses of FPMR. Signed-off-by: Richard Henderson --- target/arm/cpu.h | 1 + target/arm/tcg/translate.h | 2 ++ target/arm/tcg/hflags.c | 41 ++++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + 4 files changed, 45 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 8f2c13ca20..24707ac085 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -2542,6 +2542,7 @@ FIELD(TBFLAG_A64, ZT0EXC_EL, 39, 2) FIELD(TBFLAG_A64, GCS_EN, 41, 1) FIELD(TBFLAG_A64, GCS_RVCEN, 42, 1) FIELD(TBFLAG_A64, GCSSTR_EL, 43, 2) +FIELD(TBFLAG_A64, FPMR_EL, 45, 2) =20 /* * Helpers for using the above. Note that only the A64 accessors use diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 77fdc5f3a1..1648c2c96f 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -199,6 +199,8 @@ typedef struct DisasContext { uint8_t gm_blocksize; /* True if the current insn_start has been updated. */ bool insn_start_updated; + /* FMPR exception EL or 0 if enabled. */ + uint8_t fpmr_el; /* Offset from VNCR_EL2 when FEAT_NV2 redirects this reg to memory */ uint32_t nv2_redirect_offset; } DisasContext; diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c index 7e6f8d3647..6759b36f28 100644 --- a/target/arm/tcg/hflags.c +++ b/target/arm/tcg/hflags.c @@ -237,6 +237,43 @@ static int zt0_exception_el(CPUARMState *env, int el) return 0; } =20 +/* + * Return the exception level to which exceptions should be taken for FPMR. + * C.f. the ARM pseudocode function CheckFPMREnabled. + */ +static int fpmr_exception_el(CPUARMState *env, int el) +{ + switch (el) { + case 0: + if (el_is_in_host(env, el)) { + if (!(env->cp15.sctlr_el[2] & SCTLR_EnFPM)) { + return 2; + } + break; + } + if (!(env->cp15.sctlr_el[1] & SCTLR_EnFPM)) { + return 1; + } + /* fall through */ + case 1: + if (!(arm_hcrx_el2_eff(env) & HCRX_ENFPM)) { + return 2; + } + break; + case 2: + break; + case 3: + return 0; + default: + g_assert_not_reached(); + } + if (arm_feature(env, ARM_FEATURE_EL3) + && !(env->cp15.scr_el3 & SCR_ENFPM)) { + return 3; + } + return 0; +} + static CPUARMTBFlags rebuild_hflags_a64(CPUARMState *env, int el, int fp_e= l, ARMMMUIdx mmu_idx) { @@ -500,6 +537,10 @@ static CPUARMTBFlags rebuild_hflags_a64(CPUARMState *e= nv, int el, int fp_el, } } =20 + if (cpu_isar_feature(aa64_fpmr, env_archcpu(env))) { + DP_TBFLAG_A64(flags, FPMR_EL, fpmr_exception_el(env, el)); + } + return rebuild_hflags_common(env, fp_el, mmu_idx, flags); } =20 diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 3c6559964b..b013dd51cb 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10726,6 +10726,7 @@ static void aarch64_tr_init_disas_context(DisasCont= extBase *dcbase, dc->gcs_en =3D EX_TBFLAG_A64(tb_flags, GCS_EN); dc->gcs_rvcen =3D EX_TBFLAG_A64(tb_flags, GCS_RVCEN); dc->gcsstr_el =3D EX_TBFLAG_A64(tb_flags, GCSSTR_EL); + dc->fpmr_el =3D EX_TBFLAG_A64(tb_flags, FPMR_EL); dc->vec_len =3D 0; dc->vec_stride =3D 0; dc->cp_regs =3D arm_cpu->cp_regs; --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197559; cv=none; d=zohomail.com; s=zohoarc; b=deCJtw7QLfskysrA4NAy1d8z+bSyeH8feQWzCrXTjb/llN43cjn2DoWciTJytf3tq9BtGKG8v32djpEG9wXKZEjLnd/VupQg29VZhFVUIaqdEABpnUSm0qIjIeNNubBLNlNFETfUnpSfliEUZ0tEL3arbxhmaFod6ZnNK/zJiSs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197559; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=RuUYRHuovVEbvZDKoFulOJ76CJMsJZBODEhgWcUkabI=; b=Ys745ZmZJmZ62/i1iBm9E9HbDMoT0TbX4sP88g9xHXOjmdNMy1JUIgmzqpyO/99BWkvVDHrqPSUussqyslLtWWAMlLXJmOPxdABhlcqgDDBRWT9kUwVnd5YKQay3O/oxkmyr1IiUQyxzMETSI55Pxkkb4rp6Y7PDtGgipEq0Lrw= 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 1778197559794283.58342634680537; Thu, 7 May 2026 16:45:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OM-0000Iu-RE; Thu, 07 May 2026 19:44: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 1wL8OM-0000Hy-1k for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:30 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OK-00012p-7x for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:29 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dcdd1b492eso1234709a34.1 for ; Thu, 07 May 2026 16:44:27 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197467; x=1778802267; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RuUYRHuovVEbvZDKoFulOJ76CJMsJZBODEhgWcUkabI=; b=mjWds637ItQlf7zO80VqSuJ3LVaXQbRlpWFc3+UfaCwMIXRU/NB+b7BKJdOL4lU9gH KgzN5Zfn9tuFROoFrshqcwjxvxhJSs/E+pMeeeiQRPqERDq7UhzlXKv20e1EE42e+uQ1 MnBJM4tfrWpf+qud4qp7bmG9dfeOK49PMjxdoEM3Kyg13YzxKNGdMxDNrCzTI0IgHAlP Lc/+DSuGVH6tqAbUjCcGUg3TKYX5LIDFUlakjGEgg4etVlNYtcBuBXm8DJX03nm///N+ kCcssvdKUrDw1UrMrXOo6RCtQ9BrgE+Jz9bKSG7/KQOrft3r/D6jLh1cS0Fu3SVBS7/d DmNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197467; x=1778802267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RuUYRHuovVEbvZDKoFulOJ76CJMsJZBODEhgWcUkabI=; b=SqgiOmL5Pcxh720OO788DV632TVWG1KsFZ+Ch9q2Qfkl9w0qtoTNedH5nITrEzvIRK jp/zXRUp5zG3JRYB63bq5GUOAUSlJ/czrzYXdNjRs9dZiPQDyOpDDhTpK/1P+7zmQo/E RcEgX7vIFmCgzYU3ModGyowZ8pi0IvezVAUAszwtBIgLUjLkfaTogV77oICPgLMOenDv UT2UwnYwLcBf/OW6yTrqpX31xXQGxApGeyes7H8pX16sM7txFKkiNsQ/2h9os1bLX/UA GhTsa+ZSO21d43Ae1FQdint4QS+N3yQ5yEXHe7nvgB1KQfJLOvJ35l6LbJlPK7pTVJof 2o8A== X-Gm-Message-State: AOJu0YwAol3qrcQCrXZwCzXdtg/XI0lKPHh62DBZl1/kAc1guQSYZp5U TNCkSHYB5xOtqmaJ+lfKLd/pj3J/HQv2X7N6sy0az367blTS96VoMQSqwUPpCVjjlf/VRBwNZgp SY+7w X-Gm-Gg: AeBDieuAewQWjBSFxHG+iYVW+U5+V1IF2JBRSXEflgzdGcSyIUZMDNiyr4/16UcGeyw TpKayB+rJ+c60vwWZpSR5M8I49esw0FGX9xnSBmWAl9q1gqkGkX9FelW5DTVvVMIlky2idwR3Az AeuYBQasEMzdOkOYSar06Rsg8onY6wKDRNhXlMbFrXw44nn+vb/J1WsXJHMacTjxh2Ozik1AHjc RC7dDtYXwsnv7dwX8kdgSoLorJCsehubj4+6TUXvVTiHNwGandU7mqrnXBywruARaUrbZCH4G14 /vBoM/dNrGhZkIKH46fH2sHUGiPpfOeTKAp+Il2zsr2MId0OjmoAfbA54s5H/f8v+FdasArHtL6 IbCwCqxFN3Jz7uFBJZiB0SNWfkDMmMXtItpTA9OqzM+ohKzV0HXMs2RpY6K9H0PnqNSe4rI35MT ZzGKJFZvsh7Hc3BNkE62tTpGubWP4t89UGFdb6Fr3nQdaEQTbk9iDXCfiJ X-Received: by 2002:a05:6830:6206:b0:7dc:e2ae:c15c with SMTP id 46e09a7af769-7e1fd26cdd9mr3378473a34.16.1778197467013; Thu, 07 May 2026 16:44:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 13/60] target/arm: Trap direct acceses to FPMR Date: Thu, 7 May 2026 18:43:26 -0500 Message-ID: <20260507234413.643512-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::329; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x329.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: 1778197561536158500 Content-Type: text/plain; charset="utf-8" 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 b013dd51cb..d2a4b0fadc 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2899,6 +2899,10 @@ static void handle_sys(DisasContext *s, bool isread, } =20 if (!skip_fp_access_checks) { + if ((ri->type & ARM_CP_FPMR) && s->fpmr_el !=3D 0) { + gen_exception_insn_el(s, 0, EXCP_UDEF, syndrome, s->fpmr_el); + return; + } if ((ri->type & ARM_CP_FPU) && !fp_access_check_only(s)) { return; } else if ((ri->type & ARM_CP_SVE) && !sve_access_check(s)) { --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197754; cv=none; d=zohomail.com; s=zohoarc; b=UnJ7clId1IJT2070kXOoYjkKbTEwq7aexSXwtxK/85BNuIyV6ZrfyF6inN9PmYcYpO51k/ZX1Qu6brUubY8terSKtFkDM1U2pJ8wXzTnuIFkXrBPSDdf+wbQDIGO1ZVYNU42LjNEPCTup+O3S/hFS6MSfc2JQWR4ljn+lIWwDKY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197754; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZVsvcQjrwAu/Fw5QeICNMsfPv4wnEzD0NNefmVwM0W0=; b=l0ITPomErJcVyZxb5fOMCsmvC/RBIJETgKSBksqBqe7r6s8Hv1AChVyJTEDHRByf032ukrE5tR4mS+oHJn3+ONm7g/AI6r/0qRtLloEQ1hVKKMc9dWt79EVobzEMSa0wupADbOyRE/3W7poTn1ggFrNfgyESemjGAQEXDvwlOPI= 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 1778197754618575.4195142327353; Thu, 7 May 2026 16:49:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OO-0000KU-H5; Thu, 07 May 2026 19:44: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 1wL8ON-0000J7-3a for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:31 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OK-000139-WC for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:30 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7dcdd1b492eso1234716a34.1 for ; Thu, 07 May 2026 16:44:28 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197468; x=1778802268; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZVsvcQjrwAu/Fw5QeICNMsfPv4wnEzD0NNefmVwM0W0=; b=fqZpb5WA9ogYuItOtSvNo6b9diPbxGpZ/yvrjuO5kXZ6ftAaUKFYVau1YuI0Zy9UGP WSkNZUTzgjushbHFtuz9vP+TZzkeJcfqMfCUDEvuqwyIiegZOolVwb17jLcrU0NLll7d wjF8WRqa/2gbGhvqVhrpCGC5h01Fz3d3M54OPKBI+eUkD01vWcB0+E9KEfeYeYXxoP/5 pJArxT0AcixbDgVAi0K90/LtwziOGqoFj0g2gGYtTBvtSq2X9a7UxukTLGKWrEK94/Yq M/Q3JXQPFg0dYrb7W6wB+yt2nn/tiQdb0u1Ac1Q+EARehgC8hiBqrYBeFPePSyDxreOu cGRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197468; x=1778802268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZVsvcQjrwAu/Fw5QeICNMsfPv4wnEzD0NNefmVwM0W0=; b=ontlU4LLHX+i9slN+/qp2ehwWrx/wf7BqNgXEegHT9ORWmScnmU8Tua3YI3N0YK9pK 2Y20ZSOQgER9NDNSbuVHg/hm3MTz2xdVJNjLDqY2aYslbDwkrCFRdOheDM1A0XAo4ylV bEvdi5XAkF10dVkoNaCT6+IYAPBKIxYzlJIMwM2plYJGAFNTzxkMBRAOJnrIC4QbJLyB 7jV/YWNHp+T6ebTdyiz/Fhqj5jul3sOLxaNCwpiwM9+8GW2RCbAbOjCFQH9mwzKdXK93 5o38W3uG5jmMfp8JKcdaYF77hC5y0UwZhNnk4xYju8uxOFxQz4DHFQYWuK4oxQkwd+Tu lYZA== X-Gm-Message-State: AOJu0Yx3nEEdY846hrMxMnuC410UpRAwo2eHDtBRd666syR7MeH98e1Y R4a95v+4sdxC/fmPslIcgFMaeTqxf6phzwRMOg4Sf7rdgF0GI5w40baNRFCuiJQ6Ici2hoAh/lC USFl3 X-Gm-Gg: AeBDiesTskQOcMuyx6E9S39gQgTnwxsVvSk87yfZC8OQtbs6PP5YWSXM8F3SdP+0948 7UwWcvpbNSnhp+hiszB0OuuIQzhl1YzAxSOeUxHuBqQFAbV/pqh6nipHK2vsxnmoRR/2wFYjBR9 fGNVN8PIWTjLcAP7KqojuYLi4o6eDJ9JYqHRlS0zxaGQw/vQkB8NOi21irlzUSf7oJ6+bUILhLJ HpF6DabkZyVIkssdspsPqiE1kl5z+cJT0zsusgGne/+Ny5fPbEB8RnF6PFDPKsjnYQcvx4dYTLN 7GOP35PZrutpJbRRm2zUOclCkxkNQ4ExJXRuarYo5UvE0R4btzsy+4W3sryh54mdOGMFX/qaK8I t8UfpOJvOewyQeQCytRAdqemdfsIMOGtg0w3w8ym5cT2kODjw+kxz+It4AKrhZOBiuELwAbbXIn fy4CrqcWAJjXfQy/eYL/id0Ih5f+COj0WG3DUTEe1n6UNM4jxJHt5jK5KK X-Received: by 2002:a05:6830:d18:b0:7dc:cf5d:df17 with SMTP id 46e09a7af769-7e1fd481d99mr2885455a34.18.1778197467784; Thu, 07 May 2026 16:44:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Pierrick Bouvier Subject: [PATCH v4 14/60] tests/functional/aarch64/rme: update images to support FEAT_FP8 Date: Thu, 7 May 2026 18:43:27 -0500 Message-ID: <20260507234413.643512-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32a; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32a.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: 1778197755379154100 Content-Type: text/plain; charset="utf-8" From: Pierrick Bouvier As well, use -smp 1 since there is no visible speedup running with -smp 2. Signed-off-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- 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 20:37:28 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=1778197579; cv=none; d=zohomail.com; s=zohoarc; b=jYC+KNH6wxVEH9UeERaxo3BbOmbQqeFpdo/D+Q72/I1j2SKABdKDZHTt/bsueiKg2NhWAaC4MdP/oGWXSyXj3UsIxYHzkDN7KGsM7VLMzn9gXkPip4wauqwC+2PUYwtnn51ozPywpkqcm3LPQoyuvJ+z6pnXHuzWR2ub+bifK3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197579; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XfEjDJlVu7LsFiNptc3UAEkKV/ApJAH3Ld019vvaP5k=; b=dxRhy6xLQcxgdeLX3swPJ9zd6eLrUG93nU0q40rZmzhYHbpg5qnubrwC+OEGxvM41YYa0TqElqnjrs7MX69hvZszNvwXutXAjQqWzMsU+TTcloIGLsVlBQ0u6RWYwtGvIBDnRVgKZ5zCob7C5SVN6T/dKew/2byzUs51LJtexqg= 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 1778197579429903.1508319843538; Thu, 7 May 2026 16:46:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OQ-0000LL-0r; Thu, 07 May 2026 19:44:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8ON-0000Jl-L6 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:31 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OM-00013Q-4Y for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:31 -0400 Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-7d4be94eeacso1508705a34.2 for ; Thu, 07 May 2026 16:44:29 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197469; x=1778802269; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XfEjDJlVu7LsFiNptc3UAEkKV/ApJAH3Ld019vvaP5k=; b=n6/KV6XpZ8K0fWEj+qch0vsWpg/JGw2qvEG39PPwfDigPEqTKmMT1DlotgYLakliOG 1hTmoa8rtsYXQD9mnZ6ozDsuzKGS9fRp5OKoR0/WaSKH5t0LIZilvaV+nHtCPheSZTY5 GCyO8s8pY3v3SNUMNF0+gFj0bV+vVdk4aGCgDpWuyfKzad1AXI+R2rWpaUBMZTGb5ffL FgumeGBXIdfXQXOOTpRiCdldm+EQG9TFnzNbt/X5Xc3JNuVG4LldBz5YUFsgd9Lv4v5+ MLNt4h3awDpnLEbhCiiww9QK5cPUc/tux6kI4O/nr9QpnwtcVMTsXYoYxPQO5+EQG4hq MPTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197469; x=1778802269; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XfEjDJlVu7LsFiNptc3UAEkKV/ApJAH3Ld019vvaP5k=; b=emmwgccZHQwYhrEl07v5U3JqQND1iRdC/z0U8lH3Uetr8Nafmu3eXZsxfvVSdVySBM zuFDdaJXP699nTntHGm6176t8R5LmA5HpE2UJEy4wbDmJxsFzfiiZ32zBzNVo5XpzSVl oIjBZt+fK2ul3ld68KqbJhxBdDja1RCdYDuurVkK+Bwsy0WRfB3k351HfBZVnbZYeOEl QYtWBzRgzhFsYQgOMyJ3m2Zj0bVIbYzihUgEodh71Jxd9DfyQwe6tmldkiOUvfACfwB6 5TOz4Mbi5MDBDsNjyDSJu6/1ARNRjIZo+6zYvFCOwm5uE5xkOxzZ0XUkpKHVq54tPHCB 8zoQ== X-Gm-Message-State: AOJu0YxEZ/aXzCvI65okH13fMixHtSz/MYlFyexmqtGAWwydZJybvJ/V LTxIrr7dh7b7b0ozFbEvu+L+SmPu4ueblm0U27bWyr6FVklcuhpEE/XKiJICs3ISHmPd8a+rvoh nwYGC X-Gm-Gg: AeBDieuOLKNrLaLTq79YjG42xVQLkaS4gqTxzgOjq0kpzu1ujS4cHymx+42LdSgY+yB nkUruB9CDG09kGE4qUMrXG+yhRakH4oa6xYlu1tRohyy9rn0WaKwNBggCQgbD7VPIMGP8/Nbugk +TXHrohZO92lyKl20yXoDpCAWRIovd0M6DWN0ch1hU0SO7ieNsyDY78RXPXCzBtyuaALMy3bIWu DcrueWoPhY60oCioMMOSfWBzJFQXea6feDPiD/gFBraoclRYEw/tQLsM+xQUKbN9+ZIk/aVb1PF J8i8OnocflS1uIB4FbDw716VeeC2sY2S8LqGNnKrZSjlbOrGM4g/xkE3jstJlu8OPJImKDA8AUs szJBBkD+b7bh2iPfaSI8zqps6Pi/H+conR4krCmSZ+QLVcRmNo2FoOHASEwrU0XRLsakToaKgH3 gafbHDeB0roBobt9w73FS4x1Xqb8nauD3Vi+LhBGihma5apg== X-Received: by 2002:a05:6830:44aa:b0:7d9:7209:4378 with SMTP id 46e09a7af769-7e1df050633mr6154398a34.17.1778197468779; Thu, 07 May 2026 16:44:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 15/60] target/arm: Enable FEAT_FPMR for -cpu max Date: Thu, 7 May 2026 18:43:28 -0500 Message-ID: <20260507234413.643512-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32f; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32f.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: 1778197580877154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 4 ++++ docs/system/arm/emulation.rst | 1 + 2 files changed, 5 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index ff0c2b1c47..a377f67b9c 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1297,6 +1297,10 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64PFR1, GCS, 1); /* FEAT_GCS */ SET_IDREG(isar, ID_AA64PFR1, t); =20 + t =3D GET_IDREG(isar, ID_AA64PFR2); + t =3D FIELD_DP64(t, ID_AA64PFR2, FPMR, 1); /* FEAT_FPMR */ + SET_IDREG(isar, ID_AA64PFR2, t); + t =3D GET_IDREG(isar, ID_AA64MMFR0); t =3D FIELD_DP64(t, ID_AA64MMFR0, PARANGE, 6); /* FEAT_LPA: 52 bits */ t =3D FIELD_DP64(t, ID_AA64MMFR0, TGRAN16, 1); /* 16k pages supporte= d */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index da5f7efce2..44c7196d09 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -77,6 +77,7 @@ the following architecture extensions: - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) - FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication= instructions) +- FEAT_FPMR (Floating-point mode register) - FEAT_FRINTTS (Floating-point to integer instructions) - FEAT_FlagM (Flag manipulation instructions v2) - FEAT_FlagM2 (Enhancements to flag manipulation instructions) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197594; cv=none; d=zohomail.com; s=zohoarc; b=fXZnsXGytzjF6HWJgjTw5jYBdFJl+5LTlBcM3TF+lYKd4m5VpkRU0ASzoCTyomGplnkp2hpuDiE8j5byTzsHInNun7ueXus29IQlBhd8VDD+/CpQcYdUoRrByjxF0vAz23RUFGQByGYDZXl7zCbpSQF3V50xXC+h59cGoAhflvY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197594; 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=SRXH/5Yzg5qUxVagyQUdgQKhabXT5R+OCJBCFUe7dI4=; b=U1fNN9NeKTr8nnCgH2U84iohlos/0lR3XZS+2fI8lgouzGXzKNPZhIGNOU1667QEqafOTbvOcJJYf2jvQCrAPJ8g5u1aL8BrEaJHkSljUoG64umjBnjD+u3dJeK0rOpM6hBMVa/r6tFNb1vNq0Jh+CPMJUaq0vldUFDOkaSKxTo= 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 1778197594155969.5142673480506; Thu, 7 May 2026 16:46:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OQ-0000Ml-Py; Thu, 07 May 2026 19:44:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8OO-0000KX-JB for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:32 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OM-00013s-RX for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:32 -0400 Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-7de4e6c5a30so1478281a34.0 for ; Thu, 07 May 2026 16:44:30 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197470; x=1778802270; 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=SRXH/5Yzg5qUxVagyQUdgQKhabXT5R+OCJBCFUe7dI4=; b=SVTROKRTDCYu/T8SBp2JU7BiskDMPOjhu3AHE/sHihyJ+RTiZvcJWypFDRyZqa9Pb/ G4TdVol9sfyTrhE9nBPlfj77F/N5UKvqtAlNfl5SkCS/oy8RZ7N6PLyRRpQkzwP7M2Bw DTFcHmJeI8BIEz8QCsZoEuOv6x4ZRtSjt9SbZ7tR5A4+qIAUksc5CUMs6BiTThjov4so S/vuummjUv5NFPr8NJ1PAIFyCO8Ncq3OAEpag+FEy/ck8dshyA2ZDuA2lyDl6HUSBUfv A7wKYug7BWyYjmKmfkyFO2xrdnxKVF5xJEpGbTh/1KQxC3WL2pRozPdVQNyctaDvorl/ FYxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197470; x=1778802270; 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=SRXH/5Yzg5qUxVagyQUdgQKhabXT5R+OCJBCFUe7dI4=; b=Y2WD9a3HjXE5LE/PCLDexZAJCLydEPWxFZEwPQ/JdFc9KWX/Y7hkHiwZF4/Lytd1xj FaeIEZ+b5hdESL5CyaAzbgMWwLerDdNoT4uSnkvmw+7GzvSlNTE17qGLsgNLL2JHh8/y RTZ3frDXtswDkkGbHsxuDaXrwltnHaFXBEwUVT7cD7mMgkZorGa3ONfcl1grRcaKhoir VwQOUrUBtQA0VSsUuIRpazPvg3BinZtkFi4c8ABTpU4wL7F0ZLpdzl5VyXCstwE7csKA RyFsR11Yp1sSc2cTMgdxdCpWqO2HIuXWMTBx05vlblGREKz7ws93CrIbsA0DtoKUZgkp GxEA== X-Gm-Message-State: AOJu0YxG0TvpzzuAGM4WFjyel2QO1/es4uRqPyVuiyH9tUf8iSVp0T7M eP+psCYvhK+zTY+SVfu1AghHz4ZnIFiAkfw/Q1ZHsxL7N0eM/Be3FRJ6wgwwkksbHi1LAnRFNd3 8P4hn X-Gm-Gg: AeBDiet+mq6Fd0qfJg5BchfAPkjI2iINnLoYDLuIi2LuFIBUvMIGKg0ZZ37QhaSAo1A 5FWP3BjUNtyW0VWF2pXG9CA0cc10DZGkbvDPl/qqI6u+0i1fltUYa/EGo37yJzcw4it5l/1PFGs Fr2Ug/sExaAsS78qI6KbxOMihBzz0PjiOhAJcACUntlqoRU63jUx69JcosVaXZIZU/EKOPAdF20 HKbMdIZTYETmpF0/TZYQ7JZt4lRNyrALavnTWVFJe2A7b6jHqlPD8x9iIVqEW1VHXc67uq5LqOg zYf/8AHDdVWaVGXwIXLS7R0Fr37wJMBqa8vJr1YKTFBME4BcqOC/D7QbE5Duq/M8NUF966Srxgm iO42cwKktEOzsNFwwvqmydVq5SLnsgGfMv53F0Q+C10QmDBPex9Z4PSMUfI8Bnfa3apKOmJpwgF /L8F66V+E9BnifVitziK7Tl8Qw+ujal5a0jXq6wATa/zPFpw== X-Received: by 2002:a05:6830:6b0b:b0:7cf:da97:57d6 with SMTP id 46e09a7af769-7e1dee81175mr6072343a34.6.1778197469698; Thu, 07 May 2026 16:44:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 16/60] target/arm: Implement ID_AA64FPFR0 Date: Thu, 7 May 2026 18:43:29 -0500 Message-ID: <20260507234413.643512-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32f; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32f.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: 1778197595121154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 9 +++++++++ target/arm/helper.c | 13 +++++++++++-- target/arm/cpu-sysregs.h.inc | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 4ab2a51c99..4ba263b225 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -409,6 +409,15 @@ FIELD(ID_AA64SMFR0, I16I64, 52, 4) FIELD(ID_AA64SMFR0, SMEVER, 56, 4) FIELD(ID_AA64SMFR0, FA64, 63, 1) =20 +FIELD(ID_AA64FPFR0, F8E5M2, 0, 1) +FIELD(ID_AA64FPFR0, F8E4M3, 1, 1) +FIELD(ID_AA64FPFR0, F8MM4, 26, 1) +FIELD(ID_AA64FPFR0, F8MM8, 27, 1) +FIELD(ID_AA64FPFR0, F8DP2, 28, 1) +FIELD(ID_AA64FPFR0, F8DP4, 29, 1) +FIELD(ID_AA64FPFR0, F8FMA, 30, 1) +FIELD(ID_AA64FPFR0, F8CVT, 31, 1) + FIELD(ID_DFR0, COPDBG, 0, 4) FIELD(ID_DFR0, COPSDBG, 4, 4) FIELD(ID_DFR0, MMAPDBG, 8, 4) diff --git a/target/arm/helper.c b/target/arm/helper.c index 6263a3cb3b..ec027ed00c 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6456,11 +6456,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, @@ -6691,6 +6691,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 20:37:28 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=1778197835; cv=none; d=zohomail.com; s=zohoarc; b=CliUUhieW2/IjBptNIeNjj9/SBvasd5Bqy4pliIqthhMKhnwNactWZnbjTQJkoG4OKVnJ4QVtMeX1cp1T0X+UGBHUf/EuYgkqnn6iC8jH4Q9+ggzurFbGSgp2OFqk6sIEBiuKCva4JNdyxgrd3o06MW/s47kKhtKWD4uP5XGOsg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197835; 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=9WK8IU7LFshBJy1B3/luWeWQwxfypwBRVNYAwu+A8Dw=; b=PIF5JpNUgX9gfTaspw2MRUA4GXFzCD14wDVoammTTOVzyyMk2XBnOzJjgVzlxpGOEdzqxpiCeQIkuF2QS2olQAwwHX7EX8vLaJcEBZPbfj1HBitNtUYLFdLL2bdcsHc4Vgmsu7uYQea6oKMsQBm6/ybUNBqHC8/71Dqgt1xwPM4= 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 1778197835955376.16381466826203; Thu, 7 May 2026 16:50:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OT-0000Ob-23; Thu, 07 May 2026 19:44: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 1wL8OP-0000Kq-ED for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:33 -0400 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8ON-000149-LR for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:32 -0400 Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-7dea20cf21aso1347463a34.1 for ; Thu, 07 May 2026 16:44:31 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197470; x=1778802270; 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=9WK8IU7LFshBJy1B3/luWeWQwxfypwBRVNYAwu+A8Dw=; b=Na6CmFJHKaKo+P1cdFYcGz3VHuFwjmxzYU0OAKe2s9f0OuT+s1KQ+coF5qy6fUpuNP eL9oVVYtlANPIeDFT8xOp6G4YJyBnzbHBwJVUw1K88p6FOTC2x4ahzL/CWmUN8MG68RA nhQZ/KIW13ALqc+7eanQY3aDALi5CitZqjZJhbdBHPFDK0OMGekEIwKvge6OMZhn32v3 aFnhnblBsNmvfs1S03fVQDy+Sjnx1QHUx6fb7FpPYcs5r4aCXyOlst5tY6bHJMENmAIr W/RBa7ScZPyFlyb2909eJgzWb5DiLuTzLiXilXBc7c7rmrOQzGancqKQGzzdhDoB0dPH oDNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197470; x=1778802270; 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=9WK8IU7LFshBJy1B3/luWeWQwxfypwBRVNYAwu+A8Dw=; b=C5CsNoxyr2PcBABei5XQ7Ljq7ZvrTICL0QTHU8PbLVeHGHM19REroyO911ORpf75VF if3gD+wYYHPFsdUOra2Zfl9kDGhy1JIRE3Hc/lbxToAdQpSE0ieH9FfHBGQ37UQ+Aqw7 u2ED8rsQ04PMJ+gMIIWeUrnqyghWUGo38sMmz6ttsuoHUQkb16+NxFivOl3y2QBrvPNW Gxzl3BBJIr4UhEVDnTiYigyGYshS4mq8iaJUPxVbDHTMPuVrEkzvBgLfZJ4jF7ijSisD ud+ecOrBORM2jk3MGgdzwMRmU/tEMCfdwITn0zgb/RAzkn9ViIP0EMKFN/ZCskenacAD s10g== X-Gm-Message-State: AOJu0YzfXWeuTsU9WAOnBX2jC0yEOynNTZjQzn+8QTa/cASHZrzX3hTL C9MdIfkR37d13rF6r2qzHlrw7BStwNX4097Er4jgJkn+tGTNsYZJMsgRh3j7UC973eoK6yPTA6B LLaUc X-Gm-Gg: AeBDieuMToKWStXHw7QioE+5npFI0+c7+bMDYEEuXIz3VPwv71oqMpeXLFZ4CP+s1Gy ez40uLN0B3cjYYYP4VlOktUbKSvwWSgLTrJjtCu47PtkVscu8UDtgSTyYUOtOhigIAumSkaUPNr PQ4A2rh5QbNaCRGIUdxzPFWludDwdYMsfpTmrD0YAQpuI6s47vxqFEgMgVjTQVsDFtVfb1OirJM r6QucOLZdU22w9mutOepk95gZUCeoDolRnv6bL8u6Lu/n9yfVM45jhICuVMDH3eqa1C544HXbrp oRyH5qtmCMFcGz6wqVU9s73oLnMRT4diWrX5GHKznb9ZF7QtKxnzX5s0azg81+JkagwDwtmQsWZ BkmbKGAjStgmhZXduJ9UAwmxwdK0Q78zg4BkgCisLC6HXtZehCVMh4DplFRlWRQD2BOkIwNWQYo iCMxRJXihnMbTzZUaXs1qY0udP7KGzjLBBs+cvGp0u4Pnxr/+0dA3XsoqH X-Received: by 2002:a05:6830:4488:b0:7d9:d2b6:1568 with SMTP id 46e09a7af769-7e1df0d22d9mr6473160a34.17.1778197470543; Thu, 07 May 2026 16:44:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 17/60] target/arm: Add isar_feature_aa64_f8cvt Date: Thu, 7 May 2026 18:43:30 -0500 Message-ID: <20260507234413.643512-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::330; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x330.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: 1778197838562154100 Content-Type: text/plain; charset="utf-8" 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 4ba263b225..3758bd19c2 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1563,6 +1563,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 20:37:28 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=1778197815; cv=none; d=zohomail.com; s=zohoarc; b=TxzFc4iO8yRbXJ+/m6w0YnTXyxAy/DuCtd+NBeWsanj/lPzZev7MRVYb9hfBZUqtTloTzIIEehFnZK64uLSDjgXFJ6CovxDCKjZyd/thYnyFCjKkEC/oa4fI0TWT5k2uhfDchvlvs9MiRiLKIB7kDcbjqLY6NrMnEPJcvkQO0ys= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197815; 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=iofCuUxrv6R6S77RADDQbkOhUsY0jTM8gW3WKAb19LM=; b=RtCOJt/GGO41pMv69DysOD5flGjwBcmgpoPnHT/2NJLhksQleOBwjnkzbVB4KgiDcs3wWPL2S7s++CzkyDAkDtN37v/HOAUZgVsbac5XA6bjo2xqEoK2nelH6TLL4TchAO8MOX53SKospgWNkZbWt57KyzJp6zVKgUNFQaEaFqA= 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 1778197815676799.5420181790327; Thu, 7 May 2026 16:50:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OT-0000Ot-At; Thu, 07 May 2026 19:44: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 1wL8OQ-0000Ll-6W for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:34 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OO-00014X-HV for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:33 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7de4a9cb8eeso1232849a34.0 for ; Thu, 07 May 2026 16:44:32 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197471; x=1778802271; 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=iofCuUxrv6R6S77RADDQbkOhUsY0jTM8gW3WKAb19LM=; b=MPQznC7yr8wtazVNeOCxnNuZW/m3T77sYUcBSxCExhz9SvPYglwvNNBzFow5zqc40O nn7dXHwJBQB5lQHkB9inFbNb0AMHzwMJnRsN23D9btD44aj0lDsX0LPaFeFYsSZZM/hC mwgtQH77/fDmnaPBTSDlVD6NlSrxwPXUvaskcmCs7muU0+E49A08fNACdS7tVQuOmDF4 yxus5INt4kNj9fOw+J40poANuPlW6DHPqcwIMHQaoDOli6Tjb64IzdUSwWo0ErjG3IjY KByQcT8NdBaZ6E7TUKAT4mLUklcLojdc8YbpQbQzce6vFoTxC757rmEwB4CkZ37RjA+O w/Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197471; x=1778802271; 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=iofCuUxrv6R6S77RADDQbkOhUsY0jTM8gW3WKAb19LM=; b=NRuLp+FbicCHoeiKq3V9LVIUf/BqFT30KS+T7tSV8hbfUwrCzhYTz8PDHgMrNz354S 4gDY98Vzrpa+U4xitozDXnAD7/slD0pJHQ7R1ffelPbcruqOiJg1P3aLrZryCxjS2+FJ nx61br4VhB3x/VrUUlWBcyJoBoQHpjoKAt4gxqdWSefabXR2di04cW3Fl0euvzjXnHYH cR/WvvDclny0p/GDm+BZh/9YItfPYofqaP22fNgbZCJ0rClDFttI7nekbInf4m42j5vN mZpF2Vmh0/reUb7uuB3oEGk0KFZTTMkFRSGhFRpIxUXX782S/Yb7aKGpywddX8NPrEcn 4ucA== X-Gm-Message-State: AOJu0YztYx5zB5nQ8lmkamq/9k+YqXJZ1FfHyvjXPqjhkQVhpL4ugH+M l8KpD7RiyFbjhdYMQyWy2J5md80MBPPoDY1Bzqfwx1lPJh8t50VlnD2A9n/Gdyti0brWlw7J/Wl 3Vaqo X-Gm-Gg: AeBDieu01ajgLsykCE6f1/4bpxrGcS74P2PAdQNfuelJNfzcKAYt1ouD9uIsrYKLtj1 mZWCf0wrqNaA7sis8hCqZp12ykIFKbu9/0lw0YZujXo3kKC5AM+lX8TJBDpzXmRuFWUwfJKNbMO J0diC4ok0tgJZ51EKL+cZ0DytHGBEIIpcw150gQj32TAKbuYf667qvedymGTAtUJYeJZ8PQ3SKj ugt9rG/LTfMV7fmEQLOEDW8p89CPzlnb78mqxX2JNfSQqAisYKzfy1BTj1jTXCsRQE9YQ0lyp5H mjU41HCMf7e3zJT5VyUWeoMSaRGe9zmExaO5IFHByuj4wjdn+ki7j/BzvEJ+EbrzTkVNgcIxUFY AQhZ20aDF1JBo/951iJGqRDVhw1zNGz1HV4kdA1t1rTndV46rM2Cyn8hOBSPsLxpXpLYggXY2yJ hrhm3lpFQ9H/LkBd0Yex0P/lRpzzncPlM5CJM0DysAQRhmng== X-Received: by 2002:a05:6830:3110:b0:7dc:c7aa:22bd with SMTP id 46e09a7af769-7e1deec720emr6759146a34.6.1778197471257; Thu, 07 May 2026 16:44:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 18/60] target/arm: Implement FSCALE for AdvSIMD Date: Thu, 7 May 2026 18:43:31 -0500 Message-ID: <20260507234413.643512-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32e; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32e.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: 1778197818286154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-a64-defs.h | 4 ++++ target/arm/tcg/vec_internal.h | 4 ++++ target/arm/tcg/translate-a64.c | 7 +++++++ target/arm/tcg/vec_helper64.c | 16 ++++++++++++++++ target/arm/tcg/a64.decode | 3 +++ 5 files changed, 34 insertions(+) diff --git a/target/arm/tcg/helper-a64-defs.h b/target/arm/tcg/helper-a64-d= efs.h index 215df1201b..b7880f773e 100644 --- a/target/arm/tcg/helper-a64-defs.h +++ b/target/arm/tcg/helper-a64-defs.h @@ -152,6 +152,10 @@ DEF_HELPER_FLAGS_5(gvec_famin_s, TCG_CALL_NO_RWG, void= , ptr, ptr, ptr, fpst, i32 DEF_HELPER_FLAGS_5(gvec_famax_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) DEF_HELPER_FLAGS_5(gvec_famin_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) =20 +DEF_HELPER_FLAGS_5(gvec_fscale_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fp= st, i32) +DEF_HELPER_FLAGS_5(gvec_fscale_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fp= st, i32) +DEF_HELPER_FLAGS_5(gvec_fscale_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fp= st, i32) + #ifndef CONFIG_USER_ONLY DEF_HELPER_2(exception_return, void, env, i64) #endif diff --git a/target/arm/tcg/vec_internal.h b/target/arm/tcg/vec_internal.h index cc2691b2f6..68b1116171 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -345,6 +345,10 @@ float32 float32_famin(float32, float32, float_status *= ); float64 float64_famax(float64, float64, float_status *); float64 float64_famin(float64, float64, float_status *); =20 +#define float16_fscale float16_scalbn +#define float32_fscale float32_scalbn +float64 float64_fscale(float64, int64_t, float_status *); + /* * Decode helper functions for predicate as counter. */ diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index d2a4b0fadc..ac18ceeeab 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6496,6 +6496,13 @@ static gen_helper_gvec_3_ptr * const f_vector_famin[= 3] =3D { }; TRANS_FEAT(FAMIN, aa64_faminmax, do_fp3_vector, a, 0, f_vector_famin) =20 +static gen_helper_gvec_3_ptr * const f_vector_fscale[3] =3D { + gen_helper_gvec_fscale_h, + gen_helper_gvec_fscale_s, + gen_helper_gvec_fscale_d, +}; +TRANS_FEAT(FSCALE, aa64_f8cvt, do_fp3_vector, a, 0, f_vector_fscale) + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c index b5ad67b5e0..5479d98daf 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -175,3 +175,19 @@ DO_3OP(gvec_famax_s, float32_famax, float32) DO_3OP(gvec_famin_s, float32_famin, float32) DO_3OP(gvec_famax_d, float64_famax, float64) DO_3OP(gvec_famin_d, float64_famin, float64) + +float64 float64_fscale(float64 n, int64_t m, float_status *s) +{ + /* + * Given the 'int' parameter of float64_scalbn, we have to saturate + * the 'int64_t' parameter of the operation to some value. Since + * float64 has an 11-bit exponent, saturating to 12 bits is sufficient + * to ensure that DBL_TRUE_MIN can be made to overflow. + */ + int sat_m =3D MIN(MAX(m, -0xfff), 0xfff); + return float64_scalbn(n, sat_m, s); +} + +DO_3OP(gvec_fscale_h, float16_fscale, int16_t) +DO_3OP(gvec_fscale_s, float32_fscale, int32_t) +DO_3OP(gvec_fscale_d, float64_fscale, int64_t) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 666a293540..02c7264cb9 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1198,6 +1198,9 @@ FAMAX 0.00 1110 1.1 ..... 11011 1 ..... ...= .. @qrrr_sd FAMIN 0.10 1110 110 ..... 00011 1 ..... ..... @qrrr_h FAMIN 0.10 1110 1.1 ..... 11011 1 ..... ..... @qrrr_sd =20 +FSCALE 0.10 1110 110 ..... 00111 1 ..... ..... @qrrr_h +FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ..... @qrrr_sd + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197781; cv=none; d=zohomail.com; s=zohoarc; b=EhulSAU1GPnIH4o41aOwDErZhFhfW1RKQHOMIh+VPwr+A8drlaDr/xXWAS+dJ/bNqVJRKj/1Yg3+utlAOPGl7VekscweNqZeGcuRo3hKbZt3fNbQNXiwh5qZL7aGG13hDSbURx0r5GxRAjrNU5ti60l+M3iyI+gxGZYKM/17VK0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197781; 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=41jFupCrOnfRrp2KPzJTTimux6d6EL/qwchp3PGm3Qw=; b=gCGO/EeIaQ6VdciOHX3kNtShl38aVqu5GPWw9889m3U6ri9f0P5u2fwHI1wFeThO50LJ+xb51djVIN8MoccXeNRBtDjnr2yLdK1b5KfProwoKmSFJiEL13NGnEXHkO0S5rBStRBqOVDuCxVtkL5L2wWRwe160NHR6W/ekFXfbf8= 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 1778197781787811.611767235042; Thu, 7 May 2026 16:49:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OV-0000QD-Eg; Thu, 07 May 2026 19:44:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8OR-0000NT-UN for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:35 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OP-00014z-Vm for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:35 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7dcdd1b492eso1234751a34.1 for ; Thu, 07 May 2026 16:44:33 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197472; x=1778802272; 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=41jFupCrOnfRrp2KPzJTTimux6d6EL/qwchp3PGm3Qw=; b=S9m5O8VMV5B2D76KJDFD61+3VWz5qjz9EqWzfLWIsMcp+yfZox5dc3UnLN/l4qQC5/ NUnHwryy7VMqqXkK29ojWqNOLkquq0iQbuWqpYjS+lOQCMQdrr02t0izIzfqcdTHZd3a a1ZSEBOlxp6Itq0DdeJ2/lR/w41K10E6ox4KVucJXzV6pya6xV9u2rXZQnBemMpjEncZ MytQ4EJid10DTnrQFVylwvw11VOOG1agsi+V5ihWqYwWP0RbYOv26giMHtcZcTFVsiZe hg/lWV7FKmSOM5db+WJmgJErL3SgzE674ySoqYXVBUqddpou/IAkSWFMCs5vEPf6smDN XlQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197472; x=1778802272; 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=41jFupCrOnfRrp2KPzJTTimux6d6EL/qwchp3PGm3Qw=; b=bvLiGwndT4CnfOTB7umwutDzrR7ZCyZ+LBy2uW1fqFK/h+U161vN6D3b6Qf1qAMo1A d+qCs4sGaQSOfZBP+feRspuOgQ9lzXEb3xM8vOKUvSo7GcDcF2vmJoJWB3G03gsGDuxd QRObtgwopD0ZZbUcdRULr3g1vK3VSXXXqNmVzbNwK415djGB3wP3AYhace9oaSDp/fKd p/6qVo/azoNSJmi8iYVcy8UPOCHIHdApoPoCLGOUm9OClWRhX4A+DEndMQiMXwXlPnLI lQgOuN7E1qKCB6Kub6j5hIm6PmrGVYx9b01om3+eQNh9aC9oInvzCY5H5dj3JD6ivolJ qJDg== X-Gm-Message-State: AOJu0YwhAiXfavRBFZfhjRwv6u46l5fSaMqWrzylpBxrCZ7JZJ9r33am jFs9kS96/0Ij34CbDVkUJtpXP2b0FtvZ+Cu7kOpprr9aToyZF756hpIYUgQQoTfJpfN/9Dq1g+y tuSCT X-Gm-Gg: AeBDieu65K/N3tXGM7Bcs3Jp8Ca8hedCTEBl10S774UE34IhS5A4u++HwU40/MW0tVr IBsUqkgvxAKI7MQL1ryN0EYZZFSzpc4TYMrhNSVKDhN4O51+U78KYGQUvbw0JMOj1e87GHaajTW Q0tJhBJaDfIEuMb9OtXx4lGfhZc8ZSyuZDLEQ0Hm1H7VNX7jOfGt3ceYB0B/nXJTLBnQbR4jLcx OISvs9GzaCMg+TgiCS0DSTbpHtEgd2uJKAyEM9U+p/HrGGfRc1TNpUR2iWDDCb6HPkAKd6NWfrk sbZYleqAXrZJZuAW1vzOsh1hn9PFp5xcoGoTuiYcuCfebwdEd9UnFC7hSNrLou/9ztf5gKUPsT7 38CUtvzP3sYfpUfRgMKbhSOLN5M8u/XJsUXwEFwBJ4JbXLlJnR8Kpt5ZE0rHfV092dr83K6s7mo D3E2eFZ3fEP6VdJF1zwE4jgSpP+RzlfYRZh3ZoPvtQBtYebvnEOSGeGevk X-Received: by 2002:a05:6830:6119:b0:7dc:cb0d:9e02 with SMTP id 46e09a7af769-7e1fd20c072mr1122671a34.9.1778197472508; Thu, 07 May 2026 16:44:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 19/60] target/arm: Implement FSCALE for SME Date: Thu, 7 May 2026 18:43:32 -0500 Message-ID: <20260507234413.643512-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32a; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32a.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: 1778197782527158500 Content-Type: text/plain; charset="utf-8" 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 3758bd19c2..69bc9bf6c7 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1616,6 +1616,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 20:37:28 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=1778197729; cv=none; d=zohomail.com; s=zohoarc; b=N1UyDVQrDEJvXiio3A1jHmoiWLBDmm2itkJfKybUa5JzririFnYX69sN06AWeDwcKi7S8wGuj4RyGJDS4MBX/UpoU7n0vXwZfzlVl/TBLolmTpMiQEK4hnoDzr/RSX1fAS1f8UYP41aA0yyHAacG8PNQrClJ4H4yuK7iHkEHIpw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197729; 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=nhUX5xUOMWRVB1/C63w1PD2bSynvzORWNQ1wKLfP1/g=; b=UI09WuGhjNb3QdzR5f/FHFp/DWY6bXPrh4gKZ7w/73KzSCnIr26/haN95smb6K4jlQRfF9a+RkhEcmZiWQR8pYSi8G/tuzgOXRgQSw+6rKUL0uRd6Tizxye+8exrQgW6bP2nT/h/l3b+eO/S8NNlBffob5RePAs4PTiVPOdWS5Y= 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 1778197728993103.35120417113808; Thu, 7 May 2026 16:48:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OW-0000R3-1l; Thu, 07 May 2026 19:44:40 -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 1wL8OS-0000Ni-Cg for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:36 -0400 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OQ-00015N-He for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:36 -0400 Received: by mail-ot1-x336.google.com with SMTP id 46e09a7af769-7dca4debedaso1461298a34.2 for ; Thu, 07 May 2026 16:44:34 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197473; x=1778802273; 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=nhUX5xUOMWRVB1/C63w1PD2bSynvzORWNQ1wKLfP1/g=; b=lI0eHRyxXT1uyC3E8YL6NbHYc71EgSZVlwyaUaHDp9egYOxrwWiKgHdSloJloNsktu sU21XF887gyIuEJH51r761ww+xq6CT6If9jUMy7ytypXDNf+C0wF4AlJJWM2kTrKOovk BghNVwasDGyd/0sk49PKTOzS9efiDJz5hW6jKAGWtloJF1jMP4uUeKYjSrAMthKt6leV yTVfyGAOgc/NESK76JtVIKRwr3eu8o9i0b3X3TGpcwE9kRP2wofmu1+NP2avEJuWCqTT fMrIsS3gQ9qDTW8z+HqnweGyXJrdMdeKRecKTr1OKVkQ61pqIDhF2GIYR5sMoxp6diRP DadQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197473; x=1778802273; 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=nhUX5xUOMWRVB1/C63w1PD2bSynvzORWNQ1wKLfP1/g=; b=oMW7XOFtA/uGHydBRDY8u7CeIGGPtIXl51reNSH9HARLtSyPEImKjo/K1mZcwlSoR5 06C7NsfxSX/n+RiU8jmIC+zKs4tSz8/qB1GT8UYbBQb3wGuY4C0TBD9oGOMcLfFuuiZ7 ur2xBSroF6xjsXmnncueKLWQxU13spkRWwAGmerQSlbaKRNbDAf/99W3a1Yn2Fo8Ii1v hllxHW+MU12yr3H3KLeqjE/vwASsK27QKUA/XDHFnPkotksvacbFtMeLeGcOr4tY3NJX kFe8qUtDfmkXoSUNqOgzi0B2vBOHQbDmEzKQvhwZgdE1RuNI667w/ojETQ742EoaLzaJ zHjQ== X-Gm-Message-State: AOJu0Yxyl4/aIQs++JdBnaNqWZ+SBnh3VSs7C2tp+FUSYNgzO9Rb2vZQ qHfeR99FDLb5/H2rhk7wL/nkuC3nqG6bVg1jLiPhaeqfjqSmjk9uwPDZ0Kw5d5AhzE93GIszc2w ylw25 X-Gm-Gg: AeBDieupe3l3onRMcRsqR9aIY2Xe2oIrqv0xjO1AlR6C718Ie0j24rJieEnejbkPHTn k7TQMpB9mMdAUuEJ66ExQX4q9tjcXmCKIRSpnOIGD4ODpXBBIk3975dHG9TmXJXurV2qblXMmFq BasINPHfo3xu/vznyn7zMZKpJ53YCPubcDc7YnKPkv+xK0fnpYkRgb7tbY0Agi5Tizxuv9nnXdB lum3LY7+mivaqj8FpTADiwzunLWxSl37B0n1FsfYelalan4QUVd2P0YIZ5+PSmnxvssUocApIbw yTaU+iETTYpVdN2oaBwmEHemjUI7Q2Oon7i7dMEfvM20FD19TsWnXf0Qs/QU0ylt3aTiZAJfTml ++ik6S+WJspWSwNHyE/x4T3JMLarXRFVJcQt6JqwnVEYYdR3twlStIO8C97THV69kJq7N0G7kju 5dq4wivRLqs0qpJ+czUsIwHOO/abKoLQy4twKSgR9AJkxKWQ== X-Received: by 2002:a05:6830:6d46:b0:7dc:da80:42c3 with SMTP id 46e09a7af769-7e1deec854emr6376663a34.1.1778197473410; Thu, 07 May 2026 16:44:33 -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 v4 20/60] target/arm: Split vector-type.h from cpu.h Date: Thu, 7 May 2026 18:43:33 -0500 Message-ID: <20260507234413.643512-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::336; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x336.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: 1778197731066154100 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 24707ac085..5c98a07f70 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -34,6 +34,7 @@ #include "target/arm/gtimer.h" #include "target/arm/cpu-sysregs.h" #include "target/arm/mmuidx.h" +#include "target/arm/vector-type.h" =20 #define EXCP_UDEF 1 /* undefined instruction */ #define EXCP_SWI 2 /* software interrupt */ @@ -139,43 +140,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 20:37:28 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=1778197775; cv=none; d=zohomail.com; s=zohoarc; b=bcP27MG6jRz21LYp3b0VJUm2H+hmOAn1++kehpP2QDGlY8ui0AF3fNTg4frP9NlFvhhhTEuvKkVDB7/1XhlW343RyS6jD3yhEY73y6LxaI97IW4bsg5X0rgwvue1X33Gf7BL/BQCALIraQL+7AR3HGa8TX1TLYiehtlfSIIvRR0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197775; 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=zWru1QCIwOGhRVfqONB531T6JUAP9Yz4VcrPsm570nM=; b=aupZceybcDc2bTzJtpJo9wXwZpWj/Ub9/U5mio5cg2iJBcA67rMM6hifGTEq5SXAmhuc3Wt1/v8tDyBNBdjWF3XyrufArBSFkvIcYYLHsk1/tTbVuepg6BKgfX3sY1mNZqelENQJvS+mlp/q6SGHubsEQjRcvajbX4gsnXDjEo0= 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 1778197775897467.3355591565431; Thu, 7 May 2026 16:49:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OV-0000Qe-Lv; Thu, 07 May 2026 19:44:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8OT-0000Oc-0i for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:37 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OR-00015l-BU for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:36 -0400 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7dcdd23fcdfso833318a34.3 for ; Thu, 07 May 2026 16:44:34 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197474; x=1778802274; 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=zWru1QCIwOGhRVfqONB531T6JUAP9Yz4VcrPsm570nM=; b=N60e+rhs64XQOAfjXQeI7o9bTGr9rQBK4IzRCD/8pmayjWY9NishpVc9DVYhYnysu/ qndCciYIiz215BD4TQpxmllSZBzzuicXOUpMfYY97+65bBMotee1rFOajU/qHTZRuTW0 JN9RCAfCmr8CXpvdfPvWsut41ThcoW2Q9U7KQ+NkIVkMySrsdpM9rehPqRs8vtrWsNhE sT6UzIjBzYcI81xhuZw1Pg4T1XM/7qrS9vtNHDQTSi7HATmAKoL7SPtCiPYjta2/0QDh e0/CPqwrUrq9hiTfkngaBdtwkF5cOR2pB2adpUC3aU1OcbWhGIFBUvbxcG0p+FtrxPBz zC3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197474; x=1778802274; 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=zWru1QCIwOGhRVfqONB531T6JUAP9Yz4VcrPsm570nM=; b=CM8fGOfk+MouDdHfZc/KtF79qha3vse5YNiGtF0doPCFhyIcB4xbOqG3SN5Mc1GPVe hiiJER5yr6Aa3b808PYKzVJc+kcxi9DW5HyfkVIS8ByLBeVm0ZL+ufh2PjK7bUZ7NDtX WHah4sS50fc9PllrB5tsXiFz5OFbd/YUF/3gY2ikjWAuKieuS6D93p4MQzpeEguERn4t Kp0RVlYx1DPAYZCqJFuJfUw5tqjKuEdldKR8CdivcJcP53cb3723bhoBTnCQnLFyYrPL B899O2B6cugtX8q3pJMw54s07tyGnzirLYdJopxB+U0GZadrTSPNmNHvOj9uVOghiKXf GWvg== X-Gm-Message-State: AOJu0Yy6zLDDU3mLjvHfK6N7u3kgPXUqF9s14XSs6B4oTQgc5CZIAoSh WgiHrCArNfTOxr6W6JHi0EirP/eC5CvtVcemg1Bi9kTuIUoABAE8E130aegZJ0/QpYQ5pqEGQOX UaPar X-Gm-Gg: AeBDietCno2/b7pGNJQm5Tp6o3osL9iJwcQjebZkpLy/Ucudtxsj2JOlH+2cfqUVfKC Y8z9OrNklGh7bToP676IVn8jli3uy96d+93io2DWKxrvq6ITTpcMv1h2ykP4JmCDL963kE83rcF IHj0xTMpvMBr60Swt6IHFsWsV9WNK3GC0ExRewysISgFQp2QqLu4UXUCBgWJ6cOg1sIJrbOCnLD xU1X2dbmYgdcgBJR8dnEgMvEHZToj5adCNerbQge6C3MCcYlicxWSQO6XiT+BNBEewLTaZQrwI8 aAh6wfMw6lIO5NHk7Uav7P5TQ0r3toWcx8n/M7Y0WwoPqxZzl3eq5jjuf/kNaFQqylg6p+W/13C X0jxYKZ1mScR63zCdAjywzCDUb3mzt3TQWyHSbrzju95ks7ES5jzwMMPXpKiTU5QzlZRRyHK7qd FAoaLw1N4n+Z2JBE2nWU2Osy1FWAneYE/Y2PGtjOVx8IYHcdbyYqCJ2CB+ X-Received: by 2002:a05:6830:b82:b0:7d7:e6cb:836f with SMTP id 46e09a7af769-7e1df02641bmr6481206a34.19.1778197474276; Thu, 07 May 2026 16:44:34 -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 v4 21/60] target/arm: Move vectors_overlap to vec_internal.h Date: Thu, 7 May 2026 18:43:34 -0500 Message-ID: <20260507234413.643512-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32b; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32b.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: 1778197777679154100 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 68b1116171..b906d2a2e6 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 @@ -457,6 +458,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 16b96890cc..7ef6f5d71b 100644 --- a/target/arm/tcg/sme_helper.c +++ b/target/arm/tcg/sme_helper.c @@ -34,12 +34,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 20:37:28 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=1778197800; cv=none; d=zohomail.com; s=zohoarc; b=kz0Xj/raN/Dg24ONuMijkBGp7hd0wRUuDPeJPAwWTkXTCvTmc40xH32enU4J9tb8baX/FgoBsHGcSL1IeRdOJjNe5fWF5YyPy0+fYWqitxx2l+lsZ9XrxA5P0gJpY8re95Wy81yC28XjaG6nLyzDB29Wh2m2qzQFipEhRKC8Xbw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197800; 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=TSBFCaQ/FzZ2EJFRAwhSYWznbxEVEf4wc9Dmae+R1i8=; b=XdGdTyGSMV0eeToJBMDJQgzjVoO31dN9aNlIzNzBIMAOiPLUyoQoaDNAVIpuObK5VI52k9A7wq9KVB5zuRVs4x1FYpo3TdQy/n9iIHzh7qVaMceAfOV6+wM9dKKiIoRSmopxcNnQP/OUAYjTpWmmKY5+BZybUjAlvC8eCdIJiTU= 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 1778197800803545.5577516575161; Thu, 7 May 2026 16:50:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OX-0000Ts-Vo; Thu, 07 May 2026 19:44: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 1wL8OU-0000Pl-Kh for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:38 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OS-000166-8h for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:38 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dbd23bc684so908807a34.2 for ; Thu, 07 May 2026 16:44:35 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197475; x=1778802275; 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=TSBFCaQ/FzZ2EJFRAwhSYWznbxEVEf4wc9Dmae+R1i8=; b=dEpsVfqPHX63FVyMmxkPGigb1TycGahDCISXW26s7wjjSksFO8ITfK/M5ZCGwRA2mX CjrQAi0rdsSwkOc4VYb6UqoOnJNMGNUDKLRPV5ADwh0g2nnETsgHvLhwkGl/4/Pdg5sx sj/lRURCsfsw1sO5+DSlDDyd4XFQrVnxhNFRLyl1cp9jOb+Ug62LK4k2ZA2FYc8UkkTo M3bl+o7Vs9wM6fMsDKsfNyxK7Kn527WaTQnMmT+H8SyBsYa2y8bD0Ml+oCHSCdimeSUD jRf8jdR1QUhrHEish/betPdqZtyrdhw5f1IGuxQ5gC+6Z6TYl6KYXlY5mUSWgk80qRy7 pIow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197475; x=1778802275; 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=TSBFCaQ/FzZ2EJFRAwhSYWznbxEVEf4wc9Dmae+R1i8=; b=LsS2PnC4FByaAIS6kdYiG5d6KHi8Vm8H6M/1Q5iWIUtkuievHimd35LnpJwAP4RPz9 QsxZ+UlCnZicDV/cTLr095Zr/ZJMmLwwEaM/CR2k0YurSqYTOPdgJbYAZ5jOnMaQNzvZ /03rlClmkUan8RuyhHFifcGv8yGOAhuyiOdq/P26U+F9WJdte+iE/TI8gWwPGeaxHTVJ /E0tJMvOBhPSSvTGQpWEU5EZt2rJm5J1KjU9KrwNRQpZyNkMoIWohFwfl8I4jn6MLr/p Uy/PO921MxrNBsINE+9fo4/JlVM5rq3dQkNTPomHkEedzx865KasIPSdZtR+23L/UwkY 3nLQ== X-Gm-Message-State: AOJu0YwvOeWMIHGr89TTLjRwOwkxfzk52L77Zd9k3Roei23OlexRyxCB bDLqZRoltx6LAfhgBpZm2rr7glp/Mn03F/zSickX88Ejxw8WREPYxpeoxFs3+ypxRXCRTzwo2zk 8Fg6v X-Gm-Gg: AeBDiesc40ue12LW8CSEKKGFW0VkCU8jlCNome3x8VMkcznPJOpallkCxjRB5qfM/4A +f3sRpTZJAtwFj7odoNRBiTrRlNCDsdG0+InDPq+bsxW+ARaO660Ajr/8Pgg1AbnDyfIKBMj6kM v5wj2etuwlCPsa17DyWwC4pVJnj1J+VfcKDPsARHdde30WGlKZ/qJEVrcn3BbHLk9LgvXLBGoh0 uF/UnalJ7gMvNYpHJYqctnW/aMSVzkjL07lklzKROJmF8HoR9yg68c1bct44Rfzmpndq4WBhKLq PrwBlxq/RbJOWzoKzhMMFSLVrmj0qitnsq1q0Mp5FwrqSyCyIJHC80I9rizYEB9saGp0VQoiqdC oQR4NSAbP05ZhhPRP0ovK446Hdl7b5Ky69XMQTpE5guVey1LQQO/vEfcdez8lEIJ/xY/LB+vzWp zaW+W3z36MDqbWK7ryIbGjfsC8ZMS0QcCjKLmcoUS4iOc99g== X-Received: by 2002:a05:6830:3592:b0:7db:b5c9:2d87 with SMTP id 46e09a7af769-7e1def36698mr6491350a34.11.1778197475057; Thu, 07 May 2026 16:44:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 22/60] target/arm: Implement BF1CVTL, BF1CVTL2, BF2CVTL, BF2CVTL2 for AdvSIMD Date: Thu, 7 May 2026 18:43:35 -0500 Message-ID: <20260507234413.643512-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::329; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x329.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: 1778197802722158500 Content-Type: text/plain; charset="utf-8" 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 | 126 +++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 34 +++++++++ target/arm/tcg/a64.decode | 3 + target/arm/tcg/meson.build | 1 + 7 files changed, 185 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..7c8c4d6e06 --- /dev/null +++ b/target/arm/tcg/fp8_helper.c @@ -0,0 +1,126 @@ +/* + * 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, + Unsupp2 =3D 2, + Unsupp3 =3D 3, + Unsupp4 =3D 4, + Unsupp5 =3D 5, + Unsupp6 =3D 6, + Unsupp7 =3D 7, +} 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_finish(CPUARMState *env, FP8Context *c) +{ + int new_flags =3D get_float_exception_flags(&c->stat); + + new_flags &=3D ~float_flag_input_denormal_used; + float_raise(new_flags, &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); +} + + +static FloatParts64 fp8_invalid_input(uint8_t x, float_status *s) +{ + /* + * Invalid input format is treated as snan, then one of the uses + * will convert to default nan and raise invalid. + */ + float_raise(float_flag_invalid | float_flag_invalid_snan, s); + return parts64_default_nan(s); +} + +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_finish(env, &ctx); + clear_tail(vd, 16, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index ac18ceeeab..085e7e3b95 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -22,6 +22,7 @@ #include "helper-a64.h" #include "helper-sme.h" #include "helper-sve.h" +#include "helper-fp8.h" #include "translate.h" #include "translate-a64.h" #include "tcg/tcg-op.h" @@ -1457,6 +1458,24 @@ static bool fp_access_check(DisasContext *s) return fp_access_check_only(s) && nonstreaming_check(s); } =20 +/* + * Check that FPMR access is enabled, for an indirect reference by a + * vector instruction. See CheckFPMREnabled(). + */ +bool fpmr_access_check(DisasContext *s) +{ + if (s->fpmr_el) { + /* + * While denied direct access to the FPMR raises SystemRegisterTrap + * and targets a specific EL, denied indirect access to the FPMR + * results in a simple UNDEFINED to the default exception level. + */ + unallocated_encoding(s); + return false; + } + return true; +} + /* * Return <0 for non-supported element sizes, with MO_16 controlled by * FEAT_FP16; return 0 for fp disabled; otherwise return >0 for success. @@ -10612,6 +10631,21 @@ static bool trans_FCVTL_v(DisasContext *s, arg_qrr= _e *a) return true; } =20 +static bool do_f8cvt(DisasContext *s, arg_qrr_e *a, + gen_helper_gvec_2_ptr *fn, bool issrc2) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_2_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + tcg_env, 16, vec_full_reg_size(s), + issrc2 | (a->q << 1) | (FPST_A64 << 2), fn); + } + return true; +} + +TRANS_FEAT(BF1CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, fa= lse) +TRANS_FEAT(BF2CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, tr= ue) + static bool trans_OK(DisasContext *s, arg_OK *a) { return true; diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 02c7264cb9..b7aac148f2 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1910,6 +1910,9 @@ URSQRTE_v 0.10 1110 101 00001 11001 0 ..... ...= .. @qrr_s =20 FCVTL_v 0.00 1110 0.1 00001 01111 0 ..... ..... @qrr_sd =20 +BF1CVTL 0.10 1110 101 00001 01111 0 ..... ..... @qrr_h +BF2CVTL 0.10 1110 111 00001 01111 0 ..... ..... @qrr_h + &fcvt_q rd rn esz q shift @fcvtq_h . q:1 . ...... 001 .... ...... rn:5 rd:5 \ &fcvt_q esz=3D1 shift=3D%fcvt_f_sh_h diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index d2364aa39c..56be383189 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 20:37:28 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=1778197781; cv=none; d=zohomail.com; s=zohoarc; b=Lq6e7r68+34DzfUTs02+DNzHWxLeocE9S0COpwHJBn2p8sgKylDvegUsRXijlX7HyKWpAGUFq1tIh8oXPnEJr3daeGlHE1b0iZ9cmZbo4pLUk3i55OW8/cOQyXBxHORagq98SHu8W9HC5uhEsa6EmOzQywoUYMS/t+CrKaQwoh4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197781; 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=xKBqONxm52VBArZwT9uhkb1pDktBeO75rrQXfZtKp08=; b=BqkML+QNGgaDY3Ma3wReSrbhZYhUdVXfTPNedz7vl4AkZIEW01dIOdMcKrwgu1KTuMhHYSwVnJSwheNd7hLWBh/KE2hl9zYDYRlblOnxHCYs37tHvw5o7S/qBjLp4+wstUWQv6ry/tTWSjZQB7UeTk0bWh1wA2WPrLewuijEIRM= 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 177819778131943.84970116100192; Thu, 7 May 2026 16:49:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8OY-0000UN-LS; Thu, 07 May 2026 19:44: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 1wL8OV-0000QC-CS for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:39 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OT-00016d-DJ for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:39 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7d4c383f2fcso1173721a34.0 for ; Thu, 07 May 2026 16:44:36 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197476; x=1778802276; 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=xKBqONxm52VBArZwT9uhkb1pDktBeO75rrQXfZtKp08=; b=rrhql2T83lGO5v5TjCAK1gy3cssZrxprIqLA46LZJ3Mg1wgpLd0GUbmKQbNSodgbUt cq8PSMZF/sKclSj5a+7x4q96nE4QA13eZmDa5lN0aLKNFP5sUEhN3wI63kjtpeTio682 R14UnT6lIZkeSlPr0r19lOrgoH+1kcODw3vyyK8tKqaslP/TeKdtF8bPWnrUQnXLQ7Hw ybZCSPSmEINBbD8kNHhmLttYu1fKMasasxTnHmh0UeEwFdOWvVjrW4/Nu251gi3gUtIz jWdetDfvtq6cy4H2xg6879stL+hQ9tXnrbCSvdpelwxcx4ebqKGovBcIhAWr7nF20CEz Hzcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197476; x=1778802276; 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=xKBqONxm52VBArZwT9uhkb1pDktBeO75rrQXfZtKp08=; b=LMZzadVqrIoovV9SWJC6YceFnwRBO33pwelPdHxCAL58ylEWyYspLrX53l6708ql/A Y9SVMpk+oTpbs5/fE75zpOTpvenPogaZq2lCYqyTOJgWzDdOgHMaYnY9rpHMKzzPHGi+ IPrfv5CaJYNbgLj/0XRhmYUIcTnHx71mVmT+gLfQVdTkPwEHnVT+Tuo3DF566lx4O6r0 Rju/ASCAq5oy7MK46HGkVET5qEhJo40/6jDHFQocOvl5i6YhZTrT1YNtRe0i0fyXLlhG zRR/CyWGrRh12BVC2+RbGsp+edpLYBDkvoLDcH7UGrtR47soLZ2mG2j4NuYBjp4NnZZA oLsA== X-Gm-Message-State: AOJu0YzPQybF7g9TRNGstItIYZ6h06b1UYzphD5SZWLEjXa04Y1wBrBh XFySn9pTDYE6tc7X22pcPvZC2xt/bEBBdj7JI9bTeyFvdCY6ZJb3oRta14rNwNV6sd0/YOI8EUA ZlKrW X-Gm-Gg: AeBDievT3hRM+3JNGSCWR95J4QKzlwb4F7yrJTpsvndV4Ua4VxIlWVnu/3qUb/NfjI8 RoMC5Y2x4V+hrX5clIzCJvMkdjiSjdfgIsGmZ8ALNVKgH0MowoDD4zOPvZBQDd46vSaKPNLKN/u ELfMivSYMBVqQD6QT8qqBME85BmzH+AJp2tFsCLB1FH2yuy5GCKVCnmWBakKllvYO+xYZTupq6F D6CJ4dlvDcE+z7/CSY3r9oap40b1QkvZf6XUi/AH1S0Ns+wFQNUJ3DdCEZLjrNJQNp64cTFTe5v UfGHaZ9BGp3zlvj+pC7aUtQeGkwBD7BSIObqmASxE7E4I10tQ/pdyY6D/OzPLvtqLMGiS1j+oSf 1HhhVyHxMHVDKvWEN17MRfQPJs172DF7R0tALto2rVTZ4nS12SgSkyGL97UVoCRfueuZ/oOOZk8 zi1rfBQNDhx4MhzNUnKJZy5Nvx4S8kP86nZQTTlrCPWtrnKQ== X-Received: by 2002:a05:6830:448e:b0:7d7:fac4:e359 with SMTP id 46e09a7af769-7e3668b1f19mr425798a34.27.1778197476159; Thu, 07 May 2026 16:44:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 23/60] target/arm: Implement BF1CVT, BF1CVTLT, BF2CVT, BF2CVTLT for SVE Date: Thu, 7 May 2026 18:43:36 -0500 Message-ID: <20260507234413.643512-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32e; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32e.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: 1778197783713154100 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 69bc9bf6c7..c1f092b690 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1637,6 +1637,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 7c8c4d6e06..ceb36bc926 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -124,3 +124,19 @@ void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) fp8_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_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index db32230595..9bab5feb93 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -21,6 +21,7 @@ #include "cpu.h" #include "helper-sme.h" #include "helper-sve.h" +#include "helper-fp8.h" #include "translate.h" #include "translate-a64.h" #include "tcg/tcg-op.h" @@ -4067,6 +4068,28 @@ TRANS_FEAT(FRSQRTE, aa64_sme_or_sve, gen_gvec_fpst_a= h_arg_zz, s->fpcr_ah && dc_isar_feature(aa64_rpres, s) ? frsqrte_rpres_fns[a->esz] : frsqrte_fns[a->esz], a, 0) =20 +static bool do_f8cvt(DisasContext *s, arg_rr_esz *a, + gen_helper_gvec_2_ptr *fn, bool issrc2, bool isodd) +{ + if (fpmr_access_check(s) && sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_2_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + tcg_env, vsz, vsz, + issrc2 | (isodd << 1) | (FPST_A64 << 2), fn); + } + return true; +} + +TRANS_FEAT(BF1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, false, false) +TRANS_FEAT(BF2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, true, false) +TRANS_FEAT(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, false, true) +TRANS_FEAT(BF2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, true, true) + /* *** SVE Floating Point Compare with Zero Group */ diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 078a085a79..e7984fa8e0 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -108,6 +108,7 @@ # Two operand @pd_pn ........ esz:2 .. .... ....... rn:4 . rd:4 &rr_esz @rd_rn ........ esz:2 ...... ...... rn:5 rd:5 &rr_esz +@rd_rn_e0 ........ .. ...... ...... rn:5 rd:5 &rr_esz es= z=3D0 @rd_rnx2 ........ ... ..... ...... ..... rd:5 &rr_esz rn= =3D%rn_ax2 =20 # Two operand with governing predicate, flags setting @@ -1090,6 +1091,11 @@ FMINQV 01100100 .. 010 111 101 ... ..... ..= ... @rd_pg_rn FRECPE 01100101 .. 001 110 001100 ..... ..... @rd_rn FRSQRTE 01100101 .. 001 111 001100 ..... ..... @rd_rn =20 +BF1CVT 01100101 00 001 000 001110 ..... ..... @rd_rn_e0 +BF2CVT 01100101 00 001 000 001111 ..... ..... @rd_rn_e0 +BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 +BF2CVTLT 01100101 00 001 001 001111 ..... ..... @rd_rn_e0 + ### SVE FP Compare with Zero Group =20 FCMGE_ppz0 01100101 .. 0100 00 001 ... ..... 0 .... @pd_pg_rn --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197721; cv=none; d=zohomail.com; s=zohoarc; b=AY3oWjeXH77SlCRoE3kxIgF8MkeKvPzLVX3lSF5rqfOcHEGLIMC6HVdRH9kF8nMwYm57GkdSp+C1dZBL7b9H2dhBQi0KBC7V8edKh0PRJ43cbw5wERtESy7FDgK6Hry7wjlRjc8g+qzoJeHv0F+uKOFvQI7TUJtr5q0UzU6vyeI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197721; 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=jLgm9UDQEHLrvYYVImCj/f7lgJUJBmTicj8qoBhaXM0=; b=S4q6nkDEfXQGHUPxCVEIQUBP9cmTIoWPv7K7bBFlz9j2+IkWuCVcBcMn69HXYSZw+cB4MbdIZYlfzh3TO+ZGo9Mju9PwRrHnKJmonDQrxtZCgDXDvbPN9Eeb7HjOqSmwnmp1JG0mrQJtlF630oddkTe086B0JNX0xHFLmcaGmRc= 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 1778197721535779.4407114241924; Thu, 7 May 2026 16:48:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Oc-0000WL-8v; Thu, 07 May 2026 19:44: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 1wL8OW-0000RG-1u for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:40 -0400 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OU-000173-BO for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:39 -0400 Received: by mail-ot1-x335.google.com with SMTP id 46e09a7af769-7dcd9061b1aso1234065a34.2 for ; Thu, 07 May 2026 16:44:37 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197477; x=1778802277; 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=jLgm9UDQEHLrvYYVImCj/f7lgJUJBmTicj8qoBhaXM0=; b=beoR1ndnyA61Q4hfCRsqGVAHch3rRGHkR1Bd655GYBMMxFf3jA7ihl+PQGK9v/lr/Q qMW4YBEejnv9CC5rGFc+WJ/5DLj0OfgO1+5t/9rsIy5QjT41BccF+AnKb4G2ul3QMVzs Jk8Q1jFNbekcXDB3OMpS1y0+BwCYW0b1eSGlq3avF36R3pKwLlvmDdZz0q6xt4JhctU+ ZJNh4VQxTiQLYu9iKGXLfsR+r8eucqc9mtcXwCC9SY4gNV9SQ4M4iI/U2D/rytAyIFyl gatQCqOEENDw5YdQOhLtxrHeA3LP7d0L3HW2giOmwOGjyAusk7z1peo/i1IvN4ohb6R0 JNvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197477; x=1778802277; 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=jLgm9UDQEHLrvYYVImCj/f7lgJUJBmTicj8qoBhaXM0=; b=nNcZlKn6eiat9pT+CbyAZip7Tcqt1GMUlpQJBpGARTcOH3bmRwliX8FKbSEXsC9bmA EaLtq1OwwTm0fCg1hpSd3FO69MEv4mV7lVaiE4c2CWCEUCON/hP/jdfEQkrYwMMKDMmo IbRqPf9hgur5ZepKXFQBTLHPNwIPbjWDzEG6RoSvdl8uBKhnXP3hPZuQwLFmtQTDXOrx Bf1rRiamCuvzWFhL1cyUTIbOEDzgyDyJ4ULyTSZa4TjIk6k/y6dXoj9HJku31m5esz8b BnE+N6uj2YisvZKmVXxQ41zxbBmICvgDjZWrYHpNbHX57qrXVS+Ot1071o707U7PT2SW 6WUg== X-Gm-Message-State: AOJu0YyFC/vyiqRIYBtNyYcOXnac5BNJd+omqz++aDj734Fmqd5GLEJZ FSkDW7jPP0/HHZcgxJBDtnlaXZXKGrPWBr+ADk+UD+hA7+LYIGMBlb4PRydfUyKf+FWZczBfuqL Zn6Bo X-Gm-Gg: AeBDiet1XaM7wvEn+dp4zJy3dZt6buu3zsb+LYU8FCUFCh8SLZ0y3I0kjyjHM2d0k84 bO2znG0fkO5L/MVpInRtwHNDz6dCPTEj290V9wj9SUWwDF1hf6JXD6Fd8LU6vCZ8H4/hVF8dy1I FbTgFHTxRUnIvzEvCs+jYWZia3+PMDc7tldYwqMsOjH6xM1AGiMB+CgB/h3cwFWUOf8p2RMqEo5 STyGr+iqfz/c62+u4FolNf0CqMoqr0fLQ7Sp4Xxr0rXycAdcP0HjN53CVoK31f4L2NiPT1Pf1Lm 4L0KrpPemAaJI3y9/ztKMv2sBlti5ZXPhrKJpJHPaGbE77N3E2u8TS5BcNdSkmIxvJjVoCkEuTO XZPsYHNVJgZqKMMXupbS1dPVoMoD4gaMo0d+1aL4J3vyHUmGurLXcpTHHzQMxkMzSBjEQCDr7l2 tC+taiq0rdSvWia+DiyqGR2jo0Sh2x9PC403mrQjbIPdVYQA== X-Received: by 2002:a05:6830:d13:b0:7d7:bf59:16df with SMTP id 46e09a7af769-7e1df0f5e22mr6697971a34.17.1778197477095; Thu, 07 May 2026 16:44:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 24/60] target/arm: Rename SME BFCVT patterns to BFCVT_hs Date: Thu, 7 May 2026 18:43:37 -0500 Message-ID: <20260507234413.643512-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::335; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x335.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: 1778197722802154100 Content-Type: text/plain; charset="utf-8" The existing pattern is BFCVT (single-precision to BFloat16). In preparation for introducing more insns of the same name, append the operand sizes. Signed-off-by: Richard Henderson --- 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 7ef6f5d71b..30355662d9 100644 --- a/target/arm/tcg/sme_helper.c +++ b/target/arm/tcg/sme_helper.c @@ -1726,7 +1726,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 20:37:28 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=1778197666; cv=none; d=zohomail.com; s=zohoarc; b=Yngpg1Udug5NOmBUNRtDGt2Fzc2d2Fpb10Ds12Q6VKEYx/HtNeTieuWA63pnuuNJ0ZqebiNi+HCp+dos8dZsdfQ5u2gH0GbS5T8sHMGk4eFU1WQ3GliE0ORfXXie97UeBdR4QaKFGw3mFSiIdn/eAumydcY/rGQ9Up0FOViSZS0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197666; 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=/3ZYczjBLknuUeNMVIXhQkwoCzh7YbfOFDsAqbQIrfk=; b=hpdlJJKNsJTg6ip+TQFP1v950fZsSZcAK0Kz9QvZxq9amaK/mSGbEE4ZeWgAP0ajhZHCupMjy5no3vQo7oH79fQEe4IN/tEJXmiIieSkZNmmMQ5CHZqXEBAe/ysPcEOK8pdGDVz8XyVYnwkSUyurcFD+4nC0rGFTvnjvmSnm5mk= 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 1778197666614971.5270710526577; Thu, 7 May 2026 16:47:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Ob-0000Ux-8D; Thu, 07 May 2026 19:44: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 1wL8OX-0000Sn-33 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:41 -0400 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OV-000182-9c for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:40 -0400 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7df05fc49e5so1465669a34.3 for ; Thu, 07 May 2026 16:44:38 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197478; x=1778802278; 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=/3ZYczjBLknuUeNMVIXhQkwoCzh7YbfOFDsAqbQIrfk=; b=UVuij7frX/fLLpYwNpddJ3g+u+To3vIs6rNMCKmQ0l8IjbXkQ0gByb5awAXL2az34Z U0mcuqW2TY83bMIBQTRiPLRPtmrCx3+F1hHsbxNihKBC9nVzLbdyHiMaDQCE6pcywQlH vWfK3yrZP5CfW9vwUxoe6LHbVV4MmTRFR47LJN+iostYk9ebgbdtTvmiI45vofOH5RGJ Q1GlW/dwQ07C+i5umZVd55Cp1YxMYKpMP+SZ5mDWlZ1QD/DAspO2F0IwuSeRGJA6kXkM qzCTAbcnSGEMKKDRENBlPqERSM+0DoCiYtYdJ8VCdliwxixglLg7pj/RoEsn9MDwGlAP YJFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197478; x=1778802278; 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=/3ZYczjBLknuUeNMVIXhQkwoCzh7YbfOFDsAqbQIrfk=; b=CRrXz47/RltVsMxSY08Eb9pNiEUPumxs13WA1VL2XSd3QqCt+3s2UCmjSmy8n/JJB/ cxDUKRVteqBsvrpPJETGwGCitNid9yYR1AnN22xAIpKS8YOSad4tUK2/MIQf2pG1EP4k YCMnPNcrilzllCUUQvXoxHOfNtmQavnsRboEMI2EUH6t8uhsNAk4IUK+wWudeFhEe4UF JxmpEECTdxAMcBqwkBSeo1uS+XGGHgDWS8WcphPKWjsiszKhUhLoQtQOOGiS62AJ+ldy 0hOXKSKCQ17DyoECWREWAw6pc15tPM3wKiQ98hS48pi3SipLvIfdCPzelfVhO2FpRRjY SZog== X-Gm-Message-State: AOJu0Yy3vWfYXdEPcNSvlTkefAwXxPf9pS2D1+AonmM2vJUPTjyEZST3 nsq41brA/c9RBWz5k0wu039sKog1OfA+3wSzQxXqOyjKrindUiklVRwr769Ra9ZzvVXWY9zKRtB 7e2CK X-Gm-Gg: AeBDieuXcYJMeCmnArFZvTTbdldTgMUwPft/3avk4q7cNodq/AR2Zj3RWsVJbrBqLwP zgjUt/qrkeY5Iyq4Lf/kKVEylM+vP7tsTovOQ2rons20llhM67us5fbioLDpZy3uRrlP2LEssye wmKyA6JPzubvmtX2RKdSc59qD+Lc/pyPLUMujHvHbK1Fgu1LdnG+j3QBZpmhpc1l3suDK2Pqkbb rLl4XA+ZPsCupW5LVCRGjzS0Lq7lFNalGO6UNui0GH5rNmQ4ASdhfo0s+8Sg94lj8h7pMXuwG7c naimLJc/XFPpRwIwIS8dk10g779lGL+5sTw9n0YybKy590m6k66Hr6Y7ZciyE4fT6fZInfwLPi7 DbLMqAEjP6ezMiegUo/Dh0G44uk1rxlcgwYQPrOWfM88y8PLGH5LBxIe4/PryIeb0VK4QOVwkRg N/kEWwnBwwgo5SiXnoStGMEIpy9eRTrwtXOjHn6Zg1MCyny5Rqe9xQzPL5 X-Received: by 2002:a05:6830:82bb:b0:7de:427d:34ba with SMTP id 46e09a7af769-7e1df16f061mr6452201a34.19.1778197478200; Thu, 07 May 2026 16:44:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 25/60] target/arm: Implement BF1CVT, BF1CVTL, BF2CVT, BF2CVTL for SME Date: Thu, 7 May 2026 18:43:38 -0500 Message-ID: <20260507234413.643512-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::334; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x334.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: 1778197668100154100 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 ceb36bc926..427ec4cc3d 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -140,3 +140,50 @@ void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMStat= e *env, uint32_t desc) =20 fp8_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_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_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 20:37:28 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=1778197717; cv=none; d=zohomail.com; s=zohoarc; b=ALGDiYlV1PBnKrot3Jl9pu2Q2WW90fFtNXRG+xiq+BYc8BPvFQAc+sDUClMt94w59pbIkZL/bbKDzvoV/hpbU/KaL7Z1Yoady18S/mWmiI1asflzOdQJ6WxXiCl6lSMYE1l/1j+GyJkTJ3EZUs/G412JGI1WbJTSaoOPtFC4A6A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197717; 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=EyDihk++nvpJZLlXLj5gCllh72gi4MxIIm3t/KhHqzc=; b=muOv6FY98zXq8sD+IvvFVoNotTita5b2UMNW7rKtulu/VrMoZNgs453FVmj8KLhxKkbCmLza+yp8YyBPY1ONfOEbLvRB+/Jvkn7an5MqK23U6RgfyND4sy91Uv7EI9LpmJVH8SfXC0X/mRq3AO9e7yRpCD2bzTVHO4z7d/9i3zE= 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 1778197717390738.0294002349248; Thu, 7 May 2026 16:48:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Ob-0000Uo-6A; Thu, 07 May 2026 19:44: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 1wL8OX-0000Tr-SR for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:41 -0400 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OW-00018U-6R for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:41 -0400 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7de46b8e432so1308247a34.1 for ; Thu, 07 May 2026 16:44:39 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197479; x=1778802279; 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=EyDihk++nvpJZLlXLj5gCllh72gi4MxIIm3t/KhHqzc=; b=WqehD04ap7nD3VVKr/Un1FSfheu1YJ7KQRbL8D58m1BRoGwP8m1Pw25pCD3tz1smGq a9gKWj5FKQxXJABk0s2RnXjXrtIg2Qlx3wVaaWrbi93rO1VQELwpPcMbEdrbfpV7ecuf gIVagdh9jFEwk98iBQlZKpRHMZsNcbk8IH4y9o8zY0sHzWBeH99Nb7viRBvuhnY3Wuma 9ze3/8s3LpEA3aMlmQC06M7yEElVhelv5wThnDKexwPdIsUSpqXgi1LIuMWktVXRsEC2 k2WQvRqWdJXWGWs752c8jLejqjGfzqa9j3Li4PFULjwH5XFbyTQs6lp/iKmYrxQDD9dN CoxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197479; x=1778802279; 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=EyDihk++nvpJZLlXLj5gCllh72gi4MxIIm3t/KhHqzc=; b=MkkdZPnEKpqjcq3cfr6wbhlOaXOvf6NvtkQ1sRDMOg6nuWOJx4H7/O6ryJtP/z/e8D wBTGP6shlb2PZe70IVN8sKjEngcwZFgydBw+pKxdVzdvDrnr8XqOn9b6RsSpl8Iqhipi 35beJzZvQE2ujUH+GY8+kP52knsa4C9Ohe+CoccKryLQtXXzmC7JhFYiVrGgqTKVNHjE 2PwY1K0MiSis7BaiFVOAkdZwVxPcQteMs+Y370/AvXdRi5UD/spP+4ZH8HYcQFjbF5AQ zLFrLCtEFfRIqAi1k+CrIjX/Onpdsip9xfbOO4I/Cul4WS6DIuCesk5MaXrNdKVwIf+d q0tg== X-Gm-Message-State: AOJu0YyH2i6Bgge8SSZaSPsc5plNd7op/8VNy9x9Z9Fp6R6UvXna0PzZ wxLOKEwuLNG3Y1CO+lwCc0Ftw8NJCyxVW54H2G8lwEp3wQ78j0FAp3dVp0lrN3TMZTtM0eG5WZW 02X8x X-Gm-Gg: AeBDiesveNwP9NIVJYd5l/ZNCcCh+I2k+UK++XwXam0Ll/tYSlXVhHHINRMPnQUOGjS VZnBtzJo3Z+CXMRMTMLb8R/v7h01xHNtdeswR1QfCgVy9zfIwt0Z/2HFC6Oen0MorHpc9O/+4Rx 2id4QhpEaAI3+D32GjJJdTur0slFXaZjWKzH5mt7rIU81IaIDBCgR0JZXhsC4BT+PzShj8wFzUr ic9jD/vG67QvUq8Q2RgSjKNgxvt5WSFQ3pRbFCiMHJvkjj2XdJU24BFtn0ZVt4wjE2bs3beNueo TSZqJngE1HDBhUH21OIeoJYv8YHIloOBCctL1mnGPM/gy2ORtopCPBs17+Yzxx8eVaaXHTDUaJG 6hgPLlCz7LKqSOli1Xjkm4PkUntbI45Ss6ywgmQDNEZJmBkcqXKxtNLwwMZAcFW7WwF170FgWw8 0ShycPjGnZwjeI0qJisPlUh4yyfiPuqUtlLp+k3ZcNBAfgb03Hq1fJc8S3 X-Received: by 2002:a05:6830:2b29:b0:7dd:72f:7fb6 with SMTP id 46e09a7af769-7e1df074314mr5982324a34.17.1778197478994; Thu, 07 May 2026 16:44:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 26/60] target/arm: Implement F1CVTL, F1CVTL2, F2CVTL, F2CVTL2 for AdvSIMD Date: Thu, 7 May 2026 18:43:39 -0500 Message-ID: <20260507234413.643512-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32d; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32d.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: 1778197718743154100 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 427ec4cc3d..90f17f9e10 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -105,6 +105,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); @@ -125,6 +133,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_finish(env, &ctx); + clear_tail(vd, 16, simd_maxsz(desc)); +} + void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMState *env, uint32_t des= c) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 085e7e3b95..565053a1a4 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10643,6 +10643,9 @@ static bool do_f8cvt(DisasContext *s, arg_qrr_e *a, return true; } =20 +TRANS_FEAT(F1CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_fcvtl_hb, f= alse) +TRANS_FEAT(F2CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_fcvtl_hb, t= rue) + TRANS_FEAT(BF1CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, fa= lse) TRANS_FEAT(BF2CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, tr= ue) =20 diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index b7aac148f2..26d31d0a33 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1910,6 +1910,9 @@ URSQRTE_v 0.10 1110 101 00001 11001 0 ..... ...= .. @qrr_s =20 FCVTL_v 0.00 1110 0.1 00001 01111 0 ..... ..... @qrr_sd =20 +F1CVTL 0.10 1110 001 00001 01111 0 ..... ..... @qrr_h +F2CVTL 0.10 1110 011 00001 01111 0 ..... ..... @qrr_h + BF1CVTL 0.10 1110 101 00001 01111 0 ..... ..... @qrr_h BF2CVTL 0.10 1110 111 00001 01111 0 ..... ..... @qrr_h =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197862; cv=none; d=zohomail.com; s=zohoarc; b=Sl119KDmAJFL1Nqco+/6AZN+xlREZ2LrHAh386T/J8DXUJfTsELtYvcoBDPXYqRWzk+9fVXM8upcU/WAouyxqhsJUlpSvE/yorL3pRYe5t9qcxE2tO9XXKJyk4NVVj6J0NJsjknBBQSjJpuVMbSfswgCHkj/30D9wSUjp1354R0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197862; 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=Cccvunxfx9uaMVWDs1RsTfuuhTOzZU4EKjva9uf7aRc=; b=WMn0IhxF1v7xdfQ3Odpx+s5snjzYUG61E4j8FVgYM++tKW6ItFAutFUpsGRvQ8efXTmOpcbC0yHgXGJ8Bi5ZIWejkb8wteqaIbicAn2th+SxWUs4WcguN9ik5Fc1jv9Y6HhBlSn1GSNRL+wAPJTqL0yGcIMECvm8z3KU1hIrmOU= 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 1778197862954138.5360565884548; Thu, 7 May 2026 16:51:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Of-0000XN-IZ; Thu, 07 May 2026 19:44: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 1wL8Oa-0000Uv-27 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:44 -0400 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OY-0001A5-EZ for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:43 -0400 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7de46b8e432so1308267a34.1 for ; Thu, 07 May 2026 16:44:42 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197480; x=1778802280; 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=Cccvunxfx9uaMVWDs1RsTfuuhTOzZU4EKjva9uf7aRc=; b=unpgSQ+Y52aC96Wmp+dzk3efVPXmJizzb3JxAyvja3n9qmWuQeMNcBFRolpycP5Hew fbkIRMbxqwFG0CAUzY+oyWTj2V7n1ZY+r9MFVCaFyznmbJCI48LuTEDvyLfhkRtAQ8ZO bIaCDa1qIELt2KqE3vzuGltEIZX/amG9HF3wt6R+yWmm/cUbZxFKwEkkeizVXZW+Yshq uOeBAKcxqYIc7orX3EeVZNQIDr7MSeJxnaUKw0pF89dRI3uZlrNJ/17q3h1u/rTFzO4k LCdlFZlsOeYL40ZDPSJT2ssh4YpN6HnlqLKpE9jBR3/dXyHxPSuPGoUuCK16ELOJPS9E dJwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197480; x=1778802280; 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=Cccvunxfx9uaMVWDs1RsTfuuhTOzZU4EKjva9uf7aRc=; b=b+5Dre6frpI17LGSeDi8Wbm/kse8skGwYTM1YWGB2tDbEFpaZfj2AOY6eMz1rrXX7R KVTNFAn1NZSJ5IG4HPO9BW6V40PbnEiNIxwOvvdYzjw3UmMk66MxRQwBYmRB1uQpEUkt jvHr1qO2DwYdUDMw9jrCooNnnhsfoC0zwm3t5IgF59QfxxNby8ldpGNPWPsXvlumXLOc +gq5Jay/VK2FDnOMA7drBZJkhC0rr3Zv/yzCMpRUKN/ltOnpivctYWIJISCK05naLGKI BwtGwo+CcHyNq7GZX0QmWd+pJ8zIrirY3qSwcwhRZMH4TFhn2eMbHbbIAX3LKMJdHcii FSXA== X-Gm-Message-State: AOJu0YwzINivq+K2+EzK7nt6EmCXQ9EYSfj3k3g79+jZrLPIHB1ivL8/ g3ugIVlCWQ7lEHBYpmNUajs6x2nC7QBumZPzY4xY7KtnnrcGlSoajqQyoXhnofliKDMDIDo5NUk RYeHY X-Gm-Gg: AeBDievFwghVEAp7mngbdtIb7L/RM8kSkO5xnHj5DQR8BOmYmMPJSg+CFnUQV+5Kmru rqzpceZOxjUDmw8mA4H6zuEqkEBVGODJV33zX+xEPChYDtFLHLJRxjsOm9rwbwRLAWXRM76A46i MP9J7hgUhRh6i1HDZiifXkxtROXoerOoRSXjdeQS6lHu2kG0XViy2VnWGAeutIfo2KWHu1aNwMz Y2XPf7Bmy0K+LbxI4TaOdN8FJdrASeQfuVvoGmw6D2ShfiBKpr7xMpx7AIfJVIfBdjpOjFSrCVq APoVBK4gOiAI8JwxcD63OaIi4JGmmBEBAxl52+UZnIeoGnwehYN1LxXiDWrrK0EJqiYLEXKa9rR ZWRgbAFPNgNck3tk5rX05v9bS5ivlDqoLo76OvmqIBH1TQcPfTuAD5dg1zSUX2OCSuqH8uj0KYl iREw8/w9Izp5drx6ICNnWPZUuy7yW/sCyF2ADVhh0pGVOUfQ== X-Received: by 2002:a05:6830:3918:b0:7dd:b184:1338 with SMTP id 46e09a7af769-7e1dee8f95fmr6279260a34.6.1778197480211; Thu, 07 May 2026 16:44:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 27/60] target/arm: Implement F1CVT, F1CVTLT, F2CVT, F2CVTLT for SVE Date: Thu, 7 May 2026 18:43:40 -0500 Message-ID: <20260507234413.643512-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::334; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x334.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: 1778197864948154100 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 90f17f9e10..0e906f2d83 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -170,6 +170,22 @@ void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMStat= e *env, uint32_t desc) fp8_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_finish(env, &ctx); +} + void HELPER(sme2_bfcvt_hb)(void *vd, void *vn, CPUARMState *env, uint32_t = desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 9bab5feb93..5200f3d034 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4081,6 +4081,15 @@ static bool do_f8cvt(DisasContext *s, arg_rr_esz *a, return true; } =20 +TRANS_FEAT(F1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, false, false) +TRANS_FEAT(F2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, true, false) +TRANS_FEAT(F1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, false, true) +TRANS_FEAT(F2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, true, true) + TRANS_FEAT(BF1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, false, false) TRANS_FEAT(BF2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index e7984fa8e0..ca110f4bc1 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1091,6 +1091,11 @@ FMINQV 01100100 .. 010 111 101 ... ..... ..= ... @rd_pg_rn FRECPE 01100101 .. 001 110 001100 ..... ..... @rd_rn FRSQRTE 01100101 .. 001 111 001100 ..... ..... @rd_rn =20 +F1CVT 01100101 00 001 000 001100 ..... ..... @rd_rn_e0 +F2CVT 01100101 00 001 000 001101 ..... ..... @rd_rn_e0 +F1CVTLT 01100101 00 001 001 001100 ..... ..... @rd_rn_e0 +F2CVTLT 01100101 00 001 001 001101 ..... ..... @rd_rn_e0 + BF1CVT 01100101 00 001 000 001110 ..... ..... @rd_rn_e0 BF2CVT 01100101 00 001 000 001111 ..... ..... @rd_rn_e0 BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197655; cv=none; d=zohomail.com; s=zohoarc; b=lqvymb/UOZ27/IWnkaoSZezcdtXtaY/1a2CEvzxF0mBgWiIjp/tWZoEIQEVBBmT51GjCSucpbYEAXVylLdrM3g+rgZrFpIunG/lGDHRzo3hIp1gQt+4b+KiPY93MAWhWKZadkq1un8/4TX+WSSbZB59ifmACB5sbHjCGq/StOlA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197655; 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=M57Im4p8Ek/6ItuYj7c2sfqrPfiuBzTkBGB/xxKHk94=; b=cQ8Mmsc0Otj0rcvw39BCEep3t0+trMVxjGdO40L/YHWrHgmVsomYkD3emoBcFMR9FblVcoUTSE0sMHieFKPfpeRMUop44wmjrxYTMJuzOUgBMfbK5egJfudeH4ZRi9bzJg/1XN2vLZYgO37B+Jwb4vrHhMUjlXmnyD7VRX1cpMM= 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 1778197655541586.4320025424594; Thu, 7 May 2026 16:47:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Od-0000X4-1P; Thu, 07 May 2026 19:44: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 1wL8Oa-0000Uy-FE for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:45 -0400 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OY-0001A8-LR for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:44 -0400 Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-479d68a9063so517282b6e.0 for ; Thu, 07 May 2026 16:44:42 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197481; x=1778802281; 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=M57Im4p8Ek/6ItuYj7c2sfqrPfiuBzTkBGB/xxKHk94=; b=B9ZnDqqODEbbx8YqbHjFDvOPaPCVOzKHo+jom3LMXKIiY0D0hJNiNgDdC6uSfLE0z0 z3w5f/Umh+CQNUT8TNGiT0sqYjS81SqOkork+MSRL9M68B7pJvQpz61nruzMak1gE5/C GuXHPTyjmqJYCAroAIpMj6tkJbbcmrIa9fainBNPMUZydJBe5/Jc63Y8taOnf4kbvTi/ JHEQlco00SbK2hP0K6xbBHZieYGwtewQheQ77x4rFYVVAx+mUDZU2bmxIAnfUBjzkB70 vBfKSXQCI8S5gbz6AmBM/fHyi9KRtghHTZHKG10ZRbbk2ObNcnKuXuiurOV5+9GJvGbP UX8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197481; x=1778802281; 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=M57Im4p8Ek/6ItuYj7c2sfqrPfiuBzTkBGB/xxKHk94=; b=d3jblxGqJ0OEXT9wXHxJnVr3J/4RweQG4CFkhGUStp2XYWYp+0eE3rK/EkFvyWR7Ji xj+3HEyBga/s9alRTx5DGKZE3m9WP4Jx20YlyZZvOrTrsZq5llFlza4Z0SxifsmFZZ+P feRqY6x6apPTUM9cEVGKphZN9IoBJi7GTbgYu/oEicp4E2UoIH19HZsDe2CupbTcGIY8 TePl8Etet/7KRJy7c/Q0yrHfuoC7ITt6tWU4HjSlJC5ctlaLy/T40IxwkTV06UJY1LSm fu5mK2LfQhYUlNDAGhpe6voPsAqd65biWUV/13MGAcjhlj2fDKWuD2UoYDlzRiT9pfVy wORA== X-Gm-Message-State: AOJu0YwSJKxDIUjYajmNXVOItWzR9C3aRHiRcWXpyhrsouBB5Ue3Tf7e aahggBBKxd5OQnK0y9/cnprITFmuYi1wOYazn3ghyZqshDUXx1ZfxfTewpcPWBbUKzkMBgV7wL+ bLpUI X-Gm-Gg: AeBDietaTb4Pe4ozrovKnmn6Q68dN1kM5z7SweyM93I3Dq9fBL3wiaO3gxvLalqCqvn 0Pwio1KIlb1AwieIxZ3zn81+rbmsytxgKPH4HvjHRXXtiAcpBHEtaAmKxdb+Vf+fwyAbXyGv2/k d/fwq0rShmvkXoAkzEQB5UlFI22nv1TluAAUXx0faJHCR880lu58jrEzddzQiW4DWQ33KT0vreT kVfaJ+qTH5QizS2LEs4HCPnambHQ+RyvJH6gI/E8ROLBQYqbalPWiYsLjsSdRYl4NfqLgCUDux4 1DlhYhiwP/hwHynA6M3EZwkOhXtpn+8aqm9aZKlAPFIp+ZA6jcM/pPiB5CF05N/RBlp+l2rLx8X LVcjtCc4KHxbrJ1RMFyW0yRfGgF6NHvNNCpDJHNlQM/s0oPR/IoTFVHf/Iq++c9LQhPds1mAAZK Yso6OZn1V3s2z+A4iG72dbCgedi8L2ERhGhIhCVEvThsYO0jQjSjacHUG9 X-Received: by 2002:a05:6808:1529:b0:47b:c2a2:1c6c with SMTP id 5614622812f47-4804222a9a6mr6526910b6e.16.1778197481413; Thu, 07 May 2026 16:44:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 28/60] target/arm: Implement F1CVT, F1CVTL, F2CVT, F2CVTL for SME Date: Thu, 7 May 2026 18:43:41 -0500 Message-ID: <20260507234413.643512-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::229; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x229.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: 1778197657984154100 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 0e906f2d83..fce02f68fa 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -213,6 +213,33 @@ void HELPER(sme2_bfcvt_hb)(void *vd, void *vn, CPUARMS= tate *env, uint32_t desc) fp8_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_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); @@ -232,3 +259,23 @@ void HELPER(sme2_bfcvtl_hb)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_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_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 20:37:28 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=1778197781; cv=none; d=zohomail.com; s=zohoarc; b=edBholLcV377rbkow7zwHNdVnf2NJG7zNwcgDftjnk6AeRExuKGrGaGC5eNZUyKSJ0SkAuSCtvz2xODdl+XfUZMBCgoIky4X2EB9V143koaWLQaWhi9E3Onb60+vKUedQcCBg+PPKItIxgc1vfgJ0DIU9gB3HoLh0UoJfZbngrs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197781; 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=jyn9a2Dke0gOVnxhALgtDU9bWplg3rGYb8mu8IwJ2dg=; b=PmdxmtOjWirg18piyrxIXcDhrgoD7vXbR5KfxThD/T6/SOR3TupS0GkZwbZG65tdl+ElKZqQS03DbTiND4MchC+rsvh643ygDknTf2czcqvxmwK9F6wwQKciaKLsek9ERzKBvEYqPi3LpqiODBPUvneLD7g59bdoapqHGjvVS+g= 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 1778197781386661.0954914700585; Thu, 7 May 2026 16:49:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Og-0000cB-Et; Thu, 07 May 2026 19:44: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 1wL8Ob-0000Vy-Ss for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:45 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8OZ-0001AZ-Uh for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:45 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7de7c57b52cso1133594a34.3 for ; Thu, 07 May 2026 16:44:43 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197483; x=1778802283; 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=jyn9a2Dke0gOVnxhALgtDU9bWplg3rGYb8mu8IwJ2dg=; b=oSvKupWlbkHV/2SUz655kO1Nz43mVhxMnOvZVHqYjYuRoOQNPODx0XuAEy734Uldx5 6eeAg/5jCKn5Eqh3JABg4MGZ1R8xlVJDo0/m7vEvZzkwYLEz1zDwNv6dMfRVFT/dp8zS 4r0FMnk5ye/Dv8Qiej+2STFoLinTD7p6mLrBQAL0wjK9wQC0WqDhe1GBQmeqF4Eb840+ jBmPLb7MhLc/QVfEzPX6O9cliP/vF4fuuEi27H6zv/S4Z0Q0zl/SSlT3e+RPa8/Y+P32 4b86CbUX3frly/aC0Q0K1kfORdtyfQA/DD6TdxbXyzkaNYa0cWFeayr/exOH6muXeDEG yyWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197483; x=1778802283; 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=jyn9a2Dke0gOVnxhALgtDU9bWplg3rGYb8mu8IwJ2dg=; b=pF3+bNKVVNQ6iTbuTUDg6tAW3QD7OQmH0kDoxnIEmQMTgpt8UhgJ26KskwJZzOXvhO sK54KV0saPiQtEgcqJyhaEzVDfnJkitdFOvWGsTCQJcr5Pehl8KhBznpaw1SMs3aE6u9 0eSM1bGv8vZlCujO057BcaACUItz0WZW8n8+nXPmf8rOpNWB9VtBs7NscnTp29acQKSy iLpkIZCHywbMGQS5eE2EDm4iKOP0GCTxn0bBjP8wwEye6vZO+nmdXifrGwNt4+gIxge2 jcPIAABLLM2OMaf1tEVuDi2Xvv65GmjUqkgWRPgIf4tzyRFc44NiQncrSbhii/Uev/e/ y+rg== X-Gm-Message-State: AOJu0YzeuJxJS6KhedtAn311XeTWCq74XeI8/hqqJM9T3N+b95Z/4fuF HTAS521iC4KevR3iZCdfkUWW+WIrncHlUte99J5g+C1d20GDGBO6B/QCf+RdM2Ehb5EoL/DsbW4 IvwzL X-Gm-Gg: AeBDiethzEzAcnFO340OPX6JFKUUom1OnB3AeEWRX1qOvuTA886Qxb1RszIKsAPM8Bu 8RRSwf/gRty9nQJ24LR4g3Zp1WyweeDMAnN5YFUQA9C590OSkCi+xXMAoOelSJYnhE109TmKYdU d6Xh4mcnL2jxsiUI7y5AZBoLwY/v1paTYSexHYCzGuP6Llwbth7dyZI4j9/TL5agE/H9pN+/v33 OJN3SLP9KvSlrr+FMRaPcIBcU7H5qEvPuXfY7Du3AXwT40x7iOcHkZZPneoC9EfpPOF8GaFCI/v NwR3/qIkJRCT5mJt7zWO4CPq6NUGJAgQ/oLlsTywMpN3daWPjDSP1B3bGu9qq2g5+JJicWWXmMF 8btpZseiNosXtojtOdbS3XV31tIqiP2fVZ9KF3qzpjUd1A3EFhRdDg9MYhrKzKVRFcl2ZPcFujZ QQirOqgLBAvwdy0MeC0kpjF8mAf109EZ1xY9fJLwm4qOAZDw== X-Received: by 2002:a05:6830:6ad3:b0:7e1:cba6:9837 with SMTP id 46e09a7af769-7e1deefaccemr6492890a34.6.1778197482663; Thu, 07 May 2026 16:44:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 29/60] target/arm: Implement BFCVTN for SVE Date: Thu, 7 May 2026 18:43:42 -0500 Message-ID: <20260507234413.643512-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::333; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x333.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: 1778197782619158500 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 | 85 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 3 ++ target/arm/tcg/sve.decode | 2 + 4 files changed, 92 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 fce02f68fa..400deee612 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -78,6 +78,14 @@ 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) +{ + uint64_t fpmr =3D env->vfp.fpmr; + FPMRType f8fmt =3D FIELD_EX64(fpmr, FPMR, F8D); + int scale =3D FIELD_SEX64(fpmr, FPMR, NSCALE); + + return fp8_start(env, desc, f8fmt, scale); +} =20 static FloatParts64 fp8_invalid_input(uint8_t x, float_status *s) { @@ -113,6 +121,60 @@ static float16 fcvt_fp8_to_f16(uint8_t x, fp8_input_fn= *f8fmt, return float16_round_pack_canonical(&p, s); } =20 +typedef uint8_t fcvt_fp8_output_fn(FloatParts64 *, int, bool, float_status= *); + +static uint8_t fcvt_fp8_invalid_output(FloatParts64 *p, int scale, + bool saturate, float_status *s) +{ + /* Invalid output format writes -1 and raises invalid. */ + 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 + * conversion of Inf -> Max manually. This will be converted + * to the actual maximum value during rounding. + */ + if (unlikely(p->cls =3D=3D float_class_inf)) { + if (saturate) { + p->cls =3D float_class_normal; + p->exp =3D INT_MAX; + p->frac =3D -1; + } + } else { + *p =3D parts64_scalbn(p, scale, s); + } + return float8_e5m2_round_pack_canonical(p, s, saturate); +} + +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); @@ -279,3 +341,26 @@ void HELPER(sme2_fcvtl_hb)(void *vd, void *vn, CPUARMS= tate *env, uint32_t desc) =20 fp8_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); + 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_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 5200f3d034..7276d9c44a 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4099,6 +4099,9 @@ TRANS_FEAT(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cv= t, a, TRANS_FEAT(BF2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, true, true) =20 +TRANS_FEAT(BFCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_bfcvtn_bh, false, false) + /* *** SVE Floating Point Compare with Zero Group */ diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index ca110f4bc1..b6ef8ed8de 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1101,6 +1101,8 @@ BF2CVT 01100101 00 001 000 001111 ..... ....= . @rd_rn_e0 BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 BF2CVTLT 01100101 00 001 001 001111 ..... ..... @rd_rn_e0 =20 +BFCVTN 01100101 00 001 010 001110 ....0 ..... @rd_rnx2 e= sz=3D1 + ### SVE FP Compare with Zero Group =20 FCMGE_ppz0 01100101 .. 0100 00 001 ... ..... 0 .... @pd_pg_rn --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197801; cv=none; d=zohomail.com; s=zohoarc; b=mXxGGAIOZ+LHKmxdl816p+W7DA1TYkxt4RqvsrRV3ODD2orp45JhtlsCM8AtloJIlkmJvVn8yl9epKFMt3jqdsUiuxOUK8+uA2KFaVZty35HYPi9EqA3laaJkmKamOvqh/uLIgf4KKUmZ4w4Op2MlLCM4VV2ByeLSA/IUFkmZYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197801; 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=pjtuX2hzvVheDxPoojJ0JPab0Ux+i0kR8D6YJ0xpstY=; b=GwecK01GbjbCNqBeCWMi92t7KGv+TBflTCP6J0PMm3CQvpKc9jyKRbW5hs03saUk3NFQNs4NQ8fqAedOUC7Ed7reU+GKJ9Wwwm6zxDHEyXKO1NELBikFA+lHbthFCX9MrxuK2Xlq4mzDD8kfdiLKU187azdmWbzt1TwKK1ibK6w= 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 177819780197588.02347992634827; Thu, 7 May 2026 16:50:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Og-0000d4-Iz; Thu, 07 May 2026 19:44: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 1wL8Oc-0000Wv-QQ for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:46 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Ob-0001Ay-2G for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:46 -0400 Received: by mail-ot1-x332.google.com with SMTP id 46e09a7af769-7de44ed7a11so1211406a34.1 for ; Thu, 07 May 2026 16:44:44 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197484; x=1778802284; 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=pjtuX2hzvVheDxPoojJ0JPab0Ux+i0kR8D6YJ0xpstY=; b=NhPmbQSATJ7o00r+oJTHEmZNbMw68tn3xfJlInQhONorZafkHYunPyAfConqnxvGif s2c0ixhq/t5Wby7KQE3BaYTF4+ZsaKC86fCmDr+yJP1acYl1q9JIJCUF0HA4/0w5WNyl FU4kaCSo0089Cxi/aaKa9wQHTY3erCpMFtuBuVUo5GMVaTgXxFaPtQz4gwgYxCkOPup2 2czPtb7sblx3dSVr9nR6hgdXliMevWSmnLGrHwuLKsk4+x27SWnpy4AszMIuMReg7FmO tBJdz3ZAf/fjvE+G7vbiLgcMQFiuWyNMlNGWYQdqrFEdzYqidpSDzGtXR2oW1Pq4TVHS GYww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197484; x=1778802284; 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=pjtuX2hzvVheDxPoojJ0JPab0Ux+i0kR8D6YJ0xpstY=; b=OP013szccUU/t8L/+zoxChiyOYpoIRz0lbVLxh9H8akaBnsWqftdijA0mYWlSGtCjs 7aze4SzvsJPXgDFuNqOlD9jiZ162sZpmXJFUmeW/MZcRglwejoN786Kkw94kxmhKb7km Bt/Jjcwi/SnXye1QWjGW3pRIjImlf3+4dbZSI0JvqAXkk8LiHJ4cymjbrnGD3Jy8N2u2 WtCltu5Ir9F7+gNfIngHpe+MxOJeywJg721G+X/RabBjw9FTqCJf6j7CHzPb+SN2bMrD OV7rZVGniim09Z2qsff1DKRtEmLqeznHZrqd43tF95tvb086GvYKNsxe5MSPq1wkAgYM i74g== X-Gm-Message-State: AOJu0YyJPX1rFWQXa4L4FVc6eyoA1Fd7nyH1uncvscPU4hIHm+uwmjxh tdmRIAuBSMoNq8d15N0O78j4dVjkrEu6gQenAgMK3kJZEgthVCmBt+GAKwUnGCAJsYMqDyxLhC0 G9Lgk X-Gm-Gg: AeBDietvItE/fC6gYCN5cdaHla8lt1RKi4E3ONrIdkjpIDene6Ml1JVyfX543ANN/ER QyKB5M42uWA/DllNsiWcLsWT1OXDCjJgxVo+ZsH7VeAqHZb4bt/Ulmoo5PnZPL3MW5yN+AozOa1 hlNyFbDGXH4TnZ93+udf76YfgCqNGs9E2ZiuhAz+7kDEhCAv/Jrf7nocqAzIW2/KxRrO7wPJ2Wb G6z+Onz1p1I5ox7a3AZwgQuzdKvcJ2UJ4+Q0mYli+2rTHE36G08Hnj/VEjyib5+/YA9RLFpewI3 SkpdkS+7gMfBeUANb0LgiVGG9FnejDijjl2fQAo9x7v0oNLpPxV7PmxbDJctSV8yMSAxG91+kQR ScbW0fd8LBk2f1EkkJpxQy+GXJo5V8yhkeCGjifHaaJNwW26AZSCPmZOcft8tl89A98eQU9z8S0 VeOzWusawaOPMeQscqC/p+4fDz6T5jcyaXBFQdyc8uNBvLOvFO6qR2l99/ X-Received: by 2002:a05:6830:3819:b0:7d9:71fa:3079 with SMTP id 46e09a7af769-7e3662b943amr489346a34.10.1778197483835; Thu, 07 May 2026 16:44:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 30/60] target/arm: Implement FCVTN (16- to 8-bit fp) for AdvSIMD Date: Thu, 7 May 2026 18:43:43 -0500 Message-ID: <20260507234413.643512-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::332; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x332.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: 1778197802655158500 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 400deee612..e209860a8f 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -175,6 +175,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); @@ -364,3 +371,33 @@ void HELPER(sve2_bfcvtn_bh)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_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); + 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_finish(env, &ctx); + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 565053a1a4..0927eb6516 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6522,6 +6522,21 @@ static gen_helper_gvec_3_ptr * const f_vector_fscale= [3] =3D { }; TRANS_FEAT(FSCALE, aa64_f8cvt, do_fp3_vector, a, 0, f_vector_fscale) =20 +static bool trans_FCVTN_bh(DisasContext *s, arg_qrrr_e *a) +{ + if (!dc_isar_feature(aa64_f8cvt, s)) { + return false; + } + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, a->q ? 16 : 8, vec_full_reg_size(s), + FPST_A64 << 2, gen_helper_gvec_fcvt_bh); + } + return true; +} + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 26d31d0a33..71456d44e1 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1201,6 +1201,8 @@ FAMIN 0.10 1110 1.1 ..... 11011 1 ..... ...= .. @qrrr_sd FSCALE 0.10 1110 110 ..... 00111 1 ..... ..... @qrrr_h FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ..... @qrrr_sd =20 +FCVTN_bh 0.00 1110 010 ..... 11110 1 ..... ..... @qrrr_h + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197826; cv=none; d=zohomail.com; s=zohoarc; b=G8t5AHmW8U7EeLUyoEgWTLHv/1VukL+SJ63ua5uiA0bWAI0SzW1F5vS0xFYV8w25pbajhFWdJX/+FgUrCRCY2Jr0KWGyn1thO3M4dn7g9F8Bn94KS1RgziF/4Y4ALxJobvKnX9KDBS50SK+Hs5gNAgTQS2fXyIj6Ne7MqriQ8GM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197826; 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=TD5alF7orbbwxvi1kYcSIvIUO1d+/7yBfpn7JAzHu/s=; b=SE/1rpDgoECrBeMj/gDzc5w43Y5d2dnJycUhr+ThgqEKrS7H2E4rOuYNpkvgA3XxpcTJ1T08zRz2pH3QRUZ4svlryhVNoY/5Z2p45XakJzA1VGJxbA/HGokkGt7XpdrnpvwxVzY4qgBlpY/UVJivRgI8AVOQk5WnSH9PKMMuTN8= 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 1778197826497367.2323825228158; Thu, 7 May 2026 16:50:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Oi-0000hH-1W; Thu, 07 May 2026 19:44: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 1wL8Of-0000Xj-2n for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:49 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Oc-0001BL-S2 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:48 -0400 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7d1872504cbso1372386a34.0 for ; Thu, 07 May 2026 16:44:46 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197485; x=1778802285; 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=TD5alF7orbbwxvi1kYcSIvIUO1d+/7yBfpn7JAzHu/s=; b=tYVA1C+JbyAGC+/gmkHORQQRnz7osCPPNkOVaC929CNcttsBw3LU5nX5HzuvBFoONX iI+wWQg20O3qg7um5mDf1sIR/901KDX8nLFRapXP0OySq7TcJR2PEkEB3QmqygGYJYYJ 4MShuOgHpu+V+/lRzfjqWYvsPYsMND9lbrQnwg7rpiFG0jbrNJEBc3igr/Nhurr+ND6B SWDUensnngNtJ7sfVcVLjaWs6TE7wy/6VrlJ+4gVpCIC3Azg8sjpcca4lvuH9hd3kRah FhkRx3ZdNn8W4rpypaaB/Ck89RjUnn2fj09hu5TGSfa/1xklOvNEBv6lQs8KavO6QI0l qbYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197485; x=1778802285; 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=TD5alF7orbbwxvi1kYcSIvIUO1d+/7yBfpn7JAzHu/s=; b=HVEpbWg3CCoGl+pfho81kD6S/x8jlxt+c4wOj48CWFXv12ZWd2xPeilhbsQ2+bQ7k1 QnGD0GMVK5mc1D2ej0Zz9ZIy2N8kUfDhZxpC5x002ipvZWkio+kvvBwxv0kb2QNazefp P70w0qve4IuLt6SSGsD9R+AbzCMmyMRQt9gb4bWZY9Ckwc0T8n33ivev61QzdbG5kn/T Lrr5QAZQcmyPYR3dQLpEklWCUEzSADLq+p6aSMsDr9fuXV1A33mOenUqRsz5plahI/fV dWh6tihroPG1wvcfAzVbdQoyCbG48OAQSYI+/l24AcuP/rY9ojPj5/eVCLFd6V4hlD+U 2v1g== X-Gm-Message-State: AOJu0YxeCg3Gdb7m5pI5BxHzLdWTLo74DjSla46GGYj4y34mWof0pzU+ 0jbuiK8crhn2cr+eDhkvfhASXir8P7igQCsJTSOksnO9x1vfYERM6wS4kbYPEL97CZhqXtCCWJj xjK8G X-Gm-Gg: AeBDiesF1n474oM0l6ySKJQhf5lMvvd3k5W50n1jUwoMsXZbB7/Gt/fbOcaW4NCgCo3 6jATwZv2LIOp1XKbRc9YYwb1KbMZpdjo5BTM42RGR2pF7c15Lau6/iXl8sJhkbpUrMOhx+4j0Df 33WH12B0DcGdd6l5l/xnyMhuiXGyhEGAt+RGh7w90fzjvEVHh/56kJuZRO2UkfKq4n9WPYcxbPN sTuSpb1VgrxTA8+Cqj/FHPI4dbCJY6clzZtAiCIpFXA9rD3NZWyRnrDMAfb2nYeJDZLvkXJ4so2 atqSy2X199fujqrM2Paf8SMzgnEo6qDuDlkg2MAPZg2HzepJjnbq1+3mIePm8EomO/Dp/SnubLb RCUteSbv3nu2xvYzhe6c9lu/hDPeaefP7kBbtJLkBgv/jiDxa/Nk4kk7sAeawZ2FHHtWIfossXa adQ2uzhkkqlJfYUxkxgS0r7Dd8imfgP4sHyeqMkbfstOW+UA== X-Received: by 2002:a05:6830:3c09:b0:7de:9b99:a8ee with SMTP id 46e09a7af769-7e1fd219afcmr3089414a34.9.1778197484785; Thu, 07 May 2026 16:44:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 31/60] target/arm: Implement FCVTN, FCVTN2 (32- to 8-bit fp) for AdvSIMD Date: Thu, 7 May 2026 18:43:44 -0500 Message-ID: <20260507234413.643512-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32b; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32b.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: 1778197828806158500 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 e209860a8f..2252d2c526 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -182,6 +182,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); @@ -401,3 +408,29 @@ void HELPER(gvec_fcvt_bh)(void *vd, void *vn, void *vm, fp8_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); + 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_finish(env, &ctx); + clear_tail(vd, ctx.high ? 16 : 8, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 0927eb6516..3c784afc99 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6537,6 +6537,22 @@ static bool trans_FCVTN_bh(DisasContext *s, arg_qrrr= _e *a) return true; } =20 +static bool trans_FCVTN_bs(DisasContext *s, arg_qrrr_e *a) +{ + if (!dc_isar_feature(aa64_f8cvt, s)) { + return false; + } + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, 16, vec_full_reg_size(s), + (a->q << 1) | FPST_A64 << 2, + gen_helper_advsimd_fcvt_bs); + } + return true; +} + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 71456d44e1..a9cf259b9b 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1202,6 +1202,7 @@ FSCALE 0.10 1110 110 ..... 00111 1 ..... ...= .. @qrrr_h FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ..... @qrrr_sd =20 FCVTN_bh 0.00 1110 010 ..... 11110 1 ..... ..... @qrrr_h +FCVTN_bs 0.00 1110 000 ..... 11110 1 ..... ..... @qrrr_h =20 ### Advanced SIMD scalar x indexed element =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197755; cv=none; d=zohomail.com; s=zohoarc; b=BW5hJj0oZZ96Oqw+ITAwmsHR0lPOwCcvE2cxL+Qz2y2ur1oXiEpN1MXisdCTcrOhHZvYQcqR1lPMJeDjHgY8xNgG38xopf59luZFKjgmpH9SGcCyEheIYgbaXl6md1inP72bFRJb+cciijI1a5kFQ7yqbOahH4U+Mkv0LKBprHQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197755; 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=frMLyLCvl39yyHGRVg1BfkvNzPqVXTkDy/pQM/rMJ6k=; b=TjxGG1yW+ptSZ9KwqNdbOQ0hFr1694a8ODmbqvht+MqBvYXAKOqjEgmZQozPBB3EuTuxUqKXsaMUjwdAPLdwtKjGYiMkzalc6XzK/4LcO0mBsOiVYswWj17Qe9I2CXpNgvgpga4Z6Kt5EPKGIr2wWJxTxDxCHX4Q+B/tEpIlOFs= 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 1778197755336970.9636090355679; Thu, 7 May 2026 16:49:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Ol-0000jg-2H; Thu, 07 May 2026 19:44: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 1wL8Of-0000Xk-6G for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:49 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Od-0001Bl-5R for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:48 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7de44ed7a11so1211423a34.1 for ; Thu, 07 May 2026 16:44:46 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197486; x=1778802286; 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=frMLyLCvl39yyHGRVg1BfkvNzPqVXTkDy/pQM/rMJ6k=; b=t/rdhqnNXPIdqGJxNSYL7PueW0yvnui2Y672iTgiTdgEXzDEAB12QLmrj5KYoTPshE iQdYTzbhU4/NYQmgJHJvNwggDX9aSFBdbfvIS3eWBH/nBHUuPS9zPBtNVGODXs2rZ/SY cahL7Hh3GRP1j5EkNi8flhCYLrz7/mzY+u3YgwivpPxGQHk8EEqZK03l64zwGUlIHgCI 8Ut/h8fXGl9xvLARveOcNSi1bPec68AAL8dJppGcNCesqd0BZxPOPgKR06dCf5aoXi/L xM4fEuwifRCav3ClFtZ8fqJU0cy1NUoBIr91k6iyUGt8yXSrM8/ltTJm3cOkFGgXmAXE EtSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197486; x=1778802286; 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=frMLyLCvl39yyHGRVg1BfkvNzPqVXTkDy/pQM/rMJ6k=; b=Pz0jHNK9/qvZpq3UyH3TBMYsvoUZSb4Ud0g5gbH9wNExhgXnQi/0H+tqzr12RsVQ/N kc+d0+qQ3kH6cu8NSd98Uw33F9F768pZAyYDJH8zWcyO32SncB780CZmMv35pqZupkF3 ukosKxuaWTwWd6BX+e+H99/a17RmzHCW2rBCopB0EbU/M+N82niaMEoQFQqvNhMNvcpT H7nvcYZTQYMuE4tUThAa/chaCa++PAJsgkUAmvdIedlId2ZEd/SfSqXPu0OsiOV9s9Xx EI1LIS3JcnkjPp04qg1BiL1bueiAbbyezJwbei4VYACUWYcuFJIMO2p/UvSx9lHwnal8 MnJw== X-Gm-Message-State: AOJu0YwMdpR8VVegElKjdjnhpP/Bb45CSHhNh0R543FzAAfwohJAvnfK kjNp14NVdLN5L2TV1H5QCY5LxKOODP8NjzneuAMD4eT+sxhyI3hVZxUTf0RHi6EwefzDinYVTwH KUG3v X-Gm-Gg: AeBDiev/00u58HjpuyPZLeBGYBgxMGwheXfbEdT3O6iji4so0+ELG9HLQqGODGmbv2b XjNkKcgRIX63X9d7MHTkydRmH0ASTQcx1BAlKO7k3tkQE0C9OUyu0P1jOgL5EunVPeYaNDBqyBk 0g7O6n0Nn9cQAvnHX3/BpARvkF4vZPB2uLaZUcQn2cEnz2sbbITMTXqR7XXRc0Q5NzOftOwkQ1l BSHrqSfL1gsdrZEcyYB0foNMHAet6Mc7sGpPJOgwDzTtqALNysZ5LJDdmmd1zUFIyiiStQ3NV3V UHzUmp+KBISAfUU/HRdh8RIG1+9UIYZZSgStJE36frXD9f/XyYpWbolvHZ0Qb1XOrebrAvQ7MIu uxPUt6Q+kr9RdAtAv+6h9DV+L7q4vzpFVY9nFrYASRgB+gkCnzCzqq0t7SmqDxzMLHskpAVTRvq tpJckbx1oKzMYcNCUrlJS62tbArJJEiEM7JTiF5kbhRkfIS376omgapB9W X-Received: by 2002:a05:6830:43a9:b0:7dc:cb67:cb67 with SMTP id 46e09a7af769-7e36615c337mr487975a34.5.1778197486009; Thu, 07 May 2026 16:44:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 32/60] target/arm: Implement FCVTN (16- to 8-bit fp) for SVE Date: Thu, 7 May 2026 18:43:45 -0500 Message-ID: <20260507234413.643512-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::329; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x329.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: 1778197756412158500 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 2252d2c526..6588768ba1 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -409,6 +409,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); + 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_finish(env, &ctx); +} + void HELPER(advsimd_fcvt_bs)(void *vd, void *vn, void *vm, CPUARMState *env, uint32_t desc) { diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 7276d9c44a..c7fcf27183 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4099,6 +4099,8 @@ TRANS_FEAT(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cv= t, a, TRANS_FEAT(BF2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, true, true) =20 +TRANS_FEAT(FCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_fcvtn_bh, false, false) TRANS_FEAT(BFCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvtn_bh, false, false) =20 diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index b6ef8ed8de..806953bc35 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1101,6 +1101,7 @@ BF2CVT 01100101 00 001 000 001111 ..... ....= . @rd_rn_e0 BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 BF2CVTLT 01100101 00 001 001 001111 ..... ..... @rd_rn_e0 =20 +FCVTN 01100101 00 001 010 001100 ....0 ..... @rd_rnx2 e= sz=3D1 BFCVTN 01100101 00 001 010 001110 ....0 ..... @rd_rnx2 e= sz=3D1 =20 ### SVE FP Compare with Zero Group --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197729; cv=none; d=zohomail.com; s=zohoarc; b=fnxD30YmGqlt5MeGO/EB/qLI+Zpe5EJwpn6kmFhFRxG//dildd6mFvpMP35oFgAtUIMXhdmxElcJZ64ggUGpU8kmswCCpVEjUk4qAflKNles7iGe08maVHh2PJmYb7Lyw4AXO0FUP8fC8eULDVLokmQ3SYvIsVOjuL9YQKWaJKU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197729; 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=sP+K2tbCgSUftpd/Tdb2XmRTjIgbfy+soYsG6OjQAfs=; b=d3QQqBs5zTI3z1BabDprsIZDRjjB3FqXAgKeAjLt8uYju2OaoE5UEFcI94Yqmix6R3JQ0frre/411GPAnk+KEiziJ3H60ap1aPrCDfX2PPQXdwi7uNZFMYrmUGXTW4DXpGhxAfDlNbIsbq6NAEEktjy+DZt7QM7dHHKQlrMbDZQ= 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 1778197729348123.75035276064091; Thu, 7 May 2026 16:48:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Oj-0000iO-2v; Thu, 07 May 2026 19:44:53 -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 1wL8Og-0000bs-BD for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:50 -0400 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Oe-0001CA-4f for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:49 -0400 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7dccda31d3eso414480a34.3 for ; Thu, 07 May 2026 16:44:47 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197487; x=1778802287; 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=sP+K2tbCgSUftpd/Tdb2XmRTjIgbfy+soYsG6OjQAfs=; b=EdVxTv/C3OrK4E6dM5bECsCA2/sNw+HSums3xrat+0o3nK7Fqojz2KjigEZjlBn/u3 PBXLmlBzPTgFJ4MeBxEMpIUxHQZ8CLkbe03C75A+NHIXq7YY11pktgFaI+wcfpUQd9eH 3vX/OULFYGU11ELtjrQqh9BAA8ge1nwEZWvffscP2OywVbCHryD1qJvCYMmCCZSeWi3/ 2BobMrAPaxxoXWg43iav99YYYsz6yaEZHDfFiehrkJZotY2HerSUnPUoQahQOPP5N78A FPFLLfLp1P5aU44/e9Q9dPFd6/sYylyVbeKXcKE7Ayh+MX+CRzG/IJjZ2Qj12nu1yHTN 0yYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197487; x=1778802287; 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=sP+K2tbCgSUftpd/Tdb2XmRTjIgbfy+soYsG6OjQAfs=; b=I7BMFsiv1uou0qb+U52c4xCO4X0fyFNggAf2q8x0/0cZ3qdF5RXkBzzkxkr4WfwANI H+z6c+l0ongQIVMWJkUkiOFDCTIkwD9SdUnW4xdBV+i8nrhniKJ5MVE+ULn0+PFufGy6 f7BFXI8X0Lilsy/7Q1cMyi2tMuWI/ivDk1vsvrlNWFfENHrrL1zKtQViUqBjvI7HV8Gt aaxVk/RxF3Q2+FHCuZ2Z/Soc6SbFYhtP6LEAiAaoyHD+KuPp830oiZ2NM6T6cLo2pNE5 xNpYjpCqdOmXAjJqWt0v1gHii+tfn4DJUMdqR975ROilwRAx0CM0Ul4HyJjXzokKg9Fr J/Mg== X-Gm-Message-State: AOJu0YwwwL5w5H4eIunzG94Ug6lLjtqZaql/TLqEFNbA90lFnzwEZYid r4hWhnoDgs017wadcOaZHeb0JzDBz4QMYJgEtMv/HIn8Cs0BHO0IdNkzR0Gvlb4i9EbqXJfOBYD XKDvt X-Gm-Gg: AeBDiesJLNjT7H3mYkKEQb1F0+VHEGHp62yowHNlx8ar+nsSSw3GC3MO5Rm/WLKnGdb +r7iarjJsweSwJ6lDxEVZuTHHvrjI31obw+OCNsoNACpcp0LL+Fl3mz0uMPR7A0y5KMAPlm7+2n faBPX+L6HwltH+3luXdD13KFSyjSGWcPCBT5kxZK2tlCsUiKSluisfZL6Q5f2IoDK1VliebFmNX dJROBeOLtMnjXQVJOlX/YnOEZTCwPpjQ2Hhl0VbECXAjWlh3V+genfihOrYvY3f3c3hyAthjJkK dKgBavUH2NSURcyH62nu2qbaoprSsZ5h+lZlNcrvO1xVa0hJ3fMQEN5y9s0J3oizSngbCgGckkZ iaKB33gfP3CQrxDILQ3sDgw6WlPj1Oi9ddtiRH8+/V2y/lVhlKmK0nSMbvxL218PdsDaMzlgACp kg/AB1/nVAen44X2MiHruVrRbaIn5sdqzfVVj2nlLkB0PykMNxFjul8MoA X-Received: by 2002:a05:6830:6005:b0:7dc:c4ae:a689 with SMTP id 46e09a7af769-7e1deebc5b6mr5797723a34.2.1778197486980; Thu, 07 May 2026 16:44:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 33/60] target/arm: Implement FCVTNB, FCVTNT for SVE Date: Thu, 7 May 2026 18:43:46 -0500 Message-ID: <20260507234413.643512-34-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::331; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x331.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: 1778197730316158500 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 6588768ba1..55b09c689c 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -457,3 +457,50 @@ void HELPER(advsimd_fcvt_bs)(void *vd, void *vn, void = *vm, fp8_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); + 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_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); + 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_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index c7fcf27183..13f7ab01af 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4103,6 +4103,10 @@ TRANS_FEAT(FCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_fcvtn_bh, false, false) TRANS_FEAT(BFCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvtn_bh, false, false) +TRANS_FEAT(FCVTNB, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_fcvtnb_bs, false, false) +TRANS_FEAT(FCVTNT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_fcvtnt_bs, false, false) =20 /* *** SVE Floating Point Compare with Zero Group diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 806953bc35..72755b27af 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1103,6 +1103,8 @@ BF2CVTLT 01100101 00 001 001 001111 ..... ....= . @rd_rn_e0 =20 FCVTN 01100101 00 001 010 001100 ....0 ..... @rd_rnx2 e= sz=3D1 BFCVTN 01100101 00 001 010 001110 ....0 ..... @rd_rnx2 e= sz=3D1 +FCVTNB 01100101 00 001 010 001101 ....0 ..... @rd_rnx2 e= sz=3D2 +FCVTNT 01100101 00 001 010 001111 ....0 ..... @rd_rnx2 e= sz=3D2 =20 ### SVE FP Compare with Zero Group =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197600; cv=none; d=zohomail.com; s=zohoarc; b=Bcz4b4RsStXFSzXupkR2iOMMd3+Kz77E/WU2j1QpGnsMPo5895PuRPaXL45gf9vOaf2sOCQF01LU2M6eBqjD6njtuWGRlr1/wJyGctqtbnf3fx/mREzCyG+ACLrVDzdVIyOA0RzAcEMEdlDfJiw71Qlx81t410iCjZNCwnSIWuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197600; 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=kjF3MI5hOIr6A/Ol6LvP3BBEb87ir4U27Ip4I/y0BTHToK0f+9sAiA/NPQ9J8eeytDOA7CW963dqQeplLX1akjj0jaslsuu4k/HTH1ZXi81YFQBe0ZAnK8SLn9KpuDaVyMEhpDlGEOeMT8/FaYtlTcORoASs6t7BhQGnScAzQCQ= 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 1778197600562155.99316587580552; Thu, 7 May 2026 16:46:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Ok-0000if-AP; Thu, 07 May 2026 19:44: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 1wL8Oh-0000fB-7Y for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:51 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Of-0001CR-Kq for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:50 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-479d4df9035so1750984b6e.0 for ; Thu, 07 May 2026 16:44:48 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197488; x=1778802288; 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=pofbP3AFtoy5rpsVsQnNq2Hi7obSbVBlq5BX6PbLlsLncXg4Jk2Dzlie0uqlsYN7jZ thM3L9lh8yolz4xWrWfu2z/6ZAvotBTC9iHbBsXNplIHGy9U87oxua9RGxdDKTh9CQsc jUzcLo+OOqwOKTjpNqlORQRBaTnXASf4l9HPFHF3orrBrLP47RcX1N6e/d9x77+Be0CB n8qaAxKdhNjRpskewVnirRH9amDHco6C7aHh4OHOEpWF06IhABOz5K/U+EkFoRpL5iIr g0w2ykmjPTF9lbFBXjGrcTid3zI+gWFmhYGIbL9P6tbMR9tjprsg3nxjYE5y1SGEsAUA Gjuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197488; x=1778802288; 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=MOOdU6IahVJQ+upYmMSvrhoUVpQDydE75Rox1gKkj+7ilEjlZS/bRQm0oZD9huKb4Q 9181eUODkSv5/Gt1ShufuNE8gE2OS7jzwvkqCGgWHeIMB0G5MZWDqDfo3o/9EdmYFGzA mhizUvW84RTfxfWa6aiNJCMR2leZfN+9St/vWMoSFiLM6Y+QOQNBJoKODc7MaoFv99Wy hpkBCIxkeWDZpYEP228P2qywi7lsl/F0GF4EsrwC1bidpcc6bk6ypCPqN4fFW0oQaV14 7ZTD38lD/GD/NaLlXMhhgIs0paOCAFiS9s8ILEZ+mnX3uPxtTBuOV9HTjS52HJ8/SaQd 64SA== X-Gm-Message-State: AOJu0YwScNl0/QtbuCNawMnTaaYKbP8t192rvit1LtTe4wOaMrRksDoC slUk9IbO+2BemBNhwzVT3Pc9N0PlkJfquxJPkCfQf1VwFyBI/MvD7rDGFOybcFW1iOt8zJeqJop O03Ub X-Gm-Gg: AeBDies/lDxQLlq36CZQB1VCnwUQAG/ioxVheOUM/eojrchqajpbIt1m6SGmNbW6b0u 2IpKNebQTnKN3UD5+agimT0m3Otf2l1qMbs59MfT3w94JUzsnhwnrAjyEru1EDDPE+O22ZHRkyp f3OZxWJ7rkT3+8Kn+TH8PQFn305GuQRKHQNeP2CX3Ukpck2EEzO0fsSiWPdkkQzeukAaFFdYSTC baGC5F3UgKtsbA3njal2mk5QHzbQZFcD8gAPnmfa6S1EpqBx3adc4u6HnR6t+0375y9/nGmnaEy ZOxPkdzRwmKhDdYxZY7DBQ89FSRgkVXduSpG1By9RceWxLXGcneKD52JUD1J9CqvFsHnmRqKt3C 5VYIweQHpC1YNeADsra108lwezKy4sgMql6abH8MHLxTWQcLs8iR5EiA984vKeALQPAwJvQ2+ls LZKOybGyEFIV/66SaUNTaYP753ANKEfShP2aJ15bxxZNANtQ== X-Received: by 2002:a05:6808:c40a:b0:479:d372:b7d0 with SMTP id 5614622812f47-48061ac2a0bmr3035813b6e.5.1778197487851; Thu, 07 May 2026 16:44:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 34/60] target/arm: Implement FCVT (FP16 to FP8) for SME Date: Thu, 7 May 2026 18:43:47 -0500 Message-ID: <20260507234413.643512-35-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::230; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x230.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: 1778197601715158500 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 20:37:28 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=1778197610; cv=none; d=zohomail.com; s=zohoarc; b=DBsHNTzFakfFy3pDzwyW9JYmB2H28Afro8PtgbOnqGnmP2I8KLe59snFU4w9jOZ7hhFIwEdHGfrodxUblyTzgV4JrOlvo6ei2VH/8ub4RI7PWHcBt1HFdu4wtZMkYej8WcgDxBaGQM2zEpw9xHGknbizxYFOBwOwZ65tAjqfd7s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197610; 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=IvdBCPwdPebINf2u9OS/OLdVPs9YETKPSmVjqHkDdBE=; b=HqC1Z88zXqCvSDXKqoNGnOooO0a2/IHCtWOS3Ibv/QJ18bePI4A2vMf7B312JfmRd13dj64s2onv+JNWgzmrWXtbiBuG00mq+194vH+LztWIYrmaMPRoUqqca1IwsB1psbPv9hJ0RpHWk4EQoyMS7+/90NeO8hA9hzkjIY7a5Us= 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 1778197610072727.9196661037239; Thu, 7 May 2026 16:46:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Ok-0000jR-Rc; Thu, 07 May 2026 19:44: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 1wL8Oh-0000hK-W5 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:52 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Og-0001Cu-0O for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:51 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7dcdd23fcdfso833372a34.3 for ; Thu, 07 May 2026 16:44:49 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197489; x=1778802289; 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=IvdBCPwdPebINf2u9OS/OLdVPs9YETKPSmVjqHkDdBE=; b=TbGH1QRCiy5xFW/hnS/vm/l1spuIgRokXLP5QsGT6Z2XBVjsLidJgoxfvMSGSlLCMh NxXgubNnB1Kb3bcTwq+SJmAV5F2SFEaYqN3nfm2hLCOALVeCJZQ2PzuTEqjRmiRFjrPA S2a8ycByrN/Uhx9851Jb6cnDHUFKK3gOwE4a0NCGpKtFHJ2ubCmwE3jWgNxdFrTDn9Zu ftKmRBGIs+K/CAi2PmMK0rnluUgu41oc5oPHZjVNx9UQN/IKggrx83J3W3QgZX1XOQIi ZFjzQC+NH9bHZ+BJXFAtPRnAUq0Uv8LCs70jqj49lv4sgafA3loV1PjfhksxQkLbxOOh QptQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197489; x=1778802289; 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=IvdBCPwdPebINf2u9OS/OLdVPs9YETKPSmVjqHkDdBE=; b=aTP1P66czon5VjpwduUpk5PyeqQqLORe0gj1JWrY/4bSyI/m6LIhyy2s8hQnizSp+T Z4X2XCPOOtnV719pz7EhcL4QAaWE+j2z7HWKWG7nhQuk3j1HBAvtGpunMZYTGbzLkTAi 6lUVO8X4V1bMI8caDIJKK4A+MhCXY3PhFMIdPGjMiXp4ZM70T00u9QyxzY2hvb6rruJ6 T9iHqBz2QorpDfpDyMy00hkev+HwtEApownDWZTNtJZPecse7IDO1NHHjcUBw3yf5u55 Os4RBWji2BJKVjfV0jN+TfAdZPFZcHrJNExVnCrhy4J1+fZUJK3yNcZw1h4Qa7Dm4KUM w1Ng== X-Gm-Message-State: AOJu0YzeyBSdat4PKDMdo5X0CSxJ2tSUGXUz35jIHuLu3ty88TPRtOWf 6r5tXnQ/eIsA2oCM6FnLxLy50qeoXEMxP+ImlMz0q3xPnnIJ3RPCnsqmSgiiFXsBRb7N4wj97jj szgp4 X-Gm-Gg: AeBDiesC9ak0ced7ii6VaB27Qkpz9Zbs8wNSGwagtrTahXyDHtGwqhG9Po39LU2Dep6 yj24xYgAt0a6zR8yrgx5W3gH9E8Rb8uzrLa5DPWGuLqdtALEIKLPVJaQafepIDga+SnnPw6+UNR eDrlhDgEEPODUc+pl4v0JtipGuUDwY94cf+IE3jwMHfR5kPJEgIuAKju1recfGqLFKrkPOVtxXN gyNVdWODpML6P74P26DVKYPfNX2ZVKGjHPlUspRCPVvirSlG3NryTnGtuqkxWAXZuV/HoYaOpB/ fp9Gr6EPxSec4BOf3DYx++tO+qEA5ly6bcfZ67wK7U3PoqZtqxwEiRe5mH+Zi0uBREvucAcD3bK 5YjSfZjZNbeuYdsL+vuLg+grstQkpIOz6UDlwzYGop6WNZbjgmsseE0mpaPehn4y3V/bWVZK7/F zNypcJQi5lF7tkENirDKVxtaxKagMZUp/HXoHBF3xr+5EQfnu/SzQ3svPc X-Received: by 2002:a05:6830:67ca:b0:7dc:e422:ce6b with SMTP id 46e09a7af769-7e1df11bd8cmr6060961a34.27.1778197488642; Thu, 07 May 2026 16:44:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 35/60] target/arm: Implement FCVT, FCVTN (FP32 to FP8) for SME Date: Thu, 7 May 2026 18:43:48 -0500 Message-ID: <20260507234413.643512-36-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32a; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32a.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: 1778197611315154100 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 55b09c689c..d7c1ff97b7 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -504,3 +504,62 @@ void HELPER(sve2_fcvtnt_bs)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_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); + 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_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); + 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_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 20:37:28 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=1778197840; cv=none; d=zohomail.com; s=zohoarc; b=K2d3e89si5Sr4/Z6sedlxULjVFOGyVqbcwLbRbTNd3RHWgBIc7J+Y8O5WZL1C5De7o3iyjozUpIrtOvXPMNN9DgXgrCduErIrE1jzWxeXM0ImpLfJuOQecqhMYA3Rlfjzfob4uKWRufRLaQyYJ4xNvCQ/oxWFfroB8OWbXHwz3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197840; 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=TOvd1stmjwYt3jtt3lYPGf9ETCY3xwD7NojicPAgY3M=; b=iD++PFDIunY1MmGUth7Fe0pwbH9yEBj+lhliKEa/YIIms1H42LYSyVWriJCya8cSwlQ3yK949F1k0onlt+GX4/tngdSQVLd6hWkPzI1hsMX4vh0LTmzxgY8StBsZnRygiGv0i4dcVN82yCfBjwBOiCYBRkP8134DtrtlwU8+7ps= 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 1778197839998778.7516092926886; Thu, 7 May 2026 16:50:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Ol-0000jq-GR; Thu, 07 May 2026 19:44: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 1wL8Oj-0000iS-2o for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:53 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Og-0001DB-SX for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:52 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7dca5f64e86so1261636a34.0 for ; Thu, 07 May 2026 16:44:50 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197490; x=1778802290; 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=TOvd1stmjwYt3jtt3lYPGf9ETCY3xwD7NojicPAgY3M=; b=UQ7eICmYPybIw1v/z9whvSslwDLNUWy18x9YjiaqvZp9BJMPECZpl2O1vQKJ/ABtRL pt1e6dLuZeS4gew/8cnTjYPt1vqLhyOF2Jn1/RsbEDzPS2t8Tlmhk3Y8RKQQ7uW3bFbT zSp39jlB+/REAXoTGDvoWK0JIjl0WcHEjkSQMWuO37TD/jXfxhTxIF37/1BPKD7GYSQH aPsOqdi0niQorhSWq0sBkiCckv5CwfQcS6t/ZwTICWdai7DRke4eohSh/HgsPYGJVGB2 Mca0p+dSAz3MIsoWgFAm8TvIjgGzZ1eIDJhei+PLDN3RVLZ/6cSjN8nvRDEfJItpQ8rn aa9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197490; x=1778802290; 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=TOvd1stmjwYt3jtt3lYPGf9ETCY3xwD7NojicPAgY3M=; b=jWF2i14+0uDb+sH79K5uRjdHggv321qeLDYUMmekJ1nHCGKNYNaYmYGw5wf5F7bWZx FfNqrjhQBA2WiPXH8DUWhYw568cJZJXvsP2YtuXj4HzGoPGtjDgKbB90kzaJ14pbwg8O SE9po4sdiOjfcJVxKDwEmoAp+gZPGyJ6jJLqOFy/cjTjoyium8koLjGLl8MFEwkaZzoJ oHfIuh1I7fTUlDMRoazg5dIlor4uJQDdTPYJRtA2iw1YxxYXc8O1a+Irh5h8BMcz9aHD uw0jK3qE5IfuTfdrFfJZi3a+H/mEX+wcWXG53wj1Xy3gxHdP605Zt0ak+V2YRr6gnZNH rTAg== X-Gm-Message-State: AOJu0YxfoSPXKi+E8xcpi5b7hJbzJWRuMf/nHOH5o940XVE8cxGmgCUK 3l4XEFshmqdxVJed71XtHiZT2zP/N5ggLxRllU7FhLG07cbNj4++Pa7IFEzxBeJ2Iic8CHQiujQ k8bxH X-Gm-Gg: AeBDieu2VJeneWPUWlGmHBBSWsGOaRQX/Deuonqgbv1LQd0YNmWqr9K7AKOdD6QLXTi xszQOCSAfsa+vsxb28fH4HDqxjcYewV84sny4YoYl9REWyZgjM6ojdCcu3MwRbC8WBDVmOEfehj Eyty9hwuHUzgQzDaC4TmVlVLDt/g2l+t2FONC4UsEjZhPjuOsKq7Gh7AmuQlZBD3kVaFvOsJcp0 vHd8wQsEYQJFFDYT9GPVo+NKCV5f/fN94t93I4v19w36+sAfWrdAUnMaBvp6JCOVM0YVSCdfVF/ AZGe3kN95fOuUqs3/8p1gr5Z+309cpO45JipRRbJ04tEfk+NztN4pJ8XIAZ8bZoFiN2tnCKD2D7 dYYIbwap5QU7KTQOZ5UQQzPiRBetGMTg6vz9iwW6pMi1VnoiLoYs7/KqeJjy0V5OJjA0xhGmLvO 3OsMSsZnx81O++nFSUxNWY9YMl89C6kafRzkKSNzvTho6mug== X-Received: by 2002:a05:6830:44aa:b0:7db:a184:2b35 with SMTP id 46e09a7af769-7e1def0c8f1mr6250073a34.8.1778197489689; Thu, 07 May 2026 16:44:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 36/60] target/arm: Implement LUTI2, LUTI4 for AdvSIMD Date: Thu, 7 May 2026 18:43:49 -0500 Message-ID: <20260507234413.643512-37-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32e; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32e.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: 1778197842566154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-defs.h | 5 ++++ target/arm/tcg/translate-a64.c | 38 +++++++++++++++++++++++++ target/arm/tcg/vec_helper.c | 52 ++++++++++++++++++++++++++++++++++ target/arm/tcg/a64.decode | 6 ++++ 4 files changed, 101 insertions(+) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index a05f2258f2..05ccf795e8 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -1122,3 +1122,8 @@ DEF_HELPER_FLAGS_4(sme2_luti4_2s, TCG_CALL_NO_RWG, vo= id, ptr, ptr, env, i32) =20 DEF_HELPER_FLAGS_4(sme2_luti4_4h, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) DEF_HELPER_FLAGS_4(sme2_luti4_4s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) + +DEF_HELPER_FLAGS_4(gvec_luti2_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(gvec_luti2_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(gvec_luti4_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(gvec_luti4_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 3c784afc99..508d8e377b 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -5405,6 +5405,44 @@ static bool trans_TBL_TBX(DisasContext *s, arg_TBL_T= BX *a) return true; } =20 +static bool do_lut_1(DisasContext *s, arg_rrx_e *a, gen_helper_gvec_3 *fn) +{ + if (fp_access_check(s)) { + gen_gvec_op3_ool(s, true, a->rd, a->rn, a->rm, a->idx, fn); + } + return true; +} + +TRANS_FEAT(LUTI2_1b, aa64_lut, do_lut_1, a, gen_helper_gvec_luti2_b) +TRANS_FEAT(LUTI2_1h, aa64_lut, do_lut_1, a, gen_helper_gvec_luti2_h) +TRANS_FEAT(LUTI4_1b, aa64_lut, do_lut_1, a, gen_helper_gvec_luti4_b) + +static bool trans_LUTI4_2h(DisasContext *s, arg_rrx_e *a) +{ + if (!dc_isar_feature(aa64_lut, s)) { + return false; + } + if (fp_access_check(s)) { + /* + * (Ab)use preg_tmp to merge two disjoint 128-bit quantities + * into a sequential 256-bit table. + */ + QEMU_BUILD_BUG_ON(sizeof_field(CPUARMState, vfp.preg_tmp) < 32); + unsigned tmp_ofs =3D offsetof(CPUARMState, vfp.preg_tmp); + unsigned rn0_ofs =3D vec_full_reg_offset(s, a->rn); + unsigned rn1_ofs =3D vec_full_reg_offset(s, (a->rn + 1) % 32); + + tcg_gen_gvec_mov(MO_64, tmp_ofs, rn0_ofs, 16, 16); + tcg_gen_gvec_mov(MO_64, tmp_ofs + 16, rn1_ofs, 16, 16); + + tcg_gen_gvec_3_ool(vec_full_reg_offset(s, a->rd), tmp_ofs, + vec_full_reg_offset(s, a->rm), + 16, vec_full_reg_size(s), + a->idx, gen_helper_gvec_luti4_h); + } + return true; +} + typedef int simd_permute_idx_fn(int i, int part, int elements); =20 static bool do_simd_permute(DisasContext *s, arg_qrrr_e *a, diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index 3231bb2100..f0dc11bc8a 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -3345,3 +3345,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 / 8; + 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 / 16; + 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 / 8; + 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 / 16; + 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)); +} 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 20:37:28 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=1778197939; cv=none; d=zohomail.com; s=zohoarc; b=TSa6cjT8Vcb3cnnGpgUPnOXrYAy6iOZy6uXrQi/FB8g0tGlvdZ1cOXpmWWv19zqp5q/Eeh0U1lII8NM4d4mrinX3ueynz3wKX14tKgXWklxepZvexNCTf27mSS6i6Vs9dTQIa0a3kaI8MCZqPmAwBUSn1C69EsIfRT00qzcJBms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197939; 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=3p/DaDsT5qO4qa1cg1PpZf28HBMBwainklY1VNYDgm0=; b=El+R1pNvkQYfnn7ZXPPFwaHp/i5/NBgrAxdGprI8jyiUwGu8vjMZg2J6fseXfFt0Wt1nKNnYoBCdxKBvcD0+xHhz8C6WgD73yBdymdMRRkwIOosxyv/moY09Bw10XId3SEep8KCl9LtwzqCTu5VMRWH9ObGzD4xYdHQq4flU66w= 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 1778197939020688.1988320423937; Thu, 7 May 2026 16:52:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Oq-0000pF-8R; Thu, 07 May 2026 19:45: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 1wL8Ol-0000kB-TU for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:55 -0400 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Oj-0001E2-FF for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:55 -0400 Received: by mail-ot1-x336.google.com with SMTP id 46e09a7af769-7d1872504cbso1372445a34.0 for ; Thu, 07 May 2026 16:44:52 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197491; x=1778802291; 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=3p/DaDsT5qO4qa1cg1PpZf28HBMBwainklY1VNYDgm0=; b=dkq+ASBhBBn9kJdhE9Fzuo8nClIUDSvasJ/2W77ea9S0p01jV+/JUlRMEopI+q/iHb vxo121DPwfrYx+0EZQ6pBL75XsGWVpGbRDNQHPJNQVa+w6+3r7xmAfriTticT67WHXI8 kimlWKn7vqETWNNy5mQKlNPTg+8cpKBwEerIRr3Ld41lyrtaIt2jC23u+TfuU3bTONkF nZOFfxbo5oridH9+QPb1oFhVzuUB6Yq4uJHFO7+uju4vM6LzZUQ4ZCdZbg+CMdz3Cuxt EJKZskMXdY1oiXi7a6Y1Kq8Hl0TdbaRPyOXTyo1M1URqtAw7C6YDx9fbzQn2EzT8xoZ6 +9nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197491; x=1778802291; 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=3p/DaDsT5qO4qa1cg1PpZf28HBMBwainklY1VNYDgm0=; b=nY0Pfr9+dX2d5vgiWDyYMy8Xx446kGZDPS/BvcfEt0al3khXdXIVW/MaOL7toucWuN RlxcIdHZVGnhVXZu9d8dBTcO2PaZvTfcT3PJETKdIo++sSJT00fUHmtCPiNMJYNEvPDU A2+kzYbrUO8zJHfgpCXteDVH+DjFWw2uMTiHjMYAix/nhk1e0syOrFNMURLxZZRDtU8L 3h45hyLka19zsct808SifYt/YQ5FIyTI7ejaEOwcppidg/nyIugypH1MfRrWjzPV/zef pj659Kq9yZmHnh3fAX/NL1iLeuR4kX8p56tgerygL62TeAx4HyK93uS0xfU06cQCmGxA GcVw== X-Gm-Message-State: AOJu0YwVVYigcpQBa/VKO3ffayfmofn42z4FBcJu5nC5ggQy6kMztJPK qqbv6XTEpZMjl+vKkffjXop+RhPvF0mQ1geALNfGZ40EG8hmiD3bCi7QvMhxPl8A+Gw5zz2ME1V e9d5Y X-Gm-Gg: AeBDietVc9VSYAe/M02TuOzAJNQZpwhmxPD/Y8qM6Zx5fZeYiD9pNUxeKLMiuBCr9L1 zI74Az6qGcHvEQ2a6jH97bOiF4W2cM6zjmf9Q1rMfTTLdBDPH8it8NKxyZFAs8JhWVR1UX8BDpF dtzxtdNJz0AzqVEybd1cHcO7yADKmXmEAfqwYb/kyU/uUk0da0LTCKVblamM+cVc1prmuCzVDhN hO5wdIqZa0l6tQEDF4sOpcvJYo+afCITccVhQBhh+zKdbhr3Is43Hn+2abocXx8/mdX9Pn2Vk42 n2krTb+4fV3HAR5sP4/3iodKM1CPzL69xLg18IpN9fa3xBjVFfTEUIQWT8RLhGDFZlHAV8h1fLx S2KISOG81bK7P9KxfS5OlQCKAzYLKAoNoILOvnMBditdD8lR2bycdfy37j/msryH2oWI2BdHRPE i35xQF1GXA4pHNfAtkUlq8gKpVj47GmNHYLTp7ZFcofb8N0cSX4XCN5LHCYUb63uBCn6w= X-Received: by 2002:a05:6830:6004:b0:7dc:e43f:4b31 with SMTP id 46e09a7af769-7e1fd21b0cbmr3120787a34.12.1778197490606; Thu, 07 May 2026 16:44:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 37/60] target/arm: Implement LUTI2, LUTI4 for SVE Date: Thu, 7 May 2026 18:43:50 -0500 Message-ID: <20260507234413.643512-38-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::336; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x336.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: 1778197941156158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 6 +++ target/arm/tcg/translate.h | 8 ++++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/translate-sve.c | 68 ++++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 11 +++++- 5 files changed, 93 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index c1f092b690..47294eb807 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1643,6 +1643,12 @@ isar_feature_aa64_sme2_or_sve2_f8cvt(const ARMISAReg= isters *id) return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_f8cvt(i= d); } =20 +static inline bool +isar_feature_aa64_sme2_or_sve2_lut(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_lut(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 1648c2c96f..b703e75b70 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -90,6 +90,7 @@ typedef struct DisasContext { int vl; /* current vector length in bytes */ int svl; /* current streaming vector length in bytes */ int max_svl; /* maximum implemented streaming vector length */ + int max_any_vl; /* maximum implemented vector length */ bool vfp_enabled; /* FP enabled via FPSCR.EN */ int vec_len; int vec_stride; @@ -874,4 +875,11 @@ static inline void gen_restore_rmode(TCGv_i32 old, TCG= v_ptr fpst) return dc_isar_feature(FEAT, s) && FUNC(s, __VA_ARGS__); \ } =20 +#define TRANS_FEAT_SME1_NONSTREAMING(NAME, FEAT, FUNC, ...) \ + static bool trans_##NAME(DisasContext *s, arg_##NAME *a) \ + { \ + s->is_nonstreaming =3D !dc_isar_feature(aa64_sme2, s); \ + return dc_isar_feature(FEAT, s) && FUNC(s, __VA_ARGS__); \ + } + #endif /* TARGET_ARM_TRANSLATE_H */ diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 508d8e377b..ee71c63116 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10820,6 +10820,7 @@ static void aarch64_tr_init_disas_context(DisasCont= extBase *dcbase, dc->vl =3D (EX_TBFLAG_A64(tb_flags, VL) + 1) * 16; dc->svl =3D (EX_TBFLAG_A64(tb_flags, SVL) + 1) * 16; dc->max_svl =3D arm_cpu->sme_max_vq * 16; + dc->max_any_vl =3D MAX(dc->max_svl, arm_cpu->sve_max_vq * 16); dc->pauth_active =3D EX_TBFLAG_A64(tb_flags, PAUTH_ACTIVE); dc->bt =3D EX_TBFLAG_A64(tb_flags, BT); dc->btype =3D EX_TBFLAG_A64(tb_flags, BTYPE); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 13f7ab01af..ea0d66178e 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8268,3 +8268,71 @@ TRANS_FEAT(LD1_zcrr_stride, aa64_sme2, gen_ldst_zcrr= _c, a, false, true) TRANS_FEAT(LD1_zcri_stride, aa64_sme2, gen_ldst_zcri_c, a, false, true) TRANS_FEAT(ST1_zcrr_stride, aa64_sme2, gen_ldst_zcrr_c, a, true, true) TRANS_FEAT(ST1_zcri_stride, aa64_sme2, gen_ldst_zcri_c, a, true, true) + +TRANS_FEAT_SME1_NONSTREAMING(LUTI2_1b, aa64_sme2_or_sve2_lut, + gen_gvec_ool_zzz, gen_helper_gvec_luti2_b, + a->rd, a->rn, a->rm, a->index) +TRANS_FEAT_SME1_NONSTREAMING(LUTI2_1h, aa64_sme2_or_sve2_lut, + gen_gvec_ool_zzz, gen_helper_gvec_luti2_h, + a->rd, a->rn, a->rm, a->index) +TRANS_FEAT_SME1_NONSTREAMING(LUTI4_1b, aa64_sme2_or_sve2_lut, + gen_gvec_ool_zzz, gen_helper_gvec_luti4_b, + a->rd, a->rn, a->rm, a->index) + +static bool trans_LUTI4_1h(DisasContext *s, arg_LUTI4_1h *a) +{ + if (!dc_isar_feature(aa64_sme2_or_sve2_lut, s)) { + return false; + } + s->is_nonstreaming =3D !dc_isar_feature(aa64_sme2, s); + + /* + * The MaxImplementedAnyVL check happens in the decode pseudocode, + * before the Check*SVEEnabled check in the operation pseudocode. + */ + if (s->max_any_vl < 32) { + unallocated_encoding(s); + } else if (sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + + /* Then there's a second check against CurrentVL. */ + if (vsz < 32) { + unallocated_encoding(s); + } else { + tcg_gen_gvec_3_ool(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + vsz, vsz, a->index, + gen_helper_gvec_luti4_h); + } + } + return true; +} + +static bool trans_LUTI4_2h(DisasContext *s, arg_LUTI4_2h *a) +{ + if (!dc_isar_feature(aa64_sme2_or_sve2_lut, s)) { + return false; + } + s->is_nonstreaming =3D !dc_isar_feature(aa64_sme2, s); + + if (sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + /* + * (Ab)use preg_tmp to merge two disjoint 128-bit quantities + * into a sequential 256-bit table. + */ + QEMU_BUILD_BUG_ON(sizeof_field(CPUARMState, vfp.preg_tmp) < 32); + unsigned tmp_ofs =3D offsetof(CPUARMState, vfp.preg_tmp); + unsigned rn0_ofs =3D vec_full_reg_offset(s, a->rn); + unsigned rn1_ofs =3D vec_full_reg_offset(s, (a->rn + 1) % 32); + + tcg_gen_gvec_mov(MO_64, tmp_ofs, rn0_ofs, 16, 16); + tcg_gen_gvec_mov(MO_64, tmp_ofs + 16, rn1_ofs, 16, 16); + + tcg_gen_gvec_3_ool(vec_full_reg_offset(s, a->rd), tmp_ofs, + vec_full_reg_offset(s, a->rm), + vsz, vsz, a->index, gen_helper_gvec_luti4_h); + } + return true; +} diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 72755b27af..e2106fc7f5 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -31,6 +31,7 @@ %dtype_23_13 23:2 13:2 %index3_22_19 22:1 19:2 %index3_22_17 22:1 17:2 +%index3_22_12 22:2 12:1 %index3_19_11 19:2 11:1 %index2_20_11 20:1 11:1 =20 @@ -1737,11 +1738,19 @@ RSUBHNT 01000101 .. 1 ..... 011 111 ..... .= .... @rd_rn_rm MATCH 01000101 .. 1 ..... 100 ... ..... 0 .... @pd_pg_rn_rm NMATCH 01000101 .. 1 ..... 100 ... ..... 1 .... @pd_pg_rn_rm =20 -### SVE2 Histogram Computation +### SVE2 Histogram Computation and Lookup Table =20 HISTCNT 01000101 .. 1 ..... 110 ... ..... ..... @rd_pg_rn_rm HISTSEG 01000101 .. 1 ..... 101 000 ..... ..... @rd_rn_rm =20 +LUTI2_1b 01000101 index:2 1 rm:5 101100 rn:5 rd:5 &rrx_esz esz=3D0 +LUTI2_1h 01000101 .. 1 rm:5 101.10 rn:5 rd:5 \ + &rrx_esz esz=3D1 index=3D%index3_22_12 + +LUTI4_1b 01000101 index:1 11 rm:5 101001 rn:5 rd:5 &rrx_esz esz=3D0 +LUTI4_1h 01000101 index:2 1 rm:5 101111 rn:5 rd:5 &rrx_esz esz=3D1 +LUTI4_2h 01000101 index:2 1 rm:5 101101 rn:5 rd:5 &rrx_esz esz=3D1 + ## SVE2 floating-point pairwise operations =20 FADDP 01100100 .. 010 00 0 100 ... ..... ..... @rdn_pg_rm --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197557; cv=none; d=zohomail.com; s=zohoarc; b=c3zbsjvXXEDHe6fhqIhZ2rUj8LuXXd3r44hMWCv1w7/NlXsfTzq0ns3OIGeunfyTz78365Bp69x0WUpXNycOZaFTqRgwRpYPHtj95pPxh01B9kYk51nP/iOK3R8nEJiqemqwELPRSZIkerX57Y9zt/i5u6z0eyXEJK+Z5eqw9k0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197557; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7QG3SAWZXTLSfeqfkLdTcj+WQldu34LGY3+/Bb5YVXA=; b=lx16+ivsRqANRusy7qHJbt7IncxGYDPqoybNt7mHHNFfWTIgRBU+bEr9jE0f2dy2Xk2iCbVPEdetcjb+xfjIUT6/1pdzOj4ZzfTcG429aEGclxla838WYqzEq3txBT9p0CYfrXbaBTwsgw+hfv9jKApJAcqIOb9r/NdzOVpGc/g= 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 1778197557843471.6457338688791; Thu, 7 May 2026 16:45:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Om-0000lQ-MP; Thu, 07 May 2026 19:44: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 1wL8Ok-0000jA-KX for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:54 -0400 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Oj-0001Dw-0U for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:54 -0400 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7dea1272943so885989a34.0 for ; Thu, 07 May 2026 16:44:52 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197491; x=1778802291; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7QG3SAWZXTLSfeqfkLdTcj+WQldu34LGY3+/Bb5YVXA=; b=mK01Swc+dorVWbFbg+aLhNTIn1Li/x6rFxB+Y6ZyJDuExjF3QEm4sPcWoA4VWGZRdK efrNeSdhmqc1z6JI1imafFTl1qbwWiLKZrHobLTFsL8nptEH0pWZtLYPt55BVBPTU8mE TKorS8F/Lzb2UEgUueA60Ipj/mDr8/8Fhfb5onsH8VGsuyTUyoaNUZ0SGY1ycV+pDfyN G2CgdjzNrwbUVFEhDp/qJ8eXDW+e1L8dag6lYOqR9m+KZEixhO+jf2IHxKuEkXrP+VuQ repuXGVRsEqFwaKwB/m7mNoLVHm9YIPnHmdV1xLwxVDwrP6sZRjNH0LRlYrQ+DW6UoSr wwnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197491; x=1778802291; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7QG3SAWZXTLSfeqfkLdTcj+WQldu34LGY3+/Bb5YVXA=; b=KEMA6k1qiK/wLmoUfL7gVOZYaJnRKc5bIhZ9jLwKc+bLqV8x8suYbVuqNfXFhuvMMc iuYUtIqHDQ5xRKB8NQJnD6MEMkKI75LIJTELFXQxezTfisVy7g6s2qBfnI1EtGXGq3UW b5nK7pf+6hVkktz85Zhb7wHIrNcvDBzVWyMhbnOp0O/+VuCF6Gb+bXbZeC/NOf1f/pxK p0i4A425LOIxAUvptAkvGFQQ7IMj2mKQKS4zfTYvMug7nqMOgJYSEClFo1cy9nqrAiZk iyVJwzfQvfMi5Q+78TAWrfcEbPWdV12QIolfhWwoBPLt3aZWOTPp1mY4GNHA1i1d9yZi 2gXw== X-Gm-Message-State: AOJu0YwuzhsXTbvg4yOGqtVAtDHom2MS0NgDV5xxbwA68gpHhMh31KQi 4buRdKz4fj0mAV9zKVXYJWw5XV7PnjBrj8+yz4gCKeiKFnnU2Q4sgp9SuYeka+F5FYyJCW4IRjI zYAjS X-Gm-Gg: AeBDieu/OByAYTcuu1+YaU1tWsXg5nK7wpZ6S4HUjjtxtmFoyNTjU3Thg0Pm51CAGRo scsQefVybdNsEdtepnmNbxIIq1fCTtg9U1RmgnQvPQDE2DoVRLwxjx9l4YAtbTMUTem2b24/iff AJki4Qsv7aMR4mAhHvfChObR3WqzEzB9SsRFEH7ZuNRyVOK+f00sfd83FWVtJdCpqxRec6cgFgS qaate5c2jdCrCLeIAeoZEs4xpFk9bYIMbfJtxJNvdj163sVuQ8NwWtTinUGPAuE9b6C1RG6G2FV cdSqlOn2VjJQ8jofLS6cciDjv+yTRDIYCq/InklijTNPlrwdng/xirzs2kExBql8opf72Ksjms5 ud4EmLL+ZrxBNeISUaIb88n+mU3JQk7anEkbuY0Iwb5cz0/90t01BnCT4ZvCxoXJV6j1HepL4MH EHtDWQhIhRiKwbV8xxkFFcWJx4vjyguLn5u/7P90eem0wxcg== X-Received: by 2002:a05:6830:81c5:b0:7db:a8b7:c565 with SMTP id 46e09a7af769-7e1df04b7d2mr5808004a34.20.1778197491451; Thu, 07 May 2026 16:44:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 38/60] target/arm: Enable FEAT_LUT for -cpu max Date: Thu, 7 May 2026 18:43:51 -0500 Message-ID: <20260507234413.643512-39-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32d; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32d.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: 1778197559589158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index a377f67b9c..bc866c5a67 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1263,6 +1263,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ISAR2, BC, 1); /* FEAT_HBC */ t =3D FIELD_DP64(t, ID_AA64ISAR2, WFXT, 2); /* FEAT_WFxT */ t =3D FIELD_DP64(t, ID_AA64ISAR2, CSSC, 1); /* FEAT_CSSC */ + t =3D FIELD_DP64(t, ID_AA64ISAR2, LUT, 1); /* FEAT_LUT */ t =3D FIELD_DP64(t, ID_AA64ISAR2, ATS1A, 1); /* FEAT_ATS1A */ SET_IDREG(isar, ID_AA64ISAR2, t); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 44c7196d09..cf8771d541 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -101,6 +101,7 @@ the following architecture extensions: - FEAT_LSE (Large System Extensions) - FEAT_LSE2 (Large System Extensions v2) - FEAT_LSE128 (128-bit Atomics) +- FEAT_LUT (Lookup table instructions with 2-bit and 4-bit indices) - FEAT_LVA (Large Virtual Address space) - FEAT_MEC (Memory Encryption Contexts) =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197602; cv=none; d=zohomail.com; s=zohoarc; b=dh7Nk3zExgWeTgo7PjVr5BbDYrXhncvSa5OFkorlNIKSN4ORuAUHooON03N2dgJrsL386EQOy1WlErn6Gs627az00KseHiNpPEWkla/p6zb2+b838nbHOMNXuFST0UzGWAtJnZclayZCJ1ro+2uLdjvfcky2g6pnxdbXcsqFBa8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197602; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nTIDtuillPXckV86mcaM2Utf4vRJVw8yqCVUR2w2Jkg=; b=kyBpLG2+VrZ9LC+Ohrzs231UaSsdBLhbSjn7ZaccefBy3Z8dx0E3ayzQ0o6+T4FZgDAcn8N42IiF1QYZWRXgPBsz6UdYo5Qn3krR30AoEChPrT0Q/hT2rLQE/jZjL1uFl6UC+mI5Wa1OhmF6Ze2I3Uo+AEkojLY3LE3P26fctU0= 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 1778197602714160.09277591508635; Thu, 7 May 2026 16:46:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8Op-0000oy-DS; Thu, 07 May 2026 19:44: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 1wL8Ol-0000k2-QR for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:55 -0400 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Ok-0001EE-1q for qemu-devel@nongnu.org; Thu, 07 May 2026 19:44:55 -0400 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7d55b97f358so999020a34.3 for ; Thu, 07 May 2026 16:44:53 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e367d8feb1sm84320a34.23.2026.05.07.16.44.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:44:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197492; x=1778802292; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nTIDtuillPXckV86mcaM2Utf4vRJVw8yqCVUR2w2Jkg=; b=Dv3IdSY1k5/NR0ykl6Ia41r6byNzzT5aL0yGJHZSDx5jA9BGp6UI9hpmxQCPCYwybU rBE+1ZSbPvWzGa6+ec4qER2JhChjoDsutPY0RXotw9mcpWubKh2fh/D4zk8JF5LVrD26 Pv/+uofnEPq4PpDuRsckYVvFL7jg+1ub4Xt7AJUlZjQFAZ1B/8T0Bv7ugFVdWWiddmK2 AjTvl57bqF9d/iViItsvxT+kZS7PPGSKsvOhUDopMsZ50ORkDIHnej/5u+1ITcc/jI4h pa2CemODpu2BfjLwaoUzAIqTBy/C88gDj+iaLe/BLeP+9HpZw9lkfFkkcbLii4xaB9s5 TKZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197492; x=1778802292; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nTIDtuillPXckV86mcaM2Utf4vRJVw8yqCVUR2w2Jkg=; b=HZYN6Tj/Dy07Y8HldtUJVTJIY7KFl+c4LFWIcMjYrna3ppTKdEq4a5AtOLsBcgT3R9 vfLn0ueyi6YRVGq4sozbIgc8xGsEUhlSX4nvHFpzeaSCE+mcvkYJI/S3M6UFlhjeo9G4 Nyf+1FGs8GlzKpzLz5fwTx/kHSzTP/SeoMsdk9Ar7lfDL2kxJdDZFnaoxyXKjyKMUj6K /Sm0JQbgxl9U6ujmAo4cPbLl66OpPyinig6ZyOgnW61pv8JmMs7vB7ujCgoSlptbWEls s95NkbxyHz6Y+ws2rJPTVv7+ocQBNEZHmyno28hFEWcZyEv20MuG6ZSPZqQNDO9bWtUW 6x/g== X-Gm-Message-State: AOJu0Yz0l2pAo5qyLP22CcRTLyT7MPMLMGszx0rq1Ay839yQyo9LnYxz AX5Hn4pT4n+tqszywD4FUVtUJ9bGN2n8Hj6QKDkmZeyHvooYMbVy52V157d0SeNZfLqV0U8OuYI gyZXu X-Gm-Gg: AeBDievBUf1J6thO1lT8j/bLhxEIKf9PgC8hADd7l7Onem0/s6gYaw0y2axVc8NK20o WwJbf4FdAzdZbZUtQCZh6uDMiBdyz0toyWg35a3DObvWr6Kda7EFKEMMfgQbv2xtOr46DKY1u/N BhrIzCzBebXp4wz1kLsfzXfWKsrxYeXnlgrdNNQQGUlPT0QBK/myCnuvFOe4ETRVNyOohYdXpSR z81P5gSeR3Il/xXek8R/NnxIhsZC+diH72DSiTPyjQt+iRJK2+BVzUGIF3zlXtiCUr3dDXSgOaV 1PhOYfbaV5smJDrBVithC1CwHJ9xLVUfgEPP6nHl4TxL4mIHEttVPcVCidbVHF+NGeMpdM/4s8K a/cQzJccx2FoFhj+zQBW6hm/9DX2OXh+kFs+eKr7Ebr2ItnMNHk05opcHpZfOEum7CtWAsCsuEE 8tDl5RfWNi2qAt/Lvo8Tqr8tWavS998oXVMLUUAHkFTtNvFQ== X-Received: by 2002:a05:6830:82e5:b0:7dc:d951:9766 with SMTP id 46e09a7af769-7e1df20c283mr7010220a34.28.1778197492434; Thu, 07 May 2026 16:44:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 39/60] target/arm: Enable FEAT_FP8 for -cpu max Date: Thu, 7 May 2026 18:43:52 -0500 Message-ID: <20260507234413.643512-40-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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: 1778197605294154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 6 ++++++ docs/system/arm/emulation.rst | 1 + 2 files changed, 7 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index bc866c5a67..8d0c057902 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1391,6 +1391,12 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, FA64, 1); /* FEAT_SME_FA64 */ SET_IDREG(isar, ID_AA64SMFR0, t); =20 + t =3D GET_IDREG(isar, ID_AA64FPFR0); + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ + SET_IDREG(isar, ID_AA64FPFR0, t); + /* Replicate the same data to the 32-bit id registers. */ aa32_max_features(cpu); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index cf8771d541..b6f0ca9351 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -74,6 +74,7 @@ the following architecture extensions: - FEAT_FHM (Floating-point half-precision multiplication instructions) - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) +- FEAT_FP8 (FP8 convert instructions) - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) - FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication= instructions) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197872; cv=none; d=zohomail.com; s=zohoarc; b=fueZEqhlh0Zy0PM/okYkGN0iC1PD7wK0TbDZY/jWHagb/e+0ogJP+mzMx5mm3KBV9VJJeQ7dOc0+3NGhQx30P3qmKL6MTPVDhFSfRxUQw+UBvE77nTDG/+xhpX6gFpoUi2yWmU/dpwjO0+qqFJyrCuzRgQW/oyb9ow/HePxXbxM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197872; 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=VOxj2Q+DoRg1m2qRsmYYEc+CXl7kO95lm+84NlFi+CY=; b=JSH4gKWsNS/vsUx2844qHBX8dJa6WqjSw99g4fT4954pg0fguLd/fXBiC8H23T5NgGe+NlHkWN7fd7uDAvO0l1py1Yrp5Q+YV7y/f+fKTlWasghHml1PiTzrVXwckhZ8lgG8rNthUFgajbDiEUi5UtjSFWrubkTqMnPUWGzon80= 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 177819787251323.161170949591906; Thu, 7 May 2026 16:51:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S6-0007mB-Gh; Thu, 07 May 2026 19:48: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 1wL8Rk-0007D8-BD for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:03 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rh-00025u-Db for qemu-devel@nongnu.org; Thu, 07 May 2026 19:47:58 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-479e6bc357eso595526b6e.2 for ; Thu, 07 May 2026 16:47:56 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197675; x=1778802475; 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=VOxj2Q+DoRg1m2qRsmYYEc+CXl7kO95lm+84NlFi+CY=; b=hj+PIk2PWHWAS3AAxghPMS+4goMnKRfiS1/7JZYKMDrY4QbaFl73fsJwT0huq3SN/C Zozp8LEIOr7E63JGdC3cVdd1MENZ64d7zpsOcQMHMtSoYeoSUryhhhc6l+1sGeieSf8p Vj0Z0jOSqN1MJOF0C7D+ZXAoL8DYSNmJSHVxGFkihhO9yNpxsRn8OncU2b1Km+g3AEmO LV+x/BxkzQBXvStxZCjwRGqy31DLOQYQhRwbuCs+s1CAmw+NjN1bM1m4smtXGwgF8A/e BBQu4fsxEX6UIRJH4rPfZTdV4IW4fieNLTXcJXV9Jc3RH8QO7LlyJk1joghKtGzdB4vW vxqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197675; x=1778802475; 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=VOxj2Q+DoRg1m2qRsmYYEc+CXl7kO95lm+84NlFi+CY=; b=rFXZum1981QMiBNYF/7L7QHSTPMSBCj+JTDBiD3CnlAvgUkwhVY8tcgT7YLzZKb4Jm yksH5KKSft4a7HIfbc10Q+UOirWadKt1owzsfSbJj6TOPg5p3NlgQO04an3jorI+NIoT uJPIZYLnodUH71sScQb4wB7beGeUCOdU54GR/e82LZ81QUKdcfPz642BVivlhNsvX3P9 XNymHx2bpJCngPUPnPZRjXjp9yjTQFWjrwpbZZYKaBs0dJaEM+oJQ9eB48bXj9QfaYD7 CWl4t9GEd/3f3xqdRTbMzg3npIDTo1F3dCQr1Pm5SPNhAM+jVJjysumfyD2DO0EaOoLk V5PQ== X-Gm-Message-State: AOJu0Yxhno/92wU0ZJjQY1Am8H6stSxVqqyaUOXOTYrKfl7mjSmMi08g qIdjZmJF47GC3Uj6g2ZP+A7ymX4IdII6LkrpXDnXIDyRz34e1lZkpUwKOLbnEsm75gVYYi6j9R9 8jxoq X-Gm-Gg: AeBDievts/VBP5f9RTHqA/wunzgt/hWVKYFM+vVWEZrfwwgnAWANDZToDWrlmf0aiMm lol/M0ZYWlsu9SgKqS1bSkfRGhGG5u0828lqD4gOtfA1QqGUzPMYs/6Jty5iintmKZ9tg10oGbu geDfEJIRmHH9kIcYDi1tL2MoWG/cUZhpvFxjVdNe6gJ4Rrjg48PIPzp4ojDPlP6M9HAvdTMIN6i 737wt88/2ORJ8FxBy7viJhIWVfyfI2FT/mCVEtjTQTb+ejj6cSF5n9nYKfMjMtPlco+grx48r0R PI082PDt7fwsFsMvBfrp2NiFKgdJtSbFvPhvUhbpZtkQDuugXSL5vFaj76wk79uE656OjjZ0Fm2 g1VBB6yftFH6DUvwJNcYplFpGxhE4RC/ln0KS80qSBkRJp6+mDDdZFTkLnKTCa6V338Goyehv3a IDmsC1gLUWA8g8OHUOJD7VnIzeM7NrkkOWMQz/uVk1mGdHCQ== X-Received: by 2002:a05:6808:e656:b0:467:2a6e:adad with SMTP id 5614622812f47-4804220b8b9mr4568342b6e.11.1778197674667; Thu, 07 May 2026 16:47:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 40/60] target/arm: Update ID_AA64SMFR0_EL1 fields to ARM M.b Date: Thu, 7 May 2026 18:43:53 -0500 Message-ID: <20260507234413.643512-41-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::230; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x230.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: 1778197873160154100 Content-Type: text/plain; charset="utf-8" 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 47294eb807..684d635433 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -396,17 +396,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 20:37:28 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=1778197896; cv=none; d=zohomail.com; s=zohoarc; b=XsDI/LzDdhh1bWWkmFzVDpZMxdoRMSgJRqGHVvZDI0XF4ON+nV+thx7NZsn5a9BLWY4+zIcwD8ko1ZJndA1G5Lbl8VPSc2r4dOMuJPloAKxY8Q94m8fYALuY1PZupCH2TY/TMCT5ZNV7JBk1S/iM+JvlpVnpVKM2Pq1Ks72CTAs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197896; 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=9inL9WKVMj4YtL3JrvHyAFtU6G89KncdZZ3z0WH6BeU=; b=BTxEuYIxGo83LvQNefBo5gtB+8FWl1kwtPYW9KQic/nND64PepeH7OUpm0ADV8N/FmjviK4aluKgJJ2MOIFzwWuDv6hNFVN4P1Jx/MwxnHM2LAKF4cBQ/KbYOWBmU/ulMNSRkJ1BcI3VQAdeFr2+Vy+6u2/0THhAGA02hmqtRHI= 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 1778197896235648.9206982030497; Thu, 7 May 2026 16:51:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S3-0007Th-0a; Thu, 07 May 2026 19:48: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 1wL8Rk-0007D9-CP for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:03 -0400 Received: from mail-oa1-x2a.google.com ([2001:4860:4864:20::2a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rg-00025p-Sv for qemu-devel@nongnu.org; Thu, 07 May 2026 19:47:58 -0400 Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-42fdab683a9so1028020fac.1 for ; Thu, 07 May 2026 16:47:56 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:47:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197675; x=1778802475; 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=9inL9WKVMj4YtL3JrvHyAFtU6G89KncdZZ3z0WH6BeU=; b=er92aTepZt3m2RZ6V81lCpkujmpf5erehbo/NUteX5yxwBQd+61okEGC0CUy4pzrTx 8zNic7OxwCZZjfxT4fmKFRRc6aLNzk4N16ZUo6U/dtP7zU/i0dqT1O7LOAmV6gq7RshF jZ6o/JL2YPIAKDY9RwRZ7WvFAe7JZPyghfWxo0wFWc2Y5l13ZsHRX2yjm7uhWNQUHxww AIz4c3SKQGhrsyGRxGXs6AH8GH5TAsQ34H4F7nNUOSKcuf6p3BOmeC5Wz3Nq2nXpXmIG juH+WeAKWz52MdAdbpBV9ptcA7ncChDyRZ2ftpk8AUatzFjZqH/RTh52HckKKOWGmpdj hsHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197675; x=1778802475; 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=9inL9WKVMj4YtL3JrvHyAFtU6G89KncdZZ3z0WH6BeU=; b=IuWq7+1ThwtC4WTPY7uJMeV5VcMlMCqWDrzIPFYmSbm8nBOiWwuxPi3j47fUm1AWQ7 +vg1mH9l5cOUL1cqpx8Qs86GfpKr4EZUdzx04TFECjagZ5FtexNdsdLLhSgfa06DRzzL lTSDHPUxOGBV3Ggq/la5j9CC5gKSSy6r/U+iN3lYDrIarXzOmDmGoXAhQddbp2bPy/xM uft8jhZ8gENGn+jqmzn89AN793MPDqVTWdDBwBlc4IOOuoOOWo/8x+X7NPxOg37ySfM9 x5xowTNZbFjoQDwerRQPtXG0wffajJW6O9s/3Oe7iSdgi2xQM4qQT4lwlM4OzuYGX1ij shbw== X-Gm-Message-State: AOJu0YxzC6oAr32a118Bt+gOyxw8L+j/MgjTmyfichrLYXDSZpv4dlex cALWq3H1GfmGF14Js87scVdO8XcmK7jkea4UpOWjh9coRpWibk6sot7b8bYqzpuWip+Bm6v18LK FAw9c X-Gm-Gg: Acq92OF9HnaVwWTMHbf5Gt8jUtzw3H+tnDex6Kno3KWrxVxJjBwJsUjQFOWd2aqlPLk lnAHmLkIMN2upl+/KWIgouBR8Ltf6WgKlfI6NxyYJuWk1l3US0ZVgUjgSljlQNRq7Pgq7nJzkTx id5yvvGQPRdYZ1T42LsE3BokBMLswMXI7+bffjufNp8Fy2qCLwh0L3ul5+8Ly6udYyWo/Q5gYWD o9caz3HgobTCL1tPFH9ZYkwubZAf3V7jjh2qaifvh02H7Fk9BjWB2ZjT9uIKADOalTZHJnZgLNV sBHnDvE1rpIbqL+i+EcLnCw27umMkuorVg0b5jYlkTTwdI4f97bp/du3JitsmfdD+mU7tzb+rET 6CDq5ED6La4OzmHnh1Nu94OCvh3uHfP4Mwmff/kujxrJfBZuOTg+Y8T11RkpJaY7v8lq4F3ZSrJ +KiE9ZHfRKAVbJKbT9b2iwyINDvp4WtBINIRu2qj5xtitGNCTceKm/vAuX X-Received: by 2002:a05:6871:80b:b0:36e:8381:db00 with SMTP id 586e51a60fabf-434f6144552mr6678988fac.9.1778197675441; Thu, 07 May 2026 16:47:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 41/60] target/arm: Implement MOVT (vector to table) Date: Thu, 7 May 2026 18:43:54 -0500 Message-ID: <20260507234413.643512-42-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::2a; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2a.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: 1778197897451154100 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 684d635433..fa8a619ae0 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1564,6 +1564,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 20:37:28 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=1778197926; cv=none; d=zohomail.com; s=zohoarc; b=YH0KKUUnmuVBXQ36ANxxsGjmXpvNW/2KnR9KHJoh3jdkeY7q8E0WuXcaGtQttwgPjN6lRmBh5ZuqO73mFuQjCWs6uulVRuRuGXHpDMXg9EJG3wGmSDcNxgKWub02YihB6fFvK4ZKEl+wIBOScNMopPbSRHKj0xKWQAtNyigRmTQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197926; 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=fXPj/QlpCYEFhtvvZEtY1JMDadNpGSOfaXgiXErZtmc=; b=VnYd29CK5JzTQiGSRFN2qEOGmM+kkToNiHd9hQFb7IwGDIzLipn801bthwvjFzpTJCSt5q7obOFKtRyRWO/1KrtabuPkUx5dRGZJD6ueSwKggs+VBvyjSPmwhZLck5DdnYaDoLzpotflwyvzJG1PDvaZV+3eGAX16aSZvnoZEX4= 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 1778197926628684.5299320896703; Thu, 7 May 2026 16:52:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S5-0007hB-70; Thu, 07 May 2026 19:48: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 1wL8Rm-0007DH-A0 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:10 -0400 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Ri-00026H-9O for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:01 -0400 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-47c7b282d73so864727b6e.3 for ; Thu, 07 May 2026 16:47:57 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:47:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197677; x=1778802477; 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=fXPj/QlpCYEFhtvvZEtY1JMDadNpGSOfaXgiXErZtmc=; b=zjBJN78GjE6+oegTt5+SutKoZQCa5M9b5aA94sBg82/N7LD8ybJeg/430UnDvrJDxw VAsk/i5Rq/n5pGgzDRpdpPyAPmBgb3rU0rEfRIoY+v3k5QYeKZESuASmSvtCp1t+Q1QA znzYzHjSFRJGo0ky55uZTsdrc3BSWq//zJQRSnkseIaxh9QVPMuFyxWYf4ARw/Sur81S BW7NSiue26w7XgZZcGKMd/G7FcyUxv40TDzE6JmhK48JoSlnLNb+9g6+wI5BzxCAhfXK +U2C8OSGJWfn3OBkTEMIIHod2zLQOqKb1s2o4CszdkJ8TxHuHPUk5jT57+VWRPHr93vu 4X0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197677; x=1778802477; 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=fXPj/QlpCYEFhtvvZEtY1JMDadNpGSOfaXgiXErZtmc=; b=YVcx8wzwSaSFOKZ9sSJbHc3lJGDE2nWgDMlHgig4dEjhViLXv3rDt3Aec0g6Hzya/j tS1B9xBfpvZ8rxB3wB0E4HQa0KKhF/86N7pscTGqddFIufcVg8a1Xty6z9NHjRo47k+9 IvQQIKceDmP1IGhQ35uRuHXaCvFt8Tlmy8VRpWtiuUkE9EFhWfSq50EBuLOVtuHRaC4k Rql8F6rGypICQa5ZBdNflVQWMlMDNFr9/j15a0wVQPG1NihqGvnlSdYgTWcvA//O7R4P CW68l3apieqxFViu0fUd6reKE3scqWCRzpPJ3WPKR64BND+QQzOUhOeo7nqziN6sOyBB QXhw== X-Gm-Message-State: AOJu0YzzaT2rmOtG4IqLxv4Krb6eZr0top1xJh/QZzpXgPtELA6R6pzu C8KnG2hgDeKUpRh26DUCcRtUjpZNnCtsFAREzlJ8L4CaUEO8JOWZKQWpjNs+BSOdP2TI+gXPahv wqs1+ X-Gm-Gg: AeBDieuhXwYQt2Q1yoITigfqjYFjSjac+3rz7OLgvV3zF6UrVYSfwu6vpNX6DqYS9Rg LZJwTSIwTSnhaPPu2uUZMQk+suEJKTqfp/231Cy7vvTnHuKjzXHu0lsv0luINmtj2yxyCZJ6ZYd 3roFwZgDL7o5YVF90C6qI1hck4VkBgDzvGU8Z8SHJngBPZ6a40PDKxXT8MIlzaOnBGytltjSPYn M1u21xWJccauZUwEFwLS/f8necVonMUikTM0qQ/0RwBbG0nsDqwewx9QeEUtlWEaVRAG09c6YfI V8axHmtFcmriZW/dB9D+XPKH4REa/5VUd4RZ9iviK7oRFqdi0bqY4kt4ko7xIn/CxfrwuM5qEXj nAw8SBisdFmzKYKVcJ0S8XPIENh+TTDbtCN77dY+xMO/qHuW10uM+/i01YfSrODooQz6UPhi09m nGCWzcBBhhEQAQoHsUy0Cs2kPPgr3YJeRGRB5zWhPLHmtN8huChlxy4DoieuikdTF7168= X-Received: by 2002:a05:6808:4f26:b0:46a:cb96:d2b7 with SMTP id 5614622812f47-480424e1ed0mr7101205b6e.35.1778197676663; Thu, 07 May 2026 16:47:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 42/60] target/arm: Implement LUTI4 (four registers, 8-bit) Date: Thu, 7 May 2026 18:43:55 -0500 Message-ID: <20260507234413.643512-43-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::22e; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x22e.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: 1778197927901154100 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 fa8a619ae0..1963392730 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1637,6 +1637,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 f0dc11bc8a..20ecdb0a9e 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -3346,6 +3346,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 20:37:28 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=1778197896; cv=none; d=zohomail.com; s=zohoarc; b=HFxrl71ozCZpjHqWG3yHltLbxmiKEDGdnFCRCkr6XizSdroT5zjaxSWrsCjELpsKwajI2Alv29vVEUs+Y68dNB90jxh4U+5tZT2UZUmvB0xCW4RW4TUGJ7WJVcFQFLChf/Y1np7gF6wlT+arFgVoK/53aNeDfjIqhO+oI/MtADI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197896; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BiL04P2CzHdch1eAb8Dy0QC+hd+UkcPVAZS3KCpqoms=; b=YwjqOwvAru5LM7UiqT9aPs0I+BgJ5XPQzzrqip8ngmwHx6Ev7vRlAHceFKN5GuMhjZ/4LCOgn9eSif00WhMekdMtbxUgfBYsXeZJfd3zMyEJio1oeoDQnUBhTD9Ey4kgCWbDKGc3pjHuZkXCacXCA06kPU1R9GZ6mWpNCTxR1Lw= 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 1778197896325903.5091741080812; Thu, 7 May 2026 16:51:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S5-0007kF-Ue; Thu, 07 May 2026 19:48: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 1wL8Rp-0007DQ-79 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:10 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rk-00026f-2X for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:02 -0400 Received: by mail-oi1-x233.google.com with SMTP id 5614622812f47-479e6bc357eso595540b6e.2 for ; Thu, 07 May 2026 16:47:58 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:47:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197677; x=1778802477; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BiL04P2CzHdch1eAb8Dy0QC+hd+UkcPVAZS3KCpqoms=; b=Bc+MJBhOpsevCOWPAFFcLMEgFASfsemjNIiMMk0Ugfl+yOV5fTL20IONejwJo6EuKp gG2yPK3We/txJPQ4QOiqC82mmabIO5EkmJxC8m0NCdLm1qAxcDcc4J/qEszB3IpSmQsO 8WE6ZA3neBDKcs0NprJnlQHWDbxIhvv3Iw+InAGq8hnUACELACqtDvm+w0Mgez6NBZhT wvxBeOUb512VZw7b7OnB/Zg7okSZkLsWAIzAzwO9unQ98UPwBe2MZFjHU5uQv82BAWpQ Z7VjR/+IyojtTTbnG9aNCDIvGohEpgXrbDJwFSGJjwxvCm/UyKIzSgYUHtDW6fykfCx6 bW6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197677; x=1778802477; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BiL04P2CzHdch1eAb8Dy0QC+hd+UkcPVAZS3KCpqoms=; b=tD4u+K9wZWgYx3Y8n+LKXgD2IlN+Yv2BC48NN8zkWldaQAtWBzFVfygAC5MyvrP1qh AMHW3IQgtvnZwIVI+IYVHPxmkRtibyuvupQa5j7rT/C/bTZ3yAZt0Q6D65G3Ba/V7KsZ 7R+nTDh7T1QMoBwKybIZ7+y8OnpCuPvV9pB/VzZUG8NWLBRZRn2C6dcWWkI77iWXvX7A jyiwGS5ySOwxrxCFN+buQ2e0Zbava+0UwJlYZyCE/gV04q2SFwLwOhh9vcXkF3cIOfj1 zwY/J8vSJhfMHPSVLKJBsC8GMCcfQ3igzHJsAcuLi5COyuB0W4X4wTfM3zpyJ0cp2s1G hQXQ== X-Gm-Message-State: AOJu0Yy42ql2IF8FgflNy8nP2+5j4iSPopVYenLOEF4gVW1u5Kr6PT7e 7kZ89TAGbNbcBdP8NB6vEc5BCF8QFas9p7e6mkQK9ZzobHZymUzdQKnUNew5kwSrB5HbknxH9ou uLwVY X-Gm-Gg: AeBDieu4seqkBFSXxBiMO1pXrVZcatBMbArqPw5+FUutoy9jkMja09oZJZH2IANleR2 DSzYW0WzUHcZoTn/2JkadGzo+McypXP1PK+zA3yuKbkCStGl/3nJIgRpjVkOr+7QAuX9uX8ml7G ihkDlWK0kHK/1rXLEWi3wcpI8eqA0VJTqsyZlxWyvazDg7anvV09N2r9JunM3NgBp8l90n20wsq Xr8WixYDTsUPo8Zff/gHUU48o7shlvv7ea6Hgf9Dm5532ff1jc/g8C/T7bPP+wy/D0LcRuB0sGg FXZW4Tv1NFipp82AaFAfTTmXLYMVzjxVUCd9CUzGBpMUDrCcbT1Pr0PryBvZR0WfhyTW2JJ2Ohk CH5WjJIk2Xrw/jkDkcpgKwAYHvmB9RqCQzKelt/mYZmio2hTUjHbMSrJ2pBFvi6yH/8hS5DFo+k 3U57MM5r02D2bBwIRGCg1z3sg3Xs41U2TtZn8nzINKn8zjmQ== X-Received: by 2002:a05:6808:3a14:b0:47b:9886:1bdc with SMTP id 5614622812f47-480424f6f70mr6191628b6e.33.1778197677500; Thu, 07 May 2026 16:47:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 43/60] target/arm: Enable FEAT_SME_LUTv2 for -cpu max Date: Thu, 7 May 2026 18:43:56 -0500 Message-ID: <20260507234413.643512-44-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::233; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x233.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: 1778197896933158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 8d0c057902..90214a355a 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1388,6 +1388,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, F64F64, 1); /* FEAT_SME_F64F64 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, I16I64, 0xf); /* FEAT_SME_I16I64 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SMEVER, 2); /* FEAT_SME2p1 */ + t =3D FIELD_DP64(t, ID_AA64SMFR0, LUTv2, 1); /* FEAT_SME_LUTv2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, FA64, 1); /* FEAT_SME_FA64 */ SET_IDREG(isar, ID_AA64SMFR0, t); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index b6f0ca9351..0dd6b554a0 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -158,6 +158,7 @@ the following architecture extensions: - FEAT_SME_F16F16 (Non-widening half-precision FP16 arithmetic for SME2) - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) +- FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) - FEAT_SVE (Scalable Vector Extension) - FEAT_SVE_AES (Scalable Vector AES instructions) - FEAT_SVE_B16B16 (Non-widening BFloat16 arithmetic for SVE2) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197846; cv=none; d=zohomail.com; s=zohoarc; b=Ry5zqcXfnTwWzX9gdMpMh5WvQWLSqli2+VhjzEYmeNsC9j86vgSM+pVurxebG7cYhRfk2hYmbHdJrvgVjvYBjyDCEAVZm3edfbOdu/r+BMXv29o21FI2R8pDHDXx1YCWM5uYSzuOETR7hL4f2+WUbVeTAPAbgvEW56kDsn3XqQ0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197846; 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=qa3JUTgJ+zTJ/z0yT/ZA3kz1XHXqDnx6MW9r9Nwgmk8=; b=UzpEeC21WGycrT3ZFeDi0kqn7BmoSaYDREgFVN82V8PiRgpEjMlEdzmNMQJ9NqeU7F5WphpzlxTaWpbdJ9nQFVJ6iYfjsb461XoNEVyZQUOkzswFKbvWw8Rxt771kbyltIFrQlyhyO1YGrQaJU74Us4733Ba2Mj7Sc6by/xSELU= 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 1778197846233388.14278103935555; Thu, 7 May 2026 16:50:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S4-0007fG-T1; Thu, 07 May 2026 19:48: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 1wL8Rq-0007DY-Eb for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rm-000275-1d for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:04 -0400 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7de4e6c5a30so1480930a34.0 for ; Thu, 07 May 2026 16:47:59 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:47:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197679; x=1778802479; 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=qa3JUTgJ+zTJ/z0yT/ZA3kz1XHXqDnx6MW9r9Nwgmk8=; b=S0BJ/wd2U9lY4urxYzcH5KFmLc18hRYbT7ZizwC+7L7hc0HlUEKbouqHMz1de1sHUP G35DisQEUQwMi3LwtAW2AwLmXyJm6t3u52D9S8PkJfzH92PYgjSt1fSuHgrqn2kpEsCD G3Vtic47jwNzWe2tbCJ7egoDv0cGJwNTGi9hIXVY7GojObjMxn34oz+H7PPeWY0PEQXz +i92+Lj6ACmcuawYS6u50E7AsjsHSJuHIj69g78FjjyUsnfcbNz0shiy/JMhWYV1mGPC ksljcPzpSApCFlNoFNGZPTD92jk0SBv8COqF1wDp8ouub5rI+amO/PVcUTMLKBKt+pLP Fk6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197679; x=1778802479; 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=qa3JUTgJ+zTJ/z0yT/ZA3kz1XHXqDnx6MW9r9Nwgmk8=; b=ahQ+4OU3AIBtjFqq5yxJ7ZnSaU0EOo2zKObkye1I/xdaf+KWaZ+TlodfnPe+8gjpMt oAORnPKx3hgGj7y2xQSO8oQA0znDo4gZ848hbuMbCxYOqylj5wtkZDv5x2EfrOJVYmxq js+EKK+xW0XBOTt7LignUUBThzIqIGwAlgHg/klwBik8SjDyIP0yeQa4MX2G0m8NBOH/ v0NEs80uUMaq5ZpDQ7katYzSd5CF7+mZiom5FfF8myoQ1JV8Fk9nnlSw2vHc497yg/jJ pG3U+/7HKhe4qnnaW81KFGtNHy5s3TRdUitbze/iDAMoGHHkIw/zMrP7VL/J3wGa+Ibw b06w== X-Gm-Message-State: AOJu0YzPU8xGzm9i+7IYQwVRJGEA1Fd0lRHaAkdPx+/kAyuIxIgFvgde Io17TMCqUdsRpS3bukRTQSDZnqns924K6GAVeobGeQAAP91D9wbggSD55Enazdw6zgi9UeV2zt8 9C3wa X-Gm-Gg: AeBDieteNCzeRs3+NkIB54OTi7jgvD/xAu3I4UfXxlg8Lz+Ohlzpw9oSYFEtq8D5Uir jbWaZ92ItXKM9wHeo/Vqt9cNe5fa9jTO71rCLgp5QMG24DOY7C45vYHtq1Hdg+eGfB531V7ktxS VPyEjsMN7NCBbVfJKR5HOfKHdAD4/XDWBnhyAfLDQnneXoEP+pySv+3pGAyS4ChaFHgkXIMk/Lj 0jYRDR1NfBpyrrs1yZP+ugXt4N1wF35zibRUja6zSIfA2lsXolBIoSTdZrCzN+IHPAdJWIjrvG6 /s4EXSh2C7tx6gpbZEZ+3Lg+HEMb0umFTSKtRQveGZyRQKkWP2VwLI8WU0O3b+WANZiJ6/HjyUX 2UswtZ4ov9M73upbU+nnYlS8a/VRolNxrk28t9UIalQKOVOaKWYw6PXNL15/csj0n/ue3+8RGz7 kqovqR61DaXnFzluuD6JVqkopmG/6/VovHJb1PmXRPzbuelg== X-Received: by 2002:a05:6820:f007:b0:696:2430:3277 with SMTP id 006d021491bc7-69998d0d93emr5506742eaf.29.1778197678947; Thu, 07 May 2026 16:47:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 44/60] target/arm: Implement FMLALB, FMLALT for AdvSIMD Date: Thu, 7 May 2026 18:43:57 -0500 Message-ID: <20260507234413.643512-45-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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: 1778197848674154100 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 | 119 +++++++++++++++++++++++++++++-- target/arm/tcg/translate-a64.c | 16 +++++ target/arm/tcg/a64.decode | 8 +++ 5 files changed, 147 insertions(+), 4 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 1963392730..dcbd839d2d 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1584,6 +1584,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 d7c1ff97b7..6d9f8a6135 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -55,12 +55,15 @@ static FP8Context fp8_start(CPUARMState *env, uint32_t = desc, return ret; } =20 +static void fp8_finish_fpst(float_status *orig, float_status *tmp) +{ + int e =3D get_float_exception_flags(tmp); + float_raise(e & ~float_flag_input_denormal_used, orig); +} + static void fp8_finish(CPUARMState *env, FP8Context *c) { - int new_flags =3D get_float_exception_flags(&c->stat); - - new_flags &=3D ~float_flag_input_denormal_used; - float_raise(new_flags, &env->vfp.fp_status[c->fpst]); + fp8_finish_fpst(&env->vfp.fp_status[c->fpst], &c->stat); } =20 static FP8Context fp8_src_start(CPUARMState *env, uint32_t desc, int scale= _mask) @@ -563,3 +566,111 @@ void HELPER(sme2_fcvtn_bs)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_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); + + return ret; +} + +static void fp8_mul_finish(CPUARMState *env, FP8MulContext *c) +{ + fp8_finish_fpst(&env->vfp.fp_status[FPST_A64], &c->stat); +} + +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); + } + + fp8_mul_finish(env, &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); + + fp8_mul_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 ee71c63116..1c1d4ad2f7 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7384,6 +7384,22 @@ TRANS_FEAT(FMLSL_vi, aa64_fhm, do_fmlal_idx, a, true= , false) TRANS_FEAT(FMLAL2_vi, aa64_fhm, do_fmlal_idx, a, false, true) TRANS_FEAT(FMLSL2_vi, aa64_fhm, do_fmlal_idx, a, true, true) =20 +static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, 16, vec_full_reg_size(s), + a->idxn | (a->idxm << 2), fn); + } + return true; +} + +TRANS_FEAT(FMLAL_hb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) +TRANS_FEAT(FMLAL_hb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_i= dx_hb) + static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 6aea3ce89f..b89e83ce76 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -25,6 +25,7 @@ %esz_hsd 22:2 !function=3Dxor_2 %hl 11:1 21:1 %hlm 11:1 20:2 +%hlm4 11:1 19:3 =20 &r rn &rrr rd rn rm @@ -38,6 +39,7 @@ &rri_e rd rn imm esz &rrr_e rd rn rm esz &rrx_e rd rn rm idx esz +&rxx rd rn rm idxn idxm &rrrr_e rd rn rm ra esz &qrr_e q rd rn esz &qrri_e q rd rn imm esz @@ -1204,6 +1206,9 @@ FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ...= .. @qrrr_sd FCVTN_bh 0.00 1110 010 ..... 11110 1 ..... ..... @qrrr_h FCVTN_bs 0.00 1110 000 ..... 11110 1 ..... ..... @qrrr_h =20 +FMLAL_hb_v 0 idxn:1 00 1110 110 rm:5 11111 1 rn:5 rd:5 \ + &rxx idxm=3D0 + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h @@ -1322,6 +1327,9 @@ SQDMLAL_vi 0.00 1111 10 . ..... 0011 . 0 ..... .= .... @qrrx_s SQDMLSL_vi 0.00 1111 01 .. .... 0111 . 0 ..... ..... @qrrx_h SQDMLSL_vi 0.00 1111 10 . ..... 0111 . 0 ..... ..... @qrrx_s =20 +FMLAL_hb_vi 0 idxn:1 00 1111 11 ... rm:3 0000 . 0 rn:5 rd:5 \ + &rxx idxm=3D%hlm4 + # Floating-point conditional select =20 FCSEL 0001 1110 .. 1 rm:5 cond:4 11 rn:5 rd:5 esz=3D%esz_hsd --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197813; cv=none; d=zohomail.com; s=zohoarc; b=bsPguNV6vryEJpPSPIqGinwIgQnVPl5uvqPc/wT7zqmsO4LbFnZFk6G+v8u3+dGHGjK4qYEs+C7v2YNsY/mFISDBB7diqEJwARIpLs58JWuf9HEAIR0NOAG4JGUtd6WynMANctxP7/MsgWXD0M3zwlGdirposoPJ5JL0VA/dblE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197813; 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=Dx4LZOEArrVWhcrcV8egakiEsG2aRS8cehmkYIp5N70=; b=V/4M6oMIap8utvipbDVBvcuambwP113/jpjtlU+j5M5VExR0IaI3cY8slCiH5493Ec7wXnxSXynlJlYSM9tYcn0tsGfjAEZBVuBoCTu7hwcteCuq6rTCOiQu/4v78lx2+b7D7LnWLoYP6zmdex4D/eLm9uBhMBylarEefTqliXs= 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 1778197813594761.3041285767603; Thu, 7 May 2026 16:50:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S4-0007ai-27; Thu, 07 May 2026 19:48: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 1wL8Rq-0007DS-1n for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rm-00027O-1p for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:03 -0400 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-694891f8f75so826313eaf.1 for ; Thu, 07 May 2026 16:48:00 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:47:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197680; x=1778802480; 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=Dx4LZOEArrVWhcrcV8egakiEsG2aRS8cehmkYIp5N70=; b=U1T60c2NbTbn/tVInEaUItdPqofrckmskPnUYCJ/5BKrqMKD3TYfbyjmwdiU12Maxs VHaXVFsLyAD7uYBxlmTNgSObfbMIARld0Yh2tIG9Vgdqc+AASTfw1No5JdwZ7jDnfPkN RyuXzkfhplrE2/CKYkI67dcwWdzIolIKjnbgELximKNqsK7QRzD9Br9n0pCMNjCYFqIh 1xJyeHplgLzgZNSh6iEStQ7UF25NRcjcEyHpmmblE01GEB8yG8qt00EvSQpNfQHpA0P3 XBQm2U0Ww7C5JncscIyfGKKLTyn+5oGXZ1lgGoto+L6UZ7uYa93IXU1raAEcZejCsCa5 t/pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197680; x=1778802480; 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=Dx4LZOEArrVWhcrcV8egakiEsG2aRS8cehmkYIp5N70=; b=fDRccG/iTeHjmmpS2DTzYZ8ScPxPRCkAg0K8kXpQRskn7icnGDl88DUrhQ0tIxb+dB lUx5kO+Y/r7NWVKel7Y8CWYPT4YwcUfsmXHexTs35RVGfRwfZplVWbRlKPTkvUPqFJ3x n7BGiafxqvWzV09yQK8rUeNdipoTergGwvmHI9x27MVuoOz0nh+kW6cWHG4RnmDvJF2K ynGUICwxSNrzjXddPLWuAjqKgekoJKt4AH0ZTGyhjtTXKnGXRTLvAXUS7NOkfG0WFuLd zpKpZOi+mrX8VFmau3pKBWLwfPmKgfr7kK/hO8iaG6FOr/62s9oi6I6xEOhisviV4yAJ V/qA== X-Gm-Message-State: AOJu0YyOxzG7GFtXGeYgETqYc/Q/TtVsuDckypqkl704MveigUFbBCta m7ru6xEAAj3Rl1HEAZEZYPnXr+fVSNoi1Rrqs1f3PIpR01+29I27Ga8zHKEudvLvZ8mDpotUdTu SsmVz X-Gm-Gg: AeBDiet71x8eC30XrLYU9op5h0SQe2wPcb91v1Rr81ghGojJ4qGtYIoHQTZPVfNmqDK LHyuou8s2vps64Wlsnuzu7tVTVRI2IFu8nSEWxOQPAy/0k/nfFKGhh4LONo7rgPwqkaj4W51BPC 61HW6huSBtzTa8/ZO9I+GlENz2mZtSE8rtQN56SAHjuqfIhuFZjxcqfhW8WU6yHI40mWUZXgFSi uv5oNm5vO2XvJXuGBsxzPtx3Z/+oyKfy3OxcFQ222OSU5JHulfL1rdV5exUDkuwkVJtCDOklSvi Dc0qegQBTe4mnbo8SC0u3iFSdGeQ1spVAv0e0VQxfTwTMnOVNwh4rhjFAAcCzydhZ+Ee7JHvRps t9U8ChiVZ4pEOQ8JbhsMTufv1JnsPPUv74R/Kn1ycMMx7y5r/tpzB4YDikeX0mPm1dbuA7lrG7l s0IVDfkE8gV0Nnq/5AEd30srJbtK5LmRZ5i+WtDcCVm9ELZQ/YcLWzHpJg X-Received: by 2002:a05:6820:3101:b0:694:9e64:678e with SMTP id 006d021491bc7-69998cb1130mr5910775eaf.18.1778197679719; Thu, 07 May 2026 16:47:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 45/60] target/arm: Implement FMLALB, FMLALT (FP8 to FP16) for SVE Date: Thu, 7 May 2026 18:43:58 -0500 Message-ID: <20260507234413.643512-46-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::c34; envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc34.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: 1778197816353154101 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 dcbd839d2d..e5e249d824 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1539,6 +1539,11 @@ static inline bool isar_feature_aa64_sve_b16b16(cons= t ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, B16B16); } =20 +static inline bool isar_feature_aa64_ssve_f8fma(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8FMA); +} + static inline bool isar_feature_aa64_sme_b16b16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, B16B16); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index ea0d66178e..aa785fa0c3 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8336,3 +8336,36 @@ static bool trans_LUTI4_2h(DisasContext *s, arg_LUTI= 4_2h *a) } return true; } + +static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, gen_helper_gvec_3_ptr= *fn) +{ + bool fp8fma =3D dc_isar_feature(aa64_f8fma, s); + bool ssve_fp8fma =3D dc_isar_feature(aa64_ssve_f8fma, s); + bool ok =3D false; + + /* Feature detection and enabling are complex here. */ + if (!(ssve_fp8fma || (fp8fma && dc_isar_feature(aa64_sve2, s)))) { + return false; + } + if (fpmr_access_check(s)) { + if (fp8fma) { + s->is_nonstreaming =3D !ssve_fp8fma; + ok =3D sve_access_check(s); + } else { + ok =3D sme_sm_enabled_check(s); + } + } + + if (ok) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, vsz, vsz, + a->idxn | (a->idxm << 2), fn); + } + return true; +} + +TRANS(FMLAL_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) +TRANS(FMLAL_idx_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_hb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index e2106fc7f5..71ec09393c 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -29,6 +29,7 @@ %imm9_16_10 16:s6 10:3 %size_23 23:2 %dtype_23_13 23:2 13:2 +%index4_19_10 19:2 10:2 %index3_22_19 22:1 19:2 %index3_22_17 22:1 17:2 %index3_22_12 22:2 12:1 @@ -73,6 +74,7 @@ &rri rd rn imm &rr_dbm rd rn dbm &rrri rd rn rm imm +&rxx rd rn rm idxn idxm &rri_esz rd rn imm esz &rrri_esz rd rn rm imm esz &rrr_esz rd rn rm esz @@ -1864,6 +1866,8 @@ BFMLALT_zzzw 01100100 11 1 ..... 10 0 00 1 ..... .= .... @rda_rn_rm_ex esz=3D2 BFMLSLB_zzzw 01100100 11 1 ..... 10 1 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFMLSLT_zzzw 01100100 11 1 ..... 10 1 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D2 =20 +FMLAL_hb 01100100 10 1 rm:5 100 idxn:1 10 rn:5 rd:5 &rxx idxm=3D0 + ### SVE2 floating-point dot-product FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 @@ -1880,6 +1884,9 @@ BFMLALT_zzxw 01100100 11 1 ..... 0100.1 ..... ....= . @rrxr_3a esz=3D2 BFMLSLB_zzxw 01100100 11 1 ..... 0110.0 ..... ..... @rrxr_3a esz=3D2 BFMLSLT_zzxw 01100100 11 1 ..... 0110.1 ..... ..... @rrxr_3a esz=3D2 =20 +FMLAL_idx_hb 01100100 idxn:1 01 .. rm:3 0101 .. rn:5 rd:5 \ + &rxx idxm=3D%index4_19_10 + ### SVE2 floating-point dot-product (indexed) =20 FDOT_zzxz 01100100 00 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 --=20 2.43.0 From nobody Mon May 25 20:37:28 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 177819784602181.86775126633779; Thu, 7 May 2026 16:50:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SB-00084M-NV; Thu, 07 May 2026 19:48: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 1wL8Rq-0007DZ-F4 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rm-00027c-38 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:04 -0400 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-6967fd0416bso831066eaf.3 for ; Thu, 07 May 2026 16:48:01 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.47.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197680; x=1778802480; 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=xwfCwkDfKvH4J05ldWyGCwNDG1glpGFsuvdjz/l4/HE=; b=D9wxzJEURu+iT6hgTt2WLZ3tQqDEuwYXqvrmNfCyZcTqvaVskicwmwKcbCt0PVKCEx 3/PwCxNh8jX2CNluPpc2UidknN/EgRwb81h2K/oqpTkN6dboBP0HXoh2P/q244OqtBg/ +N88Hg0YRnPyx3Kqd7fktDTI82Lx6UArYMgEJkl/Zb5SHFmbR1YqlZff3uVAmsJKtfc6 zNPsdl1dh4hKnZ+w9mlV6g7ESPyhRAfCxP+HaHA5Y6nKjIbm4rpejazhwE9dscqJZNTe MVk0FkrHpX1cbT1EdLGBoXSN5auEky6i8fnzAcSxfj4Y83EqY4SYilxM8TGKGHQWLroL fgTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197680; x=1778802480; 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=xwfCwkDfKvH4J05ldWyGCwNDG1glpGFsuvdjz/l4/HE=; b=CwiLcsOcrkEI3QI2DUsVCjoMqVlZDg/AhoOXMAKt49kTUHPRvpBF6SZTYDfmw3/Y3u ESOXlOAtAySjrY4kSTUBvMIWVQPhJTaaktzIsMRiqgd81EfOd0aaIa+BUHX1OwYhVisW OSnpfx/Yvgpseypm8x+ekt3GXZn1iv0C/kJRbKi6AP/dyoDKGxYmqZpyY+LHUyafQmHL +yXSHJ54Jv4OCH+xX5GBafgcnUktKSXg3s8IPTP6hcx5sOmTJcSUgHd8d9uWc4lilo6P kiPLt/RkwhCQf1FLukvurz28qwTZkgh2f3edxU0McItfMdzrcJAouZghWFHKRVxR2FNX 3prg== X-Gm-Message-State: AOJu0YykZp3lH7pOLIKLAdJZTswcEFpIeWPQ5g/XAE9znlANlBouFJNY Gc6DItJt0Ipvb11xEKr+5jMOpXb1rvXQ/E3JoqGCVDcqZ31nZ1SMGa1NEYdsRT3wym2Vke37Bn7 YnXpx X-Gm-Gg: AeBDievKhw92T/or7DrE/WKLCoPvsjQasuv/Mzp2Jv1d+sYAZiEXLb7xi+lGdUBoIh7 q+txxVnuzJV0fAPCBv0C3FHctqgSd7l1wwNupzQALOyKAO0inuPe8H0yF/8d5RY2xsdZRiZFimd bWLokOGGNkIzv20anZl7KrSvGqgYDEWdxvaC6xU6j80uE3WyG8PwfLlDj0mKp9kPr86OLU38bp0 +IFQyviOjaXtWJQbXlfbO+T5GSiSnSITxIFYltJVOqmF3jol5jxqih+na94D4Vdi97PQrqxylCX KCG6N/s5Sl9zQb398J8s/xwGCMN1RChoUbtoUP/2dHbCVInQBA5/Xd3EzcsAEzOa3fjt7isrRXy iX2qRkJZAF960sMk4N5DZ682wttuW3Ks0qsioqFyNtpNW3l3l+y7egLOlgPoeC584HTBbakogiA 34ZPmbjk8A+gd/XyqhAiOXVb89nvV3BEFmOHve9RARgLgYwcJ5+dDETlNv X-Received: by 2002:a05:6820:178a:b0:696:982b:1c24 with SMTP id 006d021491bc7-69998d56a5cmr5645639eaf.57.1778197680500; Thu, 07 May 2026 16:48:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 46/60] target/arm: Implement FMLALL{BB, BT, TB, TT} for AdvSIMD Date: Thu, 7 May 2026 18:43:59 -0500 Message-ID: <20260507234413.643512-47-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::c34; envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc34.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1778197848674154101 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 | 57 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 3 ++ target/arm/tcg/a64.decode | 7 ++++ 4 files changed, 70 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 6d9f8a6135..1d64138c18 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -628,6 +628,16 @@ static float16 f8dotadd_h(uint64_t a, uint64_t b, int = n, float16 c, return float16_round_pack_canonical(&p0, &ctx->stat); } =20 +static float32 f8dotadd_s(uint64_t a, uint64_t b, int n, float32 c, + FP8MulContext *ctx) +{ + FloatParts64 p0 =3D f8dot(a, b, n, ctx); + FloatParts64 p1 =3D float32_unpack_canonical(c, &ctx->stat); + + p0 =3D parts64_addsub(&p0, &p1, &ctx->stat, false); + return float32_round_pack_canonical(&p0, &ctx->stat); +} + void HELPER(gvec_fmla_hb)(void *vd, void *vn, void *vm, CPUARMState *env, uint32_t desc) { @@ -674,3 +684,50 @@ void HELPER(gvec_fmla_idx_hb)(void *vd, void *vn, void= *vm, fp8_mul_finish(env, &ctx); 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); + } + + fp8_mul_finish(env, &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); + + fp8_mul_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 1c1d4ad2f7..946c16d439 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7400,6 +7400,9 @@ static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, TRANS_FEAT(FMLAL_hb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) TRANS_FEAT(FMLAL_hb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_i= dx_hb) =20 +TRANS_FEAT(FMLALL_sb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_s= b) +TRANS_FEAT(FMLALL_sb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_= idx_sb) + static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index b89e83ce76..ef6d7dfeaa 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1209,6 +1209,10 @@ FCVTN_bs 0.00 1110 000 ..... 11110 1 ..... ..= ... @qrrr_h FMLAL_hb_v 0 idxn:1 00 1110 110 rm:5 11111 1 rn:5 rd:5 \ &rxx idxm=3D0 =20 +%fmlall_idxn 30:1 22:1 +FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ + &rxx idxm=3D0 idxn=3D%fmlall_idxn + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h @@ -1330,6 +1334,9 @@ SQDMLSL_vi 0.00 1111 10 . ..... 0111 . 0 ..... .= .... @qrrx_s FMLAL_hb_vi 0 idxn:1 00 1111 11 ... rm:3 0000 . 0 rn:5 rd:5 \ &rxx idxm=3D%hlm4 =20 +FMLALL_sb_vi 0 . 10 1111 0 . ... rm:3 1000 . 0 rn:5 rd:5 \ + &rxx idxm=3D%hlm4 idxn=3D%fmlall_idxn + # Floating-point conditional select =20 FCSEL 0001 1110 .. 1 rm:5 cond:4 11 rn:5 rd:5 esz=3D%esz_hsd --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197874; cv=none; d=zohomail.com; s=zohoarc; b=OJKr7vfCKu/xZQBDF44PUC1PFs2/lZbediCYyzti4zbgLCry68KR3sH5mxjMcvgkjt0rv/kjn0p7bbU4O8yc4+7hdjdaErLJ6lcHjlV9ZPnA8aJeVMbn/+t36zW4cY9x9jpdV//zn9PrIpn4T01JxnMOie51o9xN0pOFi7YvVAA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197874; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AeHqaA4eUNZ/cnZls9YTWTYizcqfhEo9ShP2VlzzQbM=; b=oIFmY/Wq39vu34I7LP4NuIyNCu+aVbSaCge5FILdbvD7wuBpGIbNtDEUBl0lRYXRZBMCb9ZYLMnu6QZRvlV4imGkR2aXPvUopS9NWsu82o124XYtsXGo+7x9lJHyVACaY0hfWOlPTMBWnrmuFZ0GfuW63z0cD+0GQ2X39RWlcUc= 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 177819787471843.9696706481152; Thu, 7 May 2026 16:51:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S3-0007UK-8O; Thu, 07 May 2026 19:48: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 1wL8Rq-0007DX-Eb for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rm-00027z-VL for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:05 -0400 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7de44ed7a11so1212947a34.1 for ; Thu, 07 May 2026 16:48:02 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197681; x=1778802481; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AeHqaA4eUNZ/cnZls9YTWTYizcqfhEo9ShP2VlzzQbM=; b=Ez0kgV0SE/0PSa3zoXPf98suNVav/ue4qKJdJS8N800X9DT968/uP/e86pdoclPYwc /mbhoQVEOvA4uR1hC8Vfaa1J7m7QdBybQUH1ICVMawBqlfA1SmNSKYDEvHb2mOzirqAT I+oc3LilT5JRaOu5PR9zS4n1lCvDkn2YVBVuMOcrkvVso1rkrdgx5QNzV0d+kJ7EvQKv LWBHCiUqRa49GtA57wooFX/PsFldi+Mw0HN39elF+eqeWO36UM+N12W/tl0Bh/ylY9ih z8IWbh5gEz0BrItWc6KuWRX63ZhhX02IUsQKj0SQ8Vm8QpONl9yOjpmmzLoV3bb8ysvM o+2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197681; x=1778802481; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AeHqaA4eUNZ/cnZls9YTWTYizcqfhEo9ShP2VlzzQbM=; b=ECKc0Sj6dYw6m7OpuihoAyCb3qIqXBbj0vCQ6eGUbZ1rUpA09AUDcWtp24A6EB4GmG pL8rP+d3gL7D+T58aWgUXT8JMy9tzFVAg1x3O0W7WAtl00WnMvct6oq9ylSSdIEptq5g x4T6aq6peeN6XeW1GYcMkq6qJqHoJUTjdSGL5eVRs3V23IQeFGggTCtkDNTA7FTL925p ggXPhO7E69VgKTgQKy500/H7A3AT7+RYLowZPJ/G5rCXb7U8iwbVRx8dDQLTH9waILj2 YA8pkhaURCtxWSbj9G1Dr3MULw2N6GJwejCh1jd3efeVRcMvKLPYkpOjxiYBdI5CELjo Gl4A== X-Gm-Message-State: AOJu0YyBbG9ena6ADFPSp0aB09Sq9OVJhJxadZaySens2FGE4sRedRjf LVNCVRxs5MFWzPqQnG1V5V5ME2wX22hgNnerc2PqrZ0ipwU4k1K7CvS64Bo0CgTIkpdsaiwZmkV oOAQe X-Gm-Gg: AeBDietv+1TMX8rTBTFupEQvrzzlG1wmXN5MfpyiZG5brE7O92OTdyu9BkNKhWUkFn7 q21CrySBSHw/R94GZk6UbsfUNWKZ6/vskygjAWdbOzb+U0OSW4/HXPhgja+jDE9F795+46gT5RS SEgLBkcNit6YejvtPZY9sdWpiKMOJRfl4dRNIUdr/Go9aiHEBCLTbIOhD3tthwcgH+JlIXdoYx3 Dp/Gv6nNtDLaMlzx0FONILuxdqXpVUp6PHPs8ei55F/sv+7fJ91kUfxkW7IzY7mw7gMXab1mz6k kG+vSO0xYwRRTdc7nOhQxdslmhIR4lq2pbTLXa859ZBmPw6gEQ5sv5aYsFnMcY6qOnYLdnvPvyl nHyxD3KNT4IgKiOvyqeiEqPv6XxH0Og2hFJS3PdfMyN80O4fGTkUYBtq1V1a4/gANJ3LwrCo37a HKtniogP6JXtPJmsa98pRIlykb2vCNI7hMG/8KVzI08VF27Q== X-Received: by 2002:a05:6820:2016:b0:67e:294b:7246 with SMTP id 006d021491bc7-69b25b52e23mr285943eaf.14.1778197681265; Thu, 07 May 2026 16:48:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 47/60] target/arm: Implement FMLALL{BB,BT,TB,TT} for SVE Date: Thu, 7 May 2026 18:44:00 -0500 Message-ID: <20260507234413.643512-48-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::331; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x331.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: 1778197877174154101 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 3 +++ target/arm/tcg/sve.decode | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index aa785fa0c3..e23ca43f55 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8369,3 +8369,6 @@ static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, = gen_helper_gvec_3_ptr *fn) =20 TRANS(FMLAL_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) TRANS(FMLAL_idx_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_hb) + +TRANS(FMLALL_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_sb) +TRANS(FMLALL_idx_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_sb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 71ec09393c..06bbd7fa63 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1868,6 +1868,8 @@ BFMLSLT_zzzw 01100100 11 1 ..... 10 1 00 1 ..... .= .... @rda_rn_rm_ex esz=3D2 =20 FMLAL_hb 01100100 10 1 rm:5 100 idxn:1 10 rn:5 rd:5 &rxx idxm=3D0 =20 +FMLALL_sb 01100100 00 1 rm:5 10 idxn:2 10 rn:5 rd:5 &rxx idxm=3D0 + ### SVE2 floating-point dot-product FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 @@ -1887,6 +1889,9 @@ BFMLSLT_zzxw 01100100 11 1 ..... 0110.1 ..... ....= . @rrxr_3a esz=3D2 FMLAL_idx_hb 01100100 idxn:1 01 .. rm:3 0101 .. rn:5 rd:5 \ &rxx idxm=3D%index4_19_10 =20 +FMLALL_idx_sb 01100100 idxn:2 1 .. rm:3 1100 .. rn:5 rd:5 \ + &rxx idxm=3D%index4_19_10 + ### SVE2 floating-point dot-product (indexed) =20 FDOT_zzxz 01100100 00 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197896; cv=none; d=zohomail.com; s=zohoarc; b=aMkhcBoyYVPMWe2RPopITVvX8j2aey2SXy7ku2gYcm31l/ASV7cXlzGDzkD1zGe867gW2zca+0X3CX5qNZrbaEjrjISpUWK4Bn5SenlTcGPY/KVG9ehD9luQz7v+aG9ITL3MkcB2zpg1OUmneLHuBtynIfADBz7dhMA5wNGLyzw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197896; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xnvL1dEdpYA1y9JJcxfkHku7n0bLCdQETh28Vu/3wxA=; b=HkSGu3d+gsC69bbQBUALTF+yoNIZ9fePlbI9DWXyTpApUQ2dhWw8WYdBw9ziNNL7++EeC3ViTDNwx1XbnsdZJCWKn6ZFcv26Q/RtRaPiZoAOHks6qRcdMSi7oQvow7CEIamJol5RPJaIqcfky4OibIVKeck3y5w2vDza2sSqNEo= 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 1778197896790575.2127764098324; Thu, 7 May 2026 16:51:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SD-0008A6-Oo; Thu, 07 May 2026 19:48: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 1wL8Rv-0007Gw-Be for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rp-00028L-0x for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:07 -0400 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-404254ffe8aso1234607fac.0 for ; Thu, 07 May 2026 16:48:02 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197682; x=1778802482; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xnvL1dEdpYA1y9JJcxfkHku7n0bLCdQETh28Vu/3wxA=; b=BAjL1TASmH7FLn/vIBELkWBlrPlG1FAl19rg5Qyb1yV48fFzBmJnJwyV//SWLMjj37 OAVyr3arnkmcWHFIPMDCumcDwefdQsnEIXH86/zxxjk3fgp1fbZWXCiekFUG9By2LL8h 28OmkAJRJkjAyVoeF4zlNl+4IkszkMNvbdhrBk5jcLcbYxNduAf2RSxvcDqEfI/8jDti MpxNT3o7XJL2WI4GqflbVd3dU9go4QUyPHOK6uusqt+1KZq91AB/3qPxhY2MDcaVipv3 QlihWaVpQtr/TwIuEN4MmMq0eFMKajo5cqD29+ZvO1t8VQCmos/y/uYM5zfzbp88zTiK 9mnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197682; x=1778802482; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xnvL1dEdpYA1y9JJcxfkHku7n0bLCdQETh28Vu/3wxA=; b=UGRLDe0Mfu/flMNb73f/YefnSVMNJUZMUPV4dmurcBljaXuos93fhIFr2m1fZv07Cv nAeoUyOD+Dhm9kq1/C07/5N/mUXgXLiqROaZLSUkLdlQa8k4NLRyK0Zvj3+JQjERbVDW CeP10mJIFUNOA3WRSOwBPV9oE5Rb3kzWVT0wXuCQq9VHCEdYkt5XUJTFRIUKMXCB+fYu /deewPiaT4g8IdGyQJfPMoBXIb1CzGyZQcyZ+Ij6l9f7THz3g/yUvsXaFiX/WOY+Svx7 5xl+gynRnIkgs7g1GvQGCIDM15lEVV68Az3J2RCu0thuYAan9aKzgaJq7TSLdlr4GwGp bkNQ== X-Gm-Message-State: AOJu0YwT17sSUwJAZAFTpNO8GD4gesTtyGMc0ZXo0q/CKXKZqZGF0qIz JyxaK3Z/I5U3yg2g3yWeeI6gRV6JUDvjRD/x1MWTgC9zFoMPG0DxhJ/G7rjsVHCW5TDuh/PG8Hs 2GrzZ X-Gm-Gg: Acq92OF6PCP7fGAuaL8Lh0LEtFk+WhxQJ+yQyOmPPtLRFjZtdXf1wKWx6wLi2JEqhPW 58+inPPFXHj5038h746ih4W68EWEF5Vi2CcfiG1dOvQKA3lcfwFKjhI7XwMR0fxgc4UxrPFFI1u T+wlx14u1VW9zvMdxL5EKt2MyigbdhFyjJBVxQ9rJwvZXaC54ZPk1sQmTccXJmfOW0rQcDXXRx/ YxtnbKHuaukv+uWKyxOmjPqdHaZxFew08urKrtf12yCkwGumKyJAWwIp5DuUBtxb2LcOJDE11IR BDlmuvtkmX7Uqqeq1Uw5Wr+opZQA6fip7Odlb2CU/E/CqtR3DkJBXVMFUSUzhqvokV1F+jFCl1a o61ZmXegJYXjJORLeZIzkJIyynrdUXBERNi+YIMce/Qxn/OhfDA6ieiwEVCCwJwtIjN9ZHAKYro jZ9zCKuurXAwW02rkaffS0Qv3jwoeo69BH4exZ2acrJ/7Cltp84C8ecxti X-Received: by 2002:a05:6870:d0c5:b0:430:17bc:5e37 with SMTP id 586e51a60fabf-435269bfc07mr3017094fac.14.1778197682021; Thu, 07 May 2026 16:48:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 48/60] target/arm: Enable FEAT_FP8FMA, FEAT_SSVE_FP8FMA for -cpu max Date: Thu, 7 May 2026 18:44:01 -0500 Message-ID: <20260507234413.643512-49-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::2c; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2c.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: 1778197898934158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 90214a355a..93cd7ee1a6 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1377,6 +1377,7 @@ void aarch64_max_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64DFR0, t); =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); + t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F32F32, 1); /* FEAT_SME */ t =3D FIELD_DP64(t, ID_AA64SMFR0, BI32I32, 1); /* FEAT_SME2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, B16F32, 1); /* FEAT_SME */ @@ -1395,6 +1396,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ SET_IDREG(isar, ID_AA64FPFR0, t); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 0dd6b554a0..a6b48f9c60 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -75,6 +75,7 @@ the following architecture extensions: - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) - FEAT_FP8 (FP8 convert instructions) +- FEAT_FP8FMA (FP8 multiply-accumulate to half-precision and single-precis= ion instructions) - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) - FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication= instructions) @@ -159,6 +160,7 @@ the following architecture extensions: - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) +- FEAT_SSVE_FP8FMA (SVE2 FP8 multiply-accumulate to half-precision and sin= gle-precision instructions in Streaming SVE mode) - FEAT_SVE (Scalable Vector Extension) - FEAT_SVE_AES (Scalable Vector AES instructions) - FEAT_SVE_B16B16 (Non-widening BFloat16 arithmetic for SVE2) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197927; cv=none; d=zohomail.com; s=zohoarc; b=Ab74LIkMR/Zy+NVWGq23oJX9ajQAP/28owTl9UZ5oj7RCtC1k4O/N4gF2nAH3oj7vhdm3azodouMgauWEJfl9jAHfyjyU7+G/xZIo2wlxkCqhSeCTaz5eG3hhF6u82vsfWGGsa8xEqhmB2vWgyCemUwsDk7iacdzH4SwTPr/3Cg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197927; 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=Al8U7F5kR9qTT1fvlaK1s3JhmLegB9nKfzbA5MriApE=; b=W9ibHdrE5QbA3wx2p1sBmEp8zFr4IMxhDymdesaoToPmMSccsEh9uPa7H+XkyhNkb3T4kfmBtcENka+axH51At6/M8Z0hYa0Set+CwctfppcQa7EnkxAUhBDYyL6xOqdZL7eyHzbF9PgBVbG/b3NPX5pC3i9Se4Mq6+c+91ea2A= 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 1778197927129124.42409392587501; Thu, 7 May 2026 16:52:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S8-0007tT-3V; Thu, 07 May 2026 19:48:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8Rw-0007Hk-B0 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rq-00028c-5u for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:10 -0400 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-404254ffe8aso1234620fac.0 for ; Thu, 07 May 2026 16:48:04 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197683; x=1778802483; 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=Al8U7F5kR9qTT1fvlaK1s3JhmLegB9nKfzbA5MriApE=; b=mS3evwhAeC25QgG1gSvGoHYUU/DlhgXBhZZFx7oPEvPwwNuWFZTbCs2JY4hxkTNTJQ N64NDxPTvgRcOWLHfx00ozj0zg9jDP6R300JUY0sZGKcKApRCd7sefsTbLw8uGawgofx 7j6W6b0jb0EEEquwMiR559SRAIAdKJ1CfaHoTl1uXNtK5rSP2WVl7ATSoQh3Mk5qzx+Q xGgsEeZGVK8I9/JdUJlh6AXuxIsv91ISX5b5sYWpS4Vnx4SGmKkst9mBIYoDatO0VHiI LcB2MeZQ/Jf11GY7zP0iA5yZfglzVsb9e4iZt0wee+/XFmpAJfm3irK5cDzRSaMq3ie6 ELig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197683; x=1778802483; 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=Al8U7F5kR9qTT1fvlaK1s3JhmLegB9nKfzbA5MriApE=; b=p5t2r9R3tmur0pjYAVSRAnty4TI6zEu3SJZ5AhEVUopbQTHRTPnph4fkwkAi/awGDD j/R03OsTYDjgRxrYlpyIcEmGCFAKZIN1M9ynkLSbDMKc1l3zlmLoaIX/8ihf0lU1rtWE /XTHzEuhyo9UeYYgRB1nmohdW8RlCU6wyBNMqNWbGD/tJWcqj1D4Kkof7IfpObGJCqiD wktk7yJO3dlT/tdd5XtWKhmmIUmxTMt/gUipv+bTAzlBM4HsXfTlvgWgTwLH7mhp7BWA 6wjEybC6VPtKeX68cjuwrnTGFwC3HpsJiL8bXuk0RgEva0UQG/gwuN+mh0aWdFKpNE9c UH2A== X-Gm-Message-State: AOJu0YzawlSYuOcB+qufcpPFwzTCM0G557MFlHA8smhO2e/e8mcxOKjh m4XvMdjlLdbi2Wr3XNy7u5IVSAB3uonltuo9t4M4s3FBe11oSi+cKu5haDYGEuNaSyFVDGHjUBF IrH+R X-Gm-Gg: AeBDiet69bnhR1nPBnADdtPtsOBK5OxDvtCt192OOlQVJtS1zyvABE31c8uX2ZRto9P E6TyoO6o837keeFJiqXZeOokphzaj9WozJkGbmvs4/AtjsVlFh90LDCMF+xon0yNKvZwP9TQHo5 U8IFJk5hpRgaB7cdATCFpvNgZ7/J8zKt2ICe3EsNZbD615SUjeyeFWOVAUAYeeNwbI0WLFD/sjx jDWmsZFJff1iOCQLG/6Wsr+m5lgpRVGOufBVtcI+M8U0sst+3EfNM22Zwch24anD8kjTvcc/LgS shIfmHzFaai5n2hCnzXgxtwgj05xmN/WgnOiwfG9RNdOAriIteFQwHg3IhKcPJ1NIoRkzEgxspP gcXX8YNhnrG2cJqvZROfJQ8028ml9REA6q9tR3yFLRtdri+Uos+B6yYDOrhKcYpZlv0JFqFPBM8 cbuTJ/2UFKUsYhxygSFQDWLwu14NYgv59DQUTIQm6a0ixNeEMB9gD3La1O X-Received: by 2002:a05:6871:56c3:b0:430:3591:26c6 with SMTP id 586e51a60fabf-435266548a2mr2871524fac.4.1778197683147; Thu, 07 May 2026 16:48:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 49/60] target/arm: Implement FDOT (FP8 to FP32) for AdvSIMD Date: Thu, 7 May 2026 18:44:02 -0500 Message-ID: <20260507234413.643512-50-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::2e; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2e.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: 1778197928987158500 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 | 41 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 30 +++++++++++++++++++++++ target/arm/tcg/a64.decode | 4 ++++ 5 files changed, 83 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index e5e249d824..95e1849a6c 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1594,6 +1594,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 1d64138c18..48a2e29a31 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -731,3 +731,44 @@ void HELPER(gvec_fmla_idx_sb)(void *vd, void *vn, void= *vm, fp8_mul_finish(env, &ctx); 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); + } + + fp8_mul_finish(env, &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); + + fp8_mul_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 946c16d439..8ea63e94fe 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7403,6 +7403,36 @@ TRANS_FEAT(FMLAL_hb_vi, aa64_f8fma, do_fmla_fp8, a, = gen_helper_gvec_fmla_idx_hb) TRANS_FEAT(FMLALL_sb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_s= b) TRANS_FEAT(FMLALL_sb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_= idx_sb) =20 +static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, a->q ? 16 : 8, vec_full_reg_size(s), + 0, fn); + } + return true; +} + +TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) + +static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, a->q ? 16 : 8, vec_full_reg_size(s), + a->idx, fn); + } + return true; +} + +TRANS_FEAT(FDOT_sb_vi, aa64_f8dp4, do_f8dot_idx, a, gen_helper_gvec_fdot_i= dx_sb) + static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index ef6d7dfeaa..d78a3d5486 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1213,6 +1213,8 @@ FMLAL_hb_v 0 idxn:1 00 1110 110 rm:5 11111 1 rn:= 5 rd:5 \ FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ &rxx idxm=3D0 idxn=3D%fmlall_idxn =20 +FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ..... @qrrr_s + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h @@ -1337,6 +1339,8 @@ FMLAL_hb_vi 0 idxn:1 00 1111 11 ... rm:3 0000 . 0= rn:5 rd:5 \ FMLALL_sb_vi 0 . 10 1111 0 . ... rm:3 1000 . 0 rn:5 rd:5 \ &rxx idxm=3D%hlm4 idxn=3D%fmlall_idxn =20 +FDOT_sb_vi 0.00 1111 00 . ..... 0000 . 0 ..... ..... @qrrx_s + # Floating-point conditional select =20 FCSEL 0001 1110 .. 1 rm:5 cond:4 11 rn:5 rd:5 esz=3D%esz_hsd --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197881; cv=none; d=zohomail.com; s=zohoarc; b=DIJW68gIXMxh2gFn8eOPgc2L76xHBWuwQHEPK97l9xAj+sCXay9i82BQ/SJm6M8PySagFHxrqs2X/RKKQCaZaNkjuFADiZQWd50HQi+d6Lll0zP2IPR9slEHbKNAF6VD+652IJDNV1Zev6VXg+4Xk4Wp5SD7UY6x+SvYt6cpHig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197881; 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=MJNAcoQI7xBxLtbuNmf3B0lU+SHpZ2YFa9Rfr29mdYk=; b=KQCIewFFbEJ2aXdLOJaAIEi2p/B1XDY2XJi6+1DRmPBL7VJspFFUFO1aelqusE6w6BPcsRvNz+s1dpMlX8YDqoBv+bZXas/ktXy8HVY60c4G6SaWnjDAjhom/n4INpqY+8y4CbeIjHOV8sWWL34PHX5L5Hbn9jduO59UuakBCQY= 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 1778197881003499.5112230507307; Thu, 7 May 2026 16:51:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S6-0007nB-TJ; Thu, 07 May 2026 19:48: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 1wL8Rv-0007Gu-B6 for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:12 -0400 Received: from mail-oo1-xc2c.google.com ([2607:f8b0:4864:20::c2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rq-00028q-5V for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:08 -0400 Received: by mail-oo1-xc2c.google.com with SMTP id 006d021491bc7-6966d0665baso985100eaf.1 for ; Thu, 07 May 2026 16:48:04 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197684; x=1778802484; 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=MJNAcoQI7xBxLtbuNmf3B0lU+SHpZ2YFa9Rfr29mdYk=; b=EVEcBJ44pabk5RDWo09MkYnFnfAZCSr84zpSDmUIpKKFGt+yrmqGCYABB3P+kr81k8 tT5XWy4EtASj0/ZmWpzwP7AbQ+K3j/gjbQTHYDIdkm4nXl1r+0hV4Sns+Q/Pqz3kMaw5 HJR3z9GoRzER7Ue0xnK9JKOrOsyWlduXBdznMrwtlG70f1nIHGPjjRLk2AFvbR1N1lhA 2rVMH9tpkAhs+wTrM6HSr2A5wVTprHAWjLHRmGXP7n9QxC2E3PXA+drYmrs0r7mb3wXg HBRhTDwuoPZeD8d/eMx/58y23wbDTRRifJ3HYcbdM1xMtheMhfapnHRS2RoIEDjyWiM8 dJ0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197684; x=1778802484; 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=MJNAcoQI7xBxLtbuNmf3B0lU+SHpZ2YFa9Rfr29mdYk=; b=X8+TPorq3O99qaBghFlUfrpjY6lhM5mR6Lg9IdvIGqvEtDqbAC+iPk8YXl9qgD6KNe suv+xDK2PoVnLCiywhu0Yx7tdmwQeTSBvmeT//spC6UIdRzSJbAEJLqPY1SNKMzgPuFm zzEa+p30QQfeblwxOI47MT82Q5YcQpP6krcHtvaz9MjwZQsaobNn9QU+UtkKC2/kZLAE 3DqERo2pI336Hsh/mKxawX35PjRNMmGOykehV88yaw7dtnxV/5Wf+nQGTr6WdvhKTl+Y 0L66BEKVFLSJxPf8qaEVdZsF5mN0bKeCdDi8z41y8aRW/trNNfnemHGbwdgOB5MdMhW3 QNPw== X-Gm-Message-State: AOJu0YxzGHcjODEKnam/ugAcvjVs1m4dU23m3DhBXbePxL3Oh+aNr2VT d8BZigitAqN6j9qZE81kMw+w2493O1mky3HEADlDe8GOhyYhzbOJViQO7lZXz4IAvN9K/kzEDyb fTLmX X-Gm-Gg: AeBDievsgNAs0F0qOcVQk0JYKecbwM7wsNs8VH/FO0lHQaGUsSbjOtdIIIJsD0S/Btm LMh+0ZON+4pCuFOyRJDltU4tIR8OWGm+zy+E6RSKGlm3R2QDwLLpCRLQPGQ801HKQzFqLmSUyjx QfbkitDzy11wLA5m1zVi2MoUx0ex2eqDnGCXep3RI+3m0aA1BFKYI3IiPD7M8dHTuPi14XyWx6c BziU2cVVk0Aj+QnfsHZ2JHwQi0nL6vTPT1C/8BGOazU9W5oxQ6jQPV4DMownoaauCfpFgb9uM2F ORgHEBX1VkNRuHlF7PfzZO+S1JxpNd9U86KXvq2oUVaZW4OdkortNpfVBRIxDzO+81i7Dzf6SRE yd7+tCShnKEfvmdQrWm1vbKW/B4v4rOZMrIqEWBvdvOmr4PsDowodzt5B4cyaL/52bFqoGsDwOv 11RrFswlAux750SlellRBCotjX2WvcGt+bDQDmQiHlaEwb4EChXfP3KTLCDYQ//mVtDYU= X-Received: by 2002:a05:6820:1c89:b0:687:60d8:776d with SMTP id 006d021491bc7-69998d6342fmr6207563eaf.54.1778197684053; Thu, 07 May 2026 16:48:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 50/60] target/arm: Implement FDOT (FP8 to FP32) for SVE Date: Thu, 7 May 2026 18:44:03 -0500 Message-ID: <20260507234413.643512-51-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::c2c; envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc2c.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: 1778197883223154100 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 95e1849a6c..908dfe0edd 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1544,6 +1544,11 @@ static inline bool isar_feature_aa64_ssve_f8fma(cons= t ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8FMA); } =20 +static inline bool isar_feature_aa64_ssve_f8dp4(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8DP4); +} + static inline bool isar_feature_aa64_sme_b16b16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, B16B16); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index e23ca43f55..88e6148b83 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8372,3 +8372,38 @@ TRANS(FMLAL_idx_hb, do_fmla_fp8, a, gen_helper_gvec_= fmla_idx_hb) =20 TRANS(FMLALL_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_sb) TRANS(FMLALL_idx_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_sb) + +static bool do_f8dp4(DisasContext *s, gen_helper_gvec_3_ptr *fn, + int rd, int rn, int rm, int index) +{ + bool fp8dp4 =3D dc_isar_feature(aa64_f8dp4, s); + bool ssve_fp8dp4 =3D dc_isar_feature(aa64_ssve_f8dp4, s); + bool ok =3D false; + + /* Feature detection and enabling are complex here. */ + if (!(ssve_fp8dp4 || (fp8dp4 && dc_isar_feature(aa64_sve2, s)))) { + return false; + } + if (fpmr_access_check(s)) { + if (fp8dp4) { + s->is_nonstreaming =3D !ssve_fp8dp4; + ok =3D sve_access_check(s); + } else { + ok =3D sme_sm_enabled_check(s); + } + } + + if (ok) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, rd), + vec_full_reg_offset(s, rn), + vec_full_reg_offset(s, rm), + tcg_env, vsz, vsz, + index, fn); + } + return true; +} + +TRANS(FDOT_sb, do_f8dp4, gen_helper_gvec_fdot_sb, a->rd, a->rn, a->rm, 0) +TRANS(FDOT_idx_sb, do_f8dp4, gen_helper_gvec_fdot_idx_sb, + a->rd, a->rn, a->rm, a->index) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 06bbd7fa63..c49e992f10 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1874,6 +1874,8 @@ FMLALL_sb 01100100 00 1 rm:5 10 idxn:2 10 rn:5= rd:5 &rxx idxm=3D0 FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 =20 +FDOT_sb 01100100 01 1 ..... 10 0 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D2 + ### SVE2 floating-point multiply-add long (indexed) =20 FMLALB_zzxw 01100100 10 1 ..... 0100.0 ..... ..... @rrxr_3a esz=3D2 @@ -1897,6 +1899,8 @@ FMLALL_idx_sb 01100100 idxn:2 1 .. rm:3 1100 .. rn= :5 rd:5 \ FDOT_zzxz 01100100 00 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 BFDOT_zzxz 01100100 01 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 =20 +FDOT_idx_sb 01100100 01 1 ..... 010001 ..... ..... @rrxr_2 esz=3D2 + ### SVE broadcast predicate element =20 &psel esz pd pn pm rv imm --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197879; cv=none; d=zohomail.com; s=zohoarc; b=TjvYdg/HPmrX6zt/2Z76WfMbBofyYiGDNoVHNHtlWE2Tj9YX+2ArjkYOrHwY9zBSsqqLSnXxAjFv9POI4DYb8VUaqhQzDuPMZnX2q3+Z7Vu7lcZOBULEOibGG08N+MjLeLal9LBCRp2b2y7dUsL8oKcaBQuvmuNor+kWJuJJfDg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197879; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WfvM4tnhG/6BVEOEoQSi0TAhQsUGcLPgZYrpPCn+HNY=; b=lIgmbZZDQ3Qp/O2eI7kMEvn8pv6qB3c0Pm1pwH4GvSML4BDZb2QCxb7kaiBvvVymmsF/Nh544gaQ8Rox0BOYcf9zP2UclOOJYCrBG3GvwZDZpTYKHUcgBGKz0TFcYuryr86foHa1YCNVMeu3drvpfSVmHEkgiALamu1pCZkcDnA= 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 1778197879914821.7211374674132; Thu, 7 May 2026 16:51:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S9-0007xr-8G; Thu, 07 May 2026 19:48: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 1wL8Ry-0007LQ-Ff for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:14 -0400 Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rt-000293-Uv for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:13 -0400 Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-42321c8b8f5so1138359fac.1 for ; Thu, 07 May 2026 16:48:06 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197685; x=1778802485; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WfvM4tnhG/6BVEOEoQSi0TAhQsUGcLPgZYrpPCn+HNY=; b=ZYDPOqrtMwV4ZLPLU5jwO5gQ6iyh1AA9BMSbqDPla055JLGQ7tS1LcrBnS/8WycPnE f93JSvMHqz5tWf2E1pLSP4OmgVeyPGXMOLORw20oER9ZTCZIbg/wHOdLg/d6OWk1vaKO 7cy+7fZ/HMZrLSVB+1JOkmbc61o3s2KM0ZP5IogPeMUrWwIHgCJkeW/meTI4oSrPmZFq wswyyetXbkdSmQtG1bgr/3hlh9HOeHxixXJ5o9DqQIb9h0RZsGSpOsNRKkAo+zzCM8QG fwQHhXB2UzRIeARgGIHm761aYOt4MmAFP8LiVROedRaMjZG3LMHXJ4xo2bDARIYno7wm PL9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197685; x=1778802485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WfvM4tnhG/6BVEOEoQSi0TAhQsUGcLPgZYrpPCn+HNY=; b=CU14neBPNa2eS6SMouEhGKwiO/8RtIeuc2OU4xVyYuLdO+UWFGDaG87tdMAldIKYsD YA+YN/laRL0DpL7Q2NlBAGzv4HiC4vyqO40CSbcKO6mGo2mMSUhyH+9Bdhi8n/oBKpW5 xFrNTyaVkj+CFBEIOgCj/e2mkuUO+kmizFzZBw8F5mwNfd9sAcuwwU2hYTd80sNX+5AQ ALv8rYSDj8FSBPtHs9GLRGhWr0sBTXNOSrFOCFh8t55nLYsfcmtP+NkgnfKEiHdzRHAE YgkqRtJE2tOBnm6fIjsEIeCTH0U9BYTX1XpZN2emC6XMvFf5FZWRK01rg6rbg6xjH/K0 192g== X-Gm-Message-State: AOJu0YxaphUeF7L9iS9OvdVAUJGpk6DAe4c3t/qC11kN95LDBGo7HYj2 8VPehmcM51gOtIdN2HPAN5KybdFqju/EAWMAeRNpp3wuu1ZLwY18Y1+a9WifCspAvhMPo/RLm9/ e1gVX X-Gm-Gg: AeBDieufKGyiKX9NHNV+2eivC+DuoZ7WyD7loiKEnoxg1UBs0wKhBgWwpvVoG7Bkuk8 Mc0huqh7AXmHUuSYOxG3ezhjB7dARoyyc3AXfnP8IuZ/1whghnamwu3K5a1NZyjRXcegpSmM+gq RF7iMLeaRFnulqwrphpulraY5+KIw9CXIsAxe9/lh33uoZaJhqGsLdJ2M/J4KOdk7EhLd743+gH HxMDRaeP/YE6PWJG11evZExl/i/FGzw1EF3GGQeuOwWHH/9Jp2zz0XlSLVON7fACZoEfnDVTlDk 5BUjNC9hKlGaOjEdyeNa3cIfi8Txayh9CT2qsuwXu4MfMxGcBaJtsnDF0FZzsS9mYoDrW/xWuph 1MBJm/jjqLbQzqpcd084L3vwvrUH253EdvLzam7/hFBhYtBO8u5W62iF6j7agKHMTVqhty225WW 9T2hKwAAOnx9OLqgUDioWTqsPe+0U4eWmaB08gfv9GP9CitA== X-Received: by 2002:a05:6870:8256:b0:423:1cc1:f878 with SMTP id 586e51a60fabf-43526b03e9bmr2820957fac.29.1778197685231; Thu, 07 May 2026 16:48:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 51/60] target/arm: Enable FEAT_FP8DOT4, FEAT_SSVE_FP8DOT4 for -cpu max Date: Thu, 7 May 2026 18:44:04 -0500 Message-ID: <20260507234413.643512-52-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::2f; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2f.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: 1778197880923158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 93cd7ee1a6..6dec7e045d 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1377,6 +1377,7 @@ void aarch64_max_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64DFR0, t); =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); + t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F32F32, 1); /* FEAT_SME */ t =3D FIELD_DP64(t, ID_AA64SMFR0, BI32I32, 1); /* FEAT_SME2 */ @@ -1396,6 +1397,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ SET_IDREG(isar, ID_AA64FPFR0, t); diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index a6b48f9c60..bee4e36dc6 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -75,6 +75,7 @@ the following architecture extensions: - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) - FEAT_FP8 (FP8 convert instructions) +- FEAT_FP8DOT4 (FP8 4-way dot product to single-precision instructions) - FEAT_FP8FMA (FP8 multiply-accumulate to half-precision and single-precis= ion instructions) - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) @@ -160,6 +161,7 @@ the following architecture extensions: - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) +- FEAT_SSVE_FP8DOT4 (SVE2 FP8 4-way dot product to single-precision instru= ctions in Streaming SVE mode) - FEAT_SSVE_FP8FMA (SVE2 FP8 multiply-accumulate to half-precision and sin= gle-precision instructions in Streaming SVE mode) - FEAT_SVE (Scalable Vector Extension) - FEAT_SVE_AES (Scalable Vector AES instructions) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197896; cv=none; d=zohomail.com; s=zohoarc; b=KdgA/aHFZ3wu7gaDRJzz1fl+YCAPwnI8aFFh2nnEZ6Y4BF5fc16xRsz0ufKiPwtCzRhlQTEmPUrQPP1cM3JjRnN/ErSxH/LEjAfS6mtYTMGCgapFtWLrpFZ1lWirOz16gIr2iLMjNGY4ltAQSPhW65VMUuU8oe0dZY92ynPx+9w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197896; 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=V7UFvrvkCqUMwpHlUer4hPaF8EHvqpWBM4GhbF2/XME=; b=chsfQR6y6171x/YuNLNePMtdqc/PnJrXhP03RGLziOlEHEeyNjrszYH8eqPIRUsMyWNDPRTEeS7uVrTxYJZ4B1MIfTASMpD8PbjqP/6PDNH5rCT3HDrPmMxVKBNdJKMBO4Mv5Gh8EkpmDC4UpLSzrQdQKyf2E2OyMHKDq4VFgfU= 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 177819789599523.935281677739113; Thu, 7 May 2026 16:51:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SA-00082O-N1; Thu, 07 May 2026 19:48:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8S1-0007UH-4U for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:18 -0400 Received: from mail-oa1-x30.google.com ([2001:4860:4864:20::30]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rw-00029j-2D for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:16 -0400 Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-40ee9b945d5so972867fac.0 for ; Thu, 07 May 2026 16:48:07 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197686; x=1778802486; 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=V7UFvrvkCqUMwpHlUer4hPaF8EHvqpWBM4GhbF2/XME=; b=swIlN2DXCgPRpA/3YLkwuDaqM8EpsgJfUSycn6KQaiRmTBB4bVObFl+R1b8C28/2om cuJtCGBHDQxVd2a7ZX/i/j30jqzqzjWRmeCOtau/f4KGCpCmh8aMc8Fve2RwaTkCsbHC HbqCOeZMh+Vq/KuoIhhj5LjX5QJl8Xfu5ktCpYOOdv3k/Ngru572wFDN3NXoq+UKzeYv ugeBu0PNxdRgKlVqZFcX8NXk1P5zUo+R2dCryUYOSiYI0IByAH9M2KyPx/MyUFKfulNI A4gHyl3Au8UuiX5GbaJrA9PTLIN7b3lwi7/96+m8yCpfHvJcWI3dICIVa0oL62G9pwr6 c/iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197686; x=1778802486; 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=V7UFvrvkCqUMwpHlUer4hPaF8EHvqpWBM4GhbF2/XME=; b=mjjajy+u6fZ5n7X5+URO5QnmuQlo4khIhqZVZqCb/Ahc+o5BX2tDBSJEC8q+225feN u+kpTuqpPoI3zV2V0398vH2lKo43MjpbeL4QzZ3ytmWRs16igEVuJbiLBzCDiUddFdFm RveRX2FukvdAEzMAk1FRhcglR3ldr4TbD5b2BQLvy23AvHyHCJ+Ec/Ic8AQtdtWc+xWo q7i9MKhXyBKzEHUVQaPldXi7Tq/5hn/V+FBNDVxUo+HXxrNvdC9Ag8HW96tMEQGWfBf4 BSDT2yb49STNMuFo08tQJje7+YKE/JLh5iBIen1yXhieX9tp2uDoPrEHmLNLSUOe/yau rXdQ== X-Gm-Message-State: AOJu0YzhrdwIB5WkWmaX1g7PBo3PJwBX/VXUA/nNK025Jfp+0JtC4Cro iwGuICAKYC4vLdwhPkXzhvAUMK6M6P8+flAPVoYTCFuXAFIdlOwP/hCRrWiQm1e/AcBL9AO+XF3 FyI8Z X-Gm-Gg: Acq92OGNaPHUMbPz5chNaVj40s5zczriqonKpyFWdbe99m4gm2UrkUm2cNfUA0hC7LL jZGxwoqRXxzLYufZixNouRccotdmH//IJ5W7GFHgqasYwalQIP8OPowQ18SWCLeRgpk8+tl/paY FfPAi1UUaNUZOFS3vX2Ego2WlWg9o0IDI7WoCT7SZvWe0g7kNm7lJCl1fbL6PIkvm62zXKAe18o 9L6RlxcJY4x+vEtuPbQTZFXGYbIlVOQItolBeaIXZWgp9RqZTI1toIp0QyVdrVKVdugRmIL55XU L9II+3u8Nrw5hO6ov+/yPzdQDEwYfurVCIv1v7qarBnZUCJiJt/MT8AkKIzDElqWCM+LhkBWx9/ bAldws8kXapyXmre/LXwRFfX7s3jJh9wBDKLTCOakFDgzfyBo5ijYt38aOtZ5JAHRL+jFsGolku 3GdewvOPr0X6i7zAziYWnW3bvNE0EwizJEtiohYYXoki681KiV5uukbs+V X-Received: by 2002:a05:6870:7204:b0:42c:42c:8e19 with SMTP id 586e51a60fabf-434f6f904b8mr6768568fac.23.1778197686362; Thu, 07 May 2026 16:48:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 52/60] target/arm: Implement FDOT (FP8 to FP16) for AdvSIMD Date: Thu, 7 May 2026 18:44:05 -0500 Message-ID: <20260507234413.643512-53-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::30; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x30.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: 1778197896908158500 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 | 41 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 2 ++ target/arm/tcg/a64.decode | 2 ++ 5 files changed, 53 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 908dfe0edd..ae98d126ae 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1604,6 +1604,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 48a2e29a31..d169e8327f 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -772,3 +772,44 @@ void HELPER(gvec_fdot_idx_sb)(void *vd, void *vn, void= *vm, fp8_mul_finish(env, &ctx); 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); + } + + fp8_mul_finish(env, &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); + + fp8_mul_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 8ea63e94fe..c5ea6b27a9 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7417,6 +7417,7 @@ static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, } =20 TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) +TRANS_FEAT(FDOT_hb_v, aa64_f8dp2, do_f8dot, a, gen_helper_gvec_fdot_hb) =20 static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3_ptr *fn) @@ -7432,6 +7433,7 @@ static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e = *a, } =20 TRANS_FEAT(FDOT_sb_vi, aa64_f8dp4, do_f8dot_idx, a, gen_helper_gvec_fdot_i= dx_sb) +TRANS_FEAT(FDOT_hb_vi, aa64_f8dp2, do_f8dot_idx, a, gen_helper_gvec_fdot_i= dx_hb) =20 static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index d78a3d5486..d1254355b6 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1214,6 +1214,7 @@ FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ &rxx idxm=3D0 idxn=3D%fmlall_idxn =20 FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ..... @qrrr_s +FDOT_hb_v 0.00 1110 010 ..... 11111 1 ..... ..... @qrrr_h =20 ### Advanced SIMD scalar x indexed element =20 @@ -1340,6 +1341,7 @@ FMLALL_sb_vi 0 . 10 1111 0 . ... rm:3 1000 . 0 rn:= 5 rd:5 \ &rxx idxm=3D%hlm4 idxn=3D%fmlall_idxn =20 FDOT_sb_vi 0.00 1111 00 . ..... 0000 . 0 ..... ..... @qrrx_s +FDOT_hb_vi 0.00 1111 01 .. .... 0000 . 0 ..... ..... @qrrx_h =20 # Floating-point conditional select =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197815; cv=none; d=zohomail.com; s=zohoarc; b=ikCgPXWdXnFNNoPGJOAxxcaDIr90pOwB33LS8VwgDna0lGbvLL9Ij+F9jpKrLB9dgGn0O93xC3VXbb6dWgoU5UQDyLLcTZL/xjH8NWqd+fG20YTQYBWvp9KtqCvfHw45MkMVPEqCRnnRFjAJI3pPtiwPS3mQgrY4yV3P+0q1TNI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197815; 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=Hd4GcTCtxIy0yP6zc3Nx1kS0pnGqa1eP/vZ+uW2aMwo=; b=meZrqQUG3S22GvZxn1EdGCSFgrZKZ6AxDcGmcutuPE5ndN5LaKG/UFnrsycuMyd99zlO2OZL5OZVbCSUoSPcHK/p15kX5RhpF+oOlIal3kx2/W9dQk0V5RANvhI4nZBP74plUADa/QIZoRy9Xa3tstoC5z23e+218xOaNxrxAZI= 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 1778197815676221.52248051914478; Thu, 7 May 2026 16:50:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SF-0008Ga-HK; Thu, 07 May 2026 19:48:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8Ry-0007LP-Et for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:14 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rv-00029u-3Y for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:13 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-466ec4c6846so524294b6e.3 for ; Thu, 07 May 2026 16:48:07 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197687; x=1778802487; 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=Hd4GcTCtxIy0yP6zc3Nx1kS0pnGqa1eP/vZ+uW2aMwo=; b=cHVfp6PsqvLTroAw98KWKY8qiuUK4A+q357dRohQXMgPxlc/HtlvNxX6CSOEMCtKKc hZIARsG5dsSibWs/HepKVxwFKYNxPhFvEwQCWgR/LpX0ff4ey07muvCxgoMlk728CAaf QqS6R8z3Rn0SdovAyHqoQsqVIo+FO5/C9K6XGymksx8/CEmEYr9XYarxCTQAmFSsxX1e r+8blARSDqpwnSHzJMgnnDgXOGLg2sGxrIp1Cno2ithqMU5ssqcfalDbODIcxtRixGuf DTCSmqO0ZDW3/Lu49DBHmKOvuLtZOVQBgmlJDzXNS2wbjeMF69N9a1z9/bKI/dlOyaYo /WEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197687; x=1778802487; 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=Hd4GcTCtxIy0yP6zc3Nx1kS0pnGqa1eP/vZ+uW2aMwo=; b=TvgaV9YPEOAtpIk/fIgcw/S2hk7hA7VKZ/2Nh0kx6n8di8h+z5moWSB9y8tfhy8sp2 prOsC2NL/bY7xa92LM+sUw7G8ahCPrK1IGs9OykMUHrvKXIAVxmYmstn24I6ANuwgIhG KK2+CboTIdaZu7BbXdHc97j74RLCKdsN5cb/u259Tvmcfy7T9KUKX/tTI5I7KLLvM7Kd /n6CV33QvDJbRtnX+VRhyAeuGVNPNGFbnjKGkN2wY3sOV5O2MFzDeCToiznr30FoO54/ yHxJ2EGpUBv80Qa+yxETjQQr8nexE/zD96z2W3f3tWh1J1d02IiKVjtKFDsstThT2em9 niOQ== X-Gm-Message-State: AOJu0Yyax6xhdUh1ndSnp9e3LyagFo7JWiQv4E6BC4tYoDbxN1/L8pcE Y1tua9J91DiGyMiS08Hu22/jSFQwsyasj4ivzU2Rr7myQRu1vV9NhYHre5eqhtWcNI7Zdyiag1i KIzEq X-Gm-Gg: AeBDievQyGywM/vE8tk1Y8TpeebgUgFIanZk4WZwTkYGdpl0/V5wlSdHosz3K1zcOU0 pgFf9l5BZmzRVw1Ga+QR7lgWvJn4IkUMrhyDeAb7z5eRY7IVMCZlQ01dCulPvhMHFq/0oG1lZxC 19hdWWdeSNh0LO9zSb5XZRRyhnbYAVJbOJia+IujR7aI52d2qHYvxJfO+k7AJul1I6LoDRX8iAu wZmD1Pe3XRKRSgZU4+EdTMTT5hARObZl+1/mEbw1rlJTO8kJZGnLyNKUP7l5e4wJMBVV0t/eltg quFb8bI4eJ0V9Sly4jRFjTTgzPURDO2bWe8Jok9uc117H4teekJglKew/IpgtaoC/a7YOy5A9zg iFsFGr/TFvfVO1CnPuj34vtX18AGEQTMpO2MnRjzH7HmicFfRDiK199zfTOO6Uo59J/tHGQ85BI 4Qr0+bVtsK3t04TFrfpFEzGCW1AMA1lmBe0zOZlxOTXLpqkg== X-Received: by 2002:a05:6820:1627:b0:67e:16b4:aa1a with SMTP id 006d021491bc7-69998d624a3mr6210716eaf.54.1778197687293; Thu, 07 May 2026 16:48:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 53/60] target/arm: Implement FDOT (FP8 to FP16) for SVE Date: Thu, 7 May 2026 18:44:06 -0500 Message-ID: <20260507234413.643512-54-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::230; envelope-from=richard.henderson@linaro.org; helo=mail-oi1-x230.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: 1778197818310154100 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 ae98d126ae..9825262284 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1549,6 +1549,11 @@ static inline bool isar_feature_aa64_ssve_f8dp4(cons= t ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8DP4); } =20 +static inline bool isar_feature_aa64_ssve_f8dp2(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8DP2); +} + static inline bool isar_feature_aa64_sme_b16b16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, B16B16); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 88e6148b83..8d622f9a1c 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8407,3 +8407,38 @@ static bool do_f8dp4(DisasContext *s, gen_helper_gve= c_3_ptr *fn, TRANS(FDOT_sb, do_f8dp4, gen_helper_gvec_fdot_sb, a->rd, a->rn, a->rm, 0) TRANS(FDOT_idx_sb, do_f8dp4, gen_helper_gvec_fdot_idx_sb, a->rd, a->rn, a->rm, a->index) + +static bool do_f8dp2(DisasContext *s, gen_helper_gvec_3_ptr *fn, + int rd, int rn, int rm, int index) +{ + bool fp8dp2 =3D dc_isar_feature(aa64_f8dp2, s); + bool ssve_fp8dp2 =3D dc_isar_feature(aa64_ssve_f8dp2, s); + bool ok =3D false; + + /* Feature detection and enabling are complex here. */ + if (!(ssve_fp8dp2 || (fp8dp2 && dc_isar_feature(aa64_sve2, s)))) { + return false; + } + if (fpmr_access_check(s)) { + if (fp8dp2) { + s->is_nonstreaming =3D !ssve_fp8dp2; + ok =3D sve_access_check(s); + } else { + ok =3D sme_sm_enabled_check(s); + } + } + + if (ok) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, rd), + vec_full_reg_offset(s, rn), + vec_full_reg_offset(s, rm), + tcg_env, vsz, vsz, + index, fn); + } + return true; +} + +TRANS(FDOT_hb, do_f8dp2, gen_helper_gvec_fdot_hb, a->rd, a->rn, a->rm, 0) +TRANS(FDOT_idx_hb, do_f8dp2, gen_helper_gvec_fdot_idx_hb, + a->rd, a->rn, a->rm, a->index) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index c49e992f10..26b3c7697a 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1875,6 +1875,7 @@ FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... .= .... @rda_rn_rm_ex esz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 =20 FDOT_sb 01100100 01 1 ..... 10 0 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D2 +FDOT_hb 01100100 00 1 ..... 10 0 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D1 =20 ### SVE2 floating-point multiply-add long (indexed) =20 @@ -1900,6 +1901,7 @@ FDOT_zzxz 01100100 00 1 ..... 010000 ..... ....= . @rrxr_2 esz=3D2 BFDOT_zzxz 01100100 01 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 =20 FDOT_idx_sb 01100100 01 1 ..... 010001 ..... ..... @rrxr_2 esz=3D2 +FDOT_idx_hb 01100100 00 1 ..... 0100.1 ..... ..... @rrx_3a esz=3D1 =20 ### SVE broadcast predicate element =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197926; cv=none; d=zohomail.com; s=zohoarc; b=h/vdtdy4Uom1LA2vDov3J+mBweZqyAmAdYWPcZeCD/FYn0BBsX3K8Tid4oNiMqWl+Cpxly1HFrnoHXqkYlKw+eM7WvzDPiQCdq1r5nH2BikTG9+KrK65CWSiIx16w95/V7wKeFuM2J0ygQL66qy01YOtVCTRWEvNHyNaMORH78Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197926; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mgEG0/OuigOMwClChXrRoaFDD6e1qpvZV0h5+lZSYqk=; b=A45G7bC07WpEbLH2aRNZEK8xAgFJYuhT189k4qefLYHYCEbXYluYyjowrI44ecJX3l75HC7AANA7h/U3HmV16ErDfXnUMGn1/Sng7K17dGNYnU8xM2/XAzvkG00p9+8aXshkz7rVWMPR7B6leeuXWzPuNdz5/fzlC6sTySUrIkE= 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 1778197926667928.8166663367222; Thu, 7 May 2026 16:52:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SD-00089W-Ln; Thu, 07 May 2026 19:48:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8S0-0007Sh-UE for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:17 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rw-0002A8-1X for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:16 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-4350cd5b97fso781553fac.0 for ; Thu, 07 May 2026 16:48:09 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197688; x=1778802488; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mgEG0/OuigOMwClChXrRoaFDD6e1qpvZV0h5+lZSYqk=; b=bmayzxRP/klsWtO8J4Rf5j3Zjto3fKL42LiYarYtmf+K+yhHLsxQtyT8nXOdohtXIh n2qnwcKWXa3PRm/A3AAABpwPc2Hc3GfIQBTeQNoaiw7KGZfINlOWWkLtlStBT006EYHY 8F1lBSZEAWVUBPb2xdcnarPqBe5sP1TxE7sxSgAkKj1XKPQ8dcucN2GNbQq9YsLRghXM AUjmaZJjRx7MzCCVb6DF+cSJ23+pY/m2gLpBEPz8fpdti6bGrJNu56m2qdU46Oxnl3ix wSS3HTU6KtsZwPFRs0d07IjqDKVuhUf9a4q1xuPljUtcBHgSNXcIVJPM2nSgy/O9jRzy cc3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197688; x=1778802488; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mgEG0/OuigOMwClChXrRoaFDD6e1qpvZV0h5+lZSYqk=; b=hsMgBPk2TymNE9YA//rdg0Ax2ZjogSUm347YSef4zhvGyq7kG+cAWGZ2+cx38xX1/q f4Cbx+fPjL/rHn9vhs4uBYUcKA3kjJQjnzrJCjXgpS9PZAGetbCfIT8GLZuk/BkOGLIH GRGIi5GRExQjtW9UzS2jYTTk3Zx+fZiT0YgiBJkQEAKdZVDGx4Is5uCwnbyc4dSYkuYW K38Eaym4pI4KrEeAdkTKBDRJB3oSEt5ppM2g5Cs5gNYfpgsYpDAC8OI8+DN3IX/DF3qA JiCT+fFIdDDdBlZIdPstxhG9V9+HG1CPrNOIM0GpAtwxJuURDAhJKgxE82WKbzMV+zPT aCMw== X-Gm-Message-State: AOJu0YxtQz3SfYvjXgr3O8XDcqZmAZbglBi5Snv5v42OCO26yzgJCvJH Rrla9HacZwP5wE+TMJUhI/x/HJ8Tz42f6AHKphrzBRNjyHRpqRUWvfXRuWVg60E1Xcl4/WGsUxG G75br X-Gm-Gg: Acq92OEqJ/+uWIns4QkK2nP5cL+eoPoLby24Qoz46LHYcDwqyNvxGpHEPtjwCI2PTRT G/lUrtG0ANVt9cmqUPKVwlOVFc/gwRsIo9gzkIuBFH5Zo1A5yIZv3UoXpDbDlPoGgtGToh2LjoL CKnXp4wkxJPyYFXIHq/G1u6S0HFCIPwjwKznDAnaCAEAmOhZfWfu4Ea6a+v0zxIw1bJr7MeKawO OGGOOmAgwP0XkO/pJB1Q6KLVtyFkZc75QgDsfhpE8Xcy+F11631NaPm86goUGx8QpBkfsMgiS36 QHoEosC0shG9znPVIr2/83KtbDFwJZTWIeJBnoihEGyrz3YoMLTSjy0O701qMhbJtj0vbdcAD43 a3pPE9+xUMSU/8Dz3JbV9WOjuA1JAoCBfpANQN+pOtOyzc4YE9Yfkadp806takUCYhNRJ2mUZ7m V/3XF4f5X4DCWn005QX0p2DhSov/RcUIJJOI95BI8CEZKZiwSYZ2FLx+9L7E0mPzzE/po= X-Received: by 2002:a05:6870:7d01:b0:42c:2421:5777 with SMTP id 586e51a60fabf-434f613bb6amr6897234fac.13.1778197688577; Thu, 07 May 2026 16:48:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 54/60] target/arm: Enable FEAT_FP8DOT2, FEAT_SSVE_FP8DOT2 for -cpu max Date: Thu, 7 May 2026 18:44:07 -0500 Message-ID: <20260507234413.643512-55-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::31; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x31.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: 1778197927119158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 6dec7e045d..a43b6367a4 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1377,6 +1377,7 @@ void aarch64_max_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64DFR0, t); =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); + t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP2, 1); /* FEAT_SSVE_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F32F32, 1); /* FEAT_SME */ @@ -1397,6 +1398,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP2, 1); /* FEAT_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index bee4e36dc6..875716d18f 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -75,6 +75,7 @@ the following architecture extensions: - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) - FEAT_FP8 (FP8 convert instructions) +- FEAT_FP8DOT2 (FP8 2-way dot product to half-precision instructions) - FEAT_FP8DOT4 (FP8 4-way dot product to single-precision instructions) - FEAT_FP8FMA (FP8 multiply-accumulate to half-precision and single-precis= ion instructions) - FEAT_FPAC (Faulting on AUT* instructions) @@ -161,6 +162,7 @@ the following architecture extensions: - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) +- FEAT_SSVE_FP8DOT2 (SVE2 FP8 2-way dot product to half-precision instruct= ions in Streaming SVE mode) - FEAT_SSVE_FP8DOT4 (SVE2 FP8 4-way dot product to single-precision instru= ctions in Streaming SVE mode) - FEAT_SSVE_FP8FMA (SVE2 FP8 multiply-accumulate to half-precision and sin= gle-precision instructions in Streaming SVE mode) - FEAT_SVE (Scalable Vector Extension) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197728; cv=none; d=zohomail.com; s=zohoarc; b=NTyHfk3IkQ048qvecXAkJWUJV7L7b/+enql/PglMgpV2g1Itq3uDOjJIl2dL6qgwu7LhUzJdaYlJwo3MvHXIxzDSJcNI1jq3jROMxJ/2x+/Omd/vn0qgTtYzFhDKBUwmxP2bYESD2LZH4VB6Q06a5dWJJun63bya+0ZfM7adGmI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197728; 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=jtIBkbT81J+BgKXr02F37hxzamy6ljmyZBL+9ZpX8bo=; b=hcbDO3kVNaQaAL3az9fUIckn+XdnRqU3vTcdjGGOF43/S9aHeLxZJhdJCGqeexIHbJrQeLNIMkVOZ7z7Dg32XTf2ITghmz2jKJv90v1JW+lJdCgO66nDeaBybVQ/zQWeb7aiYyK6OmoUawBgRTA/k4ZVXCe3LSoK7XUC0WMVhNE= 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 177819772894092.85436646423898; Thu, 7 May 2026 16:48:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SE-0008DN-Ps; Thu, 07 May 2026 19:48: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 1wL8S1-0007U4-2H for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:17 -0400 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rw-0002AS-2e for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:16 -0400 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-4243bf9be36so701310fac.3 for ; Thu, 07 May 2026 16:48:10 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197690; x=1778802490; 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=jtIBkbT81J+BgKXr02F37hxzamy6ljmyZBL+9ZpX8bo=; b=OgeQmQBNWmZ4j7UtxoVWRgt0jwCqrXaeeaKUdPRVb9Gu1YbzdI4MASz6JMVbH7ZbYs 7+7z8O8PRSlet10bQEjeTeVE3NCqyQ+wpdvCVOhR+4qGi1VABO1bsRGkGWPcggTSPS68 TvIA3gZG/9cKLWny1v0ENsmz+tUuP6Bm9SDVE+17m0LCrYVhXWpYM3oeJbw9I1hR7YPi 0S5GkUPvdyJjvnO/rnF8Jir2g0xgavfPAxDbvymWdUx4/m09yMIZpLnkPnByz8nReh4S nZu7KgUeSg1rOGS0MYFQTZhDIl/g8OmHYi/JfPLNzGL/CyLZsbjFDeQ6FCaoLALeQn3H oD6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197690; x=1778802490; 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=jtIBkbT81J+BgKXr02F37hxzamy6ljmyZBL+9ZpX8bo=; b=q4p0rsFstb6d5izY9pM8zk7TqsTx7DFs4Z7aTjIVoVxre9uh8hlYnyx+nvrf4LnIoH 2rspC16WUqrqlzfl37JaTUDjDmn8C60P+4bbZqnDj6/MkX4ac0K32GuvjnxLi9E7Kzpd WqAKE4oIClPnIwj0iBaSapAL9jOV1ET58fjAmfWK3d23M2T4MNjs+JMMOn74xT1gNjJ6 EyIA1M6GesAQpClESf4y+okpT2P/9sWYK+wRIt1WBdrAnFqthx05Z7IXa+WIKuuNFvJJ Yi5Kq93KTV16eNVpS/YMnRyojMWB3kCjr+1fSJodWitz6Q89lz8aj6QBW95/eZOliItE SKNg== X-Gm-Message-State: AOJu0Yyig+C8jAow0Buqzu4iexPRrf+Rvy93Xhcfs5AS/v6sZv+ZwD07 P/+iPZCdzA48JQEI/k2PuMrHJJidu0wAVeeZTw86KRGXsBCzYBMGDtVryaroW+CWju4btgLiROu 7pyVa X-Gm-Gg: Acq92OHvXAGOjTmep8AmPZz6PTLlJIbLIreWQO19kK/cnMD3Yj4WmzLgzudroLoVopP 2g00QkJ+L2/GGBoR6EEqB22cetugMd3+h6dmU36JG6PazKkoSv60aK67ejajXua/+LpcFT0QzQW pbWzBWWldm6ZxEC4a/Pf7i403dHLc0D67jDhjX/4krEnBSG+MZNXCG/pzU0UPlVVWq+3iq0WnDu 9XYHil9+n7Ivb2QAl20U5WqpTGtxZvJ40mTggE/IsPCWoWyFrKNl2FIdOuT3pSZ/vW3LxQLt8wi ZVtD/eC1HdmtlTHlo3vS21zF0s1+4etUt9RHKZSryb9DChHGV2bSyHnb5+w+vfchWDve+YfAV/g zGEmnsf/neAkmfuyhYYdBnHLv4dSNB01C1O52jqICWavjGmX39B50hU5fBv5cxDFIq9Vf9lzZuS 2tQggAmlwfM78B5WNqXcbj3F9K+u4Gry3dLM9l0fNZRvAZ/XDmqkqr5+F2 X-Received: by 2002:a05:6870:2807:b0:417:533b:7999 with SMTP id 586e51a60fabf-434f58cae02mr6929035fac.1.1778197689706; Thu, 07 May 2026 16:48:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 55/60] target/arm: Implement FMMLA (FP8 to FP32) for AdvSIMD Date: Thu, 7 May 2026 18:44:08 -0500 Message-ID: <20260507234413.643512-56-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::2c; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2c.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: 1778197731315154100 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 | 26 ++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/a64.decode | 2 ++ 5 files changed, 36 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 9825262284..1f1c090ef5 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1614,6 +1614,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 d169e8327f..c90b276913 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -813,3 +813,29 @@ void HELPER(gvec_fdot_idx_hb)(void *vd, void *vn, void= *vm, fp8_mul_finish(env, &ctx); 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; + } + + fp8_mul_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 c5ea6b27a9..02d5e007f9 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7418,6 +7418,7 @@ static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, =20 TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) TRANS_FEAT(FDOT_hb_v, aa64_f8dp2, do_f8dot, a, gen_helper_gvec_fdot_hb) +TRANS_FEAT(FMMLA_sb, aa64_f8mm8, do_f8dot, a, gen_helper_gvec_fmmla_sb) =20 static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3_ptr *fn) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index d1254355b6..6404c26540 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1216,6 +1216,8 @@ FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ..... @qrrr_s FDOT_hb_v 0.00 1110 010 ..... 11111 1 ..... ..... @qrrr_h =20 +FMMLA_sb 0110 1110 100 ..... 11101 1 ..... ..... @rrr_q1e0 + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197895; cv=none; d=zohomail.com; s=zohoarc; b=ZD66B1sfkXBepAxH76IZUwPI29nt4weAyhSI670Zota111sU6HxlbKOYsBNeNwVkTLBPQZlT0CRlCySapTktnHGO11qXHFb5w5PWl9g2kzD5cZ/9t2dFKuT3vFIAGmvfif+PeclO0gchdO8VAFtot8xbt6jpHy1+LM94NMqmAlQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197895; 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=e6OwHShdcvtjgeHyBz/m9h7QN/liBHaPqasCY4NNljY=; b=RJ9AD1HWHeQtSmZDZ+SlTWNnOGgsHUWuGk82lEc5v+rSa+gkbgSpVAuTll+oZagjewHGiOB+2bApZzrtLDCaKawuekxIF2bg0Vilee9yd0S2Ahi+GpEvl+6pUsk1WcYYx7UkphwFNGmR5zpGUhgKpOs1iXyw3M9PDZZ1ICbF7JY= 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 177819789598845.82895425253582; Thu, 7 May 2026 16:51:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8S8-0007wT-RK; Thu, 07 May 2026 19:48:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8Rz-0007O8-Fn for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:15 -0400 Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rw-0002Ab-1S for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:14 -0400 Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-435428c81a3so502826fac.1 for ; Thu, 07 May 2026 16:48:11 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197690; x=1778802490; 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=e6OwHShdcvtjgeHyBz/m9h7QN/liBHaPqasCY4NNljY=; b=fUWPdmvnR2j2ScBEQGjXUeQUfT5hPYrdMsIH46gmtC4l1+rk1QibdE2oR0riSU+58+ swM6y4A1fJTW6ES41x+yZpqfozohe48tn1CQkhA4uG2sPnvoywHBV4U8eY0q+i7yzWF6 wg1lVflxL5aG0xDTDZQpklCRJPjoNGZkLFAGxR7IyGCi4hl+s1+w8KXNMniHwad70gD1 vi9QC+ykQdUDN0Jm76qZ/kg1yvt2V54xqe1+ny6rjCyVEgAvZkJfmAf2g32BDPFxn7JF ntV9wU/7wib0+1Ua4uheprCUL1if6irXelaGi79BrgwaZ68HjmsZ0xe8RYzycYh61GnU fznQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197690; x=1778802490; 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=e6OwHShdcvtjgeHyBz/m9h7QN/liBHaPqasCY4NNljY=; b=Nl7wAcX6XFO2VwqOaGZzMHnHhAX6sM6b4KVJiq9hUN6U4iLojggraleVfliKoFOcIV xatPYMZsJIjK8Uh99YhkHJhOGEWpuH5UwtKV497XYnuObyDQvfpYpwhNr6HMVmOe7Coa Nqp7yPRf7tLNsXd7xwkSuR97b8cnvb0GCEuarYMv538OF17iiRTylk6yqZj4X8TsJhPl Xmmkq9D1DvJ0Wsuo2jcmrDoJ6BrSp1UwfKrdX9cJXadb2p/QrlvsoD0RhJje9uHonYqH ZWxI6vwJI01Q0xLBRd/olsy0WBttNWAPsCiTNyAx8GL9KAbQv0yJ4OLmhfCD6B2haKE0 zH1g== X-Gm-Message-State: AOJu0YynNMQ7iKI/xZ8gj/xp9P5W9KONfTdv1j1upes5bIlhz3HKrUqY M/galCeHxaRlJMIM7U2INJaZD9yferFubwBDrP3VF0GLSt3ZkED1zOpz7hZQxDbSHGciV+Ed2j7 wPFg/ X-Gm-Gg: Acq92OEsd6R74M+BZ/y1Id1FPQwUQrTLZpN2P3zjER4nV+wSE/PKNUnNKSfcTR8S/bU SMtKRrS5qZ5rkaDjPGw6rL/CgFeut96ZNmXCnuEmd19VrrjjpTMEUiHspflPcmlMw6G4v5mM531 WqSv8YHskXiKTknZZQRurCXXzh7RKuCNBWfhuXqMhHAzSahoK2pHiuMnqVTMqDzs4eol1Ky2ark YEBw0hzKlVkTkDKFaqQDQVRmsuDEnBiGXHJa0u95d17fsSsOS9qWztVymBZQf2gpL5XerADuCst 8UHF5C2T+jc0nwGUwiQUSfXIPXfUGhbJ9XvGermLvXGRLE/LVZQD5kD6hK/QpkSd1aePFrMvAhZ yhiCFjbdFtp8Rh6PQUcuH9AUjfuB6ggvdvDzmm2SIRkHHpRz9JvOg7ocpyfyJ0CceThGb40q6ek eIfHF8Z3JkN8zmbyq00YsQUNWoqEYFUJ3kIUM8gWBPtwq5Jw== X-Received: by 2002:a05:6871:eb07:b0:424:2672:445f with SMTP id 586e51a60fabf-43556ebb344mr312016fac.18.1778197690585; Thu, 07 May 2026 16:48:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 56/60] target/arm: Implement FMMLA (FP8 to FP32) for SVE Date: Thu, 7 May 2026 18:44:09 -0500 Message-ID: <20260507234413.643512-57-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::32; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x32.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: 1778197896894158500 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 1f1c090ef5..0aaf08eba9 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1687,6 +1687,11 @@ static inline bool isar_feature_aa64_sve_bf16(const = ARMISARegisters *id) return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_bf16(id); } =20 +static inline bool isar_feature_aa64_sve2_f8mm8(const ARMISARegisters *id) +{ + return isar_feature_aa64_sve2(id) && isar_feature_aa64_f8mm8(id); +} + static inline bool isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISARegisters *id) { diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 8d622f9a1c..5bda5f6c01 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8442,3 +8442,19 @@ static bool do_f8dp2(DisasContext *s, gen_helper_gve= c_3_ptr *fn, TRANS(FDOT_hb, do_f8dp2, gen_helper_gvec_fdot_hb, a->rd, a->rn, a->rm, 0) TRANS(FDOT_idx_hb, do_f8dp2, gen_helper_gvec_fdot_idx_hb, a->rd, a->rn, a->rm, a->index) + +static bool do_fmmla_fp8(DisasContext *s, arg_rrrr_esz *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, vsz, vsz, 0, fn); + } + return true; +} + +TRANS_FEAT_NONSTREAMING(FMMLA_sb, aa64_sve2_f8mm8, do_fmmla_fp8, a, + gen_helper_gvec_fmmla_sb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 26b3c7697a..6610432528 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1808,6 +1808,8 @@ BFMMLA 01100100 01 1 ..... 111 001 ..... ...= .. @rda_rn_rm_ex esz=3D1 FMMLA_s 01100100 10 1 ..... 111 001 ..... ..... @rda_rn_rm_ex esz= =3D2 FMMLA_d 01100100 11 1 ..... 111 001 ..... ..... @rda_rn_rm_ex esz= =3D3 =20 +FMMLA_sb 01100100 00 1 ..... 111 000 ..... ..... @rda_rn_rm_ex esz= =3D2 + ### SVE2 Memory Gather Load Group =20 # SVE2 64-bit gather non-temporal load (scalar plus 64-bit unscaled offset= s) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197876; cv=none; d=zohomail.com; s=zohoarc; b=jmvBWOfbZkrsA/kL+z/mU4o1/WgBJ+NacWiddIrLg0tXFruZ74g4faZHYolqHy+RfSwKn4396CmDhTa9O45VObUHp2/xznUIGjhLnLQdj1NslzxrvShDlCSLgSS7JBxMFmelD5XadAFh1HadFbqc0PdTeIP5jesc1hbvzN/JmdU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197876; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=PuGasVrTDp5bV7ix67mPvlZpXL4SBKk180Og/sZBgEE=; b=UpWQLrWfHApFQ7SmU6+V7E6shWguHaGKMzFKwPPyW+DgWfzPIxahvlop86eXEAFt8ufg8cqk2oPKiDCO+1GccTvaqeRYceeoVmwsOc4MJX53iaCSRgXdjBCf1uk64EYKfsMxlA93W7qXtJSG2OfHyrdf5kQyk63NTjHC7we0AnA= 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 1778197876324657.5619809450188; Thu, 7 May 2026 16:51:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SB-000849-H4; Thu, 07 May 2026 19:48: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 1wL8S1-0007U7-2u for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:17 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Ry-0002Ay-4c for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:16 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dbd23bc684so909721a34.2 for ; Thu, 07 May 2026 16:48:12 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197691; x=1778802491; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PuGasVrTDp5bV7ix67mPvlZpXL4SBKk180Og/sZBgEE=; b=Uh1dPXSS5M77rtXVaCs93QYqmWYBnx6QfD53DZAEOCPP8MHmV1l5Ico19VTOOQcmIF 4qjy+4SAeFJanN3uoW3sXztqf5M0ydUJinAxpYX8gwgQWwwAT+8cXPC9IZ/fzB9KaCMZ hqg+090l2IJE6nHGtN3MqBp1/d/XNLxndK+upeyr36lZpgxCeNsoHw7F7sC2hbxtSIVX aUeJK/sKYBp3+oYXsZrTgrPmxihFX/jp6JzXPJ1gJ4wKX31sgD5UP+Rb4780/u+p93K/ VLaiuizcnr6NNL/hrfPQpetrgAwayECuMaJCDI3Q+N16PJbVSOmSJzCESFMPvLqOJz3J RScg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197691; x=1778802491; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=PuGasVrTDp5bV7ix67mPvlZpXL4SBKk180Og/sZBgEE=; b=DSZuBWYKDXq+vzNWvH5RDBv5260xP90cJtoLlKzZrqydmZbATW2LBcPZLB/B0w8gc3 CwJR3BB0tsLoNWZYvNtjPEqnPnvJucacM0bUtUEjcYeqRgs4Sc9COIpKMlZMx3YAVkk3 mcgasF1HfsO9t6j2knv8wH/a9B6/eNeNdF9ClA1KZ0VLREzi64Mz56XgKosWIO2s+cCn 6kuB9nlONiLW3nuLq1k5of5ajgWGvTjJivwu7XXFxkBiTji9tJfoKxc/sYmBS1Lt9BNO R2om8vfkyD7RfcApHHgy+T/c7dIEiJJoAUKqcFQnhNi9aAJMrbeHmyAPuQeEn4ZwHlWw Q/+A== X-Gm-Message-State: AOJu0YwoeUb5pDcFhEdEVd9i50v5tDErTYS/19Uot2Cjm12cp0EOd6EH 17/IO830baU1D3RWqmYX8MA9NqJJDg1dCDIxbR8R1/G7xYGhAXhvWyVezTmpmrH7z4aBxZAGNis mj6eY X-Gm-Gg: AeBDietS2Y2Mtu9V32mEZKRelTxItKePoqrf2alvcgcb99QTXjuU2hOJ4AQsrDwqwwX VxooCW2jfrvCQV1urRwaUtbXWZRfQayeZw7HPf1GoDqrc2oBHfgv7H0Cic42Zr3qH4c9mNlwmxr Xnl6I722QEJeKl7wdbahuS9p8nFCTBTN31yez633aZ+uiLqF61j84f3IYU5tRKtszRlbYTzfkLh iFoJvO02eQjPhTQApD9QSxbEkuU9b+vlDWoLsXKUSjduJwNPet2XMM25KwTdNmANEO1duLFBoep tAZ8KJbHcSX2LHhiQFJJ9Tmae8ThOgZ0oPT1SM6c8bENn1HQq1O8XOyjFiO9JJgxZ7pQMkYEoU7 oKtNojSXwfPltp3PLfMDHwJTSvzZaw7KRxYnGmdeuQaISmXpD8m2EqgTjC7vVhhp7s4yLmO+BOS qrEBAb9x65ACqmVpdjWmHInRkfcLheZqnomGAgICVMwju/ug== X-Received: by 2002:a05:6820:4c0e:b0:694:a362:e3ba with SMTP id 006d021491bc7-69998d32a61mr5811684eaf.48.1778197691382; Thu, 07 May 2026 16:48:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 57/60] target/arm: Enable FEAT_F8F32MM for -cpu max Date: Thu, 7 May 2026 18:44:10 -0500 Message-ID: <20260507234413.643512-58-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::329; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x329.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: 1778197876864158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index a43b6367a4..7a47af9f5a 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1398,6 +1398,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8MM8, 1); /* FEAT_F8F32MM */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP2, 1); /* FEAT_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 875716d18f..83967da12d 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -66,6 +66,7 @@ the following architecture extensions: - FEAT_EPAC (Enhanced pointer authentication) - FEAT_ETS2 (Enhanced Translation Synchronization) - FEAT_EVT (Enhanced Virtualization Traps) +- FEAT_F8F32MM (8-bit floating-point matrix multiply-accumulate to single-= precision) - FEAT_F32MM (Single-precision Matrix Multiplication) - FEAT_F64MM (Double-precision Matrix Multiplication) - FEAT_FAMINMAX (Floating-point maximum and minimum absolute value instruc= tions) --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197892; cv=none; d=zohomail.com; s=zohoarc; b=Ex7IGqqJUjgsfvHhhTUXn7HShOwPz3fyyXDl1nG1gXSZqQ5LmkAudcdVODvskOzqAf3Idnw9mKVz8UhtZYIEIQoUmXA9MuNKY/ew6l2AWUu6UpsSuOy1/O7hBgoNlnujhz2zo0MzMq+QEj+VR15k9QDo9+S5JO83td576M4sPwU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197892; 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=/106JkrzJFzFnqkxxfcW/t8wbw54ekNHS0lrjPbUE/s=; b=gW/pmYv+I4/Qk5tDjrkEoYbsrDdQQ6J+6Usj7IR6Vtl+c/P0HQjZT2orxYMLJBjw+m9gq76sXJfCwqH2YizHcaUrH49OycDmsZpWYPXQrueu+knhxkGo+HoOKwlIdbiwYQgY2kYCWu0INbp7z9/SQu7q/i68SXDxTSecB3ASA9Y= 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 1778197892438920.2108621202208; Thu, 7 May 2026 16:51:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SG-0008Jg-QB; Thu, 07 May 2026 19:48:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wL8S2-0007Ug-HU for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:19 -0400 Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Ry-0002BR-Aj for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:18 -0400 Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-435153d9b68so867196fac.3 for ; Thu, 07 May 2026 16:48:13 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197692; x=1778802492; 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=/106JkrzJFzFnqkxxfcW/t8wbw54ekNHS0lrjPbUE/s=; b=PjLQ47E+EwUwLcoz3AQdPSisNNPq/Y80z0l93jKQF5MgNjuE0M9BiqF+LFuUC5mSEn lK2QjXm8sVOPNuGKDCO0wBu2J5a/ZGkoPH+sZlmrAU/UPsjEEElyn5KOxSsZNAlJyoEa orXOJehNknyZ/66ZhBRGUqTeZV+2RnqtFGq9gLDnqjUS7DHosOWTPJU1XnE4MmqEAh6Y p8BzA29hzrSGSEmRkJ09h2jkN3yBTcxdUAR69SOjuR9B7ir5E6AgLCo3M1iTrj7ep+J5 /iEjT59akTX6iiHLVrz7VdYDywYenw/WZODXJ1obM6qVbzv63jbjvM2EnWm7xiOI/wrd yeNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197692; x=1778802492; 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=/106JkrzJFzFnqkxxfcW/t8wbw54ekNHS0lrjPbUE/s=; b=D1/ddCF55Z61d4YHpuo7h8GuFjsFIwvB2QMAjFUm4Q0u2BYMtnM0i3RM+r2JDXUWgV kn6dFOZpniS1FcGEB/IrwsOSTEW9L6rxklfMpL+zrcN0nytv2ET6cOF/o1GFn3Iq3Dff TCF40UrKNb+3aidBh7I43V+MMHssA5UeB11cHi0LI0daHMDonj99r1aDC+saZnuiEYAP aYVF9Zksu1xoN/pp9Grh+pWpCQP3i1JsweNuiMsPMNcyToQY3L7ucIZq5eKFrqP79UNr 8aUeXuBS3+vRzJnyPtUPWtvebVWJyl/IoU6ZlCLRObuMEFNXKwa0cIo/Yzqi+63bq0ji qigQ== X-Gm-Message-State: AOJu0Yy/Hns/wUA+WurplSvvT7t3ZtBrt34oCdUdZpGtnkGCUoMBUcse ws7z0axOTgh6XsZnwIMf6FQDwg4GFhoStp2dnFp4ypSLS+gYYfAinw2zJiofzBZVvEO0eCZYJgF t+LOS X-Gm-Gg: Acq92OET/HZ2RNCJ7U0CxrL/n5uIJg7pAfEbn8xq1eQY1QR8AzFgR7DjrqneqL26uDk M6bmvnQJ7qZKEB9R8kJtkQJ6+n4O2sVXsfBfbZCBtOWr5Y9Z08HDlk0x+GCfPHUPei0gwTNIfco DXMemYCHxxEQB8p4ul08SPa2gMFNjZdmgxLnin5+D2aJ96xY+ge67aHE8FLkvgyp3oIP6zgyWlJ bmI5kD1Uy7vEfra2/+UYlHZWnHKwgx3a2ylatfY2NmOnbOuzG01oniO+H0FJPvIdhjd6VaVhmGC MzyBSA+qXVHttKQt0SE0FQuPERh6/pbvvQu55sxs9Tz+4ZdJjx9vHaElwTO2zvL6dEbY7/blrxQ hrvYCXNUG2kiGw/qhh4s1AWB0eBtkbHrEjPwjvjdayGT3Tjc9bNuKWY+/cI3cMIJGy670mnZkCl GemNkygSeiId8Qon5PUL+tcamaqPc3cobtFL8nfGOtxMWm2g== X-Received: by 2002:a05:6870:9c8d:b0:42c:1b45:e8c3 with SMTP id 586e51a60fabf-434f65b2ffdmr6226731fac.33.1778197692412; Thu, 07 May 2026 16:48:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 58/60] target/arm: Implement FMMLA (FP8 to FP16) for AdvSIMD Date: Thu, 7 May 2026 18:44:11 -0500 Message-ID: <20260507234413.643512-59-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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=2001:4860:4864:20::2f; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2f.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: 1778197892870158500 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 | 26 ++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/a64.decode | 1 + 5 files changed, 34 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 0aaf08eba9..41066ec5f7 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1619,6 +1619,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 c90b276913..c40e026aea 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -839,3 +839,29 @@ void HELPER(gvec_fmmla_sb)(void *vd, void *vn, void *v= m, fp8_mul_finish(env, &ctx); 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, -1); + size_t oprsz =3D simd_oprsz(desc); + size_t nseg =3D oprsz / 16; + uint32_t *n =3D vn; + uint32_t *m =3D vm; + float16 *d =3D vd; + + for (size_t seg =3D 0; seg < nseg; seg++, d +=3D 4, n +=3D 2, m +=3D 2= ) { + float16 d0 =3D f8dotadd_h(n[0], m[0], 4, d[H4(0)], &ctx); + float16 d1 =3D f8dotadd_h(n[0], m[1], 4, d[H4(1)], &ctx); + float16 d2 =3D f8dotadd_h(n[1], m[0], 4, d[H4(2)], &ctx); + float16 d3 =3D f8dotadd_h(n[1], m[1], 4, d[H4(3)], &ctx); + + d[H4(0)] =3D d0; + d[H4(1)] =3D d1; + d[H4(2)] =3D d2; + d[H4(3)] =3D d3; + } + + fp8_mul_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 02d5e007f9..aff0f332ac 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7419,6 +7419,7 @@ static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) TRANS_FEAT(FDOT_hb_v, aa64_f8dp2, do_f8dot, a, gen_helper_gvec_fdot_hb) TRANS_FEAT(FMMLA_sb, aa64_f8mm8, do_f8dot, a, gen_helper_gvec_fmmla_sb) +TRANS_FEAT(FMMLA_hb, aa64_f8mm4, do_f8dot, a, gen_helper_gvec_fmmla_hb) =20 static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3_ptr *fn) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 6404c26540..e7f2f30abb 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1217,6 +1217,7 @@ FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ...= .. @qrrr_s FDOT_hb_v 0.00 1110 010 ..... 11111 1 ..... ..... @qrrr_h =20 FMMLA_sb 0110 1110 100 ..... 11101 1 ..... ..... @rrr_q1e0 +FMMLA_hb 0110 1110 000 ..... 11101 1 ..... ..... @rrr_q1e0 =20 ### Advanced SIMD scalar x indexed element =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197862; cv=none; d=zohomail.com; s=zohoarc; b=MsuJoEvs9o9xsigsyyJwxwAa48mtYbI2bTOD0ninL5p4IjTlgpFROUaSOao6t4nDXph42UMgewflNEAhJ7zA3xiCXwvB8MX1t+WyI0YRfI0f0/cwWy1nWS4TzJJorfY8eWGCX6/lVuSa6iOKwz/RE3+IySKmTz8dx2RIeFYsQHg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197862; 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=pnjAQy5uQrEwmgSYURuCn+Sb9FbsR2xmUbZI16rxj8g=; b=LZ0tQhvcgG37Eti3zWSX/dInvwoSKH7UdxXSk2wE3UQQllfWViCe3qj+f56uEy85/PTfJVocWfb1czghkfjf3OGoTy7cDpXxnAalkDefbBenz+L8J2kltg4bJEfwEafj7TBcMCyFW0b1nJnkEsC+qvwfrM33wjzsU4u2bNerMSo= 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 1778197862831169.01396114257864; Thu, 7 May 2026 16:51:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SC-00087E-ID; Thu, 07 May 2026 19:48: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 1wL8S2-0007Uf-Ha for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:19 -0400 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Ry-0002Bk-Ig for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:18 -0400 Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-696ad0c2c2fso837486eaf.0 for ; Thu, 07 May 2026 16:48:14 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197693; x=1778802493; 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=pnjAQy5uQrEwmgSYURuCn+Sb9FbsR2xmUbZI16rxj8g=; b=G9P1rBtGPCZdPvDSLwALLDitdM4j5trblIh5IiyLXo8CjQYogH9TsArm/rhoIlv4jN VnipEwMcREuC0SKrmS/zAg88PKSC0lbJsgitOoqdkR1zDZvAzpGMA6T788Gn0wSkEwic 9Mk/E76Vs41BL81AzXI10+asB2ycywzU+PMNXcywuQ8j6E5izS1f1vQyM/1Jdzk03Sww Mt/XIMaDXZijA2hY13eEizc5FXfmFi2Rk6VzOvdwKhLnYFYXZoPyYUQ62F6+9nuw13HN 7HMuAqbV+fsVgJv5W2+vjdktn0FsoNq0x5meaZf9mVvCeiOsdAje/QXgY1AC2BH9/pkK z4tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197693; x=1778802493; 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=pnjAQy5uQrEwmgSYURuCn+Sb9FbsR2xmUbZI16rxj8g=; b=ossBA3BFUAA6gt87IKy7b31W4YqUI1A/6nNvq+SMSGO4GHPyrwOpebHzy5Sf+JTyBr 0yuwR5se5MXkhsb4prvtHmKPWLBMFdPJfKCnLxV5VFOHU/IN1YNSbOUzt/Aefln/3jPL 5CUSCOfjVf8oreROzVzIJJH5KgMkZMZw6XoCH3JE7E5Hz0MzzkXtwtln7jHyJW3CQMlY Ue2KAHFtlP+AGVVtDNG+m1bBN9KaOH7xVoyCI1UesVet+xNFPRS81pgkjHR+Vkj6PVoL JnmgSSugQljvpLP7I28KMynHFF1fzDXR8npPk14pPTi8wWIMUzWQZlbZJYtFYrrQdki4 HhdA== X-Gm-Message-State: AOJu0YzbYF6Vrw1bFDln2IEbRe10fYaujKkmkGKrDU9HnUnC6hnyoi// UZeHtnc1l/Sz03ezPJd+BFLO7nVLkFhf7AYIjQ0XZScguffBeCpZ5CWtLlAkEJvjkwg1AkyLWzv 6sXFc X-Gm-Gg: AeBDieu1oAS6icD8yl55fndDbM7/WGbkQPKVYC4JYpi+4lfiBHxCEnS9j9KUZkVxIZY Cn39VhDUUGobb07Dkn+Aox+jx6gfe0rJopJlmj1WyduvDrkUFDG4nVxrg5YSTQtCjF2Mm1eOi+u Uvz5nh/Xw341uiqR6D2nML/W5UcHOQfgvrY6Y69qS5WYaNynqIdjTmmjFBDPMTOK4AnNCE6Jazm Znt0o33rEpjsGsxBrydtahVgxZJksq/raS7kSf0A4BRPVlI/A0ph0zp39k1r13vnrLkN+JWy+82 xY6qTtg9DCqB1dOZmgUHfwku4MAreZKL8k90SymhUNI/eu4pXvXT3ycksbjkD5ChbdRbqiEeOUh N4/0DGyTwMr6xMHo6wSs/GMn2GpT913PdYGL0Ca3sirf2quUY41V6vaKmcqTF6X0sG1alzQLUoo BkLWf93GhwzioSPixLWXjv1cHAn4WQb4+Mybl8wIb18dem3w== X-Received: by 2002:a05:6820:f032:b0:696:2cb1:9ffb with SMTP id 006d021491bc7-69998d87ca1mr5917504eaf.55.1778197693249; Thu, 07 May 2026 16:48:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 59/60] target/arm: Implement FMMLA (FP8 to FP16) for SVE Date: Thu, 7 May 2026 18:44:12 -0500 Message-ID: <20260507234413.643512-60-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::c35; envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc35.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: 1778197864865158501 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 41066ec5f7..546d29979e 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1697,6 +1697,11 @@ static inline bool isar_feature_aa64_sve2_f8mm8(cons= t ARMISARegisters *id) return isar_feature_aa64_sve2(id) && isar_feature_aa64_f8mm8(id); } =20 +static inline bool isar_feature_aa64_sve2_f8mm4(const ARMISARegisters *id) +{ + return isar_feature_aa64_sve2(id) && isar_feature_aa64_f8mm4(id); +} + static inline bool isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISARegisters *id) { diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 5bda5f6c01..2bce6a38a2 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8458,3 +8458,5 @@ static bool do_fmmla_fp8(DisasContext *s, arg_rrrr_es= z *a, =20 TRANS_FEAT_NONSTREAMING(FMMLA_sb, aa64_sve2_f8mm8, do_fmmla_fp8, a, gen_helper_gvec_fmmla_sb) +TRANS_FEAT_NONSTREAMING(FMMLA_hb, aa64_sve2_f8mm4, do_fmmla_fp8, a, + gen_helper_gvec_fmmla_hb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 6610432528..b53fe6a58f 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1809,6 +1809,7 @@ FMMLA_s 01100100 10 1 ..... 111 001 ..... ...= .. @rda_rn_rm_ex esz=3D2 FMMLA_d 01100100 11 1 ..... 111 001 ..... ..... @rda_rn_rm_ex esz= =3D3 =20 FMMLA_sb 01100100 00 1 ..... 111 000 ..... ..... @rda_rn_rm_ex esz= =3D2 +FMMLA_hb 01100100 01 1 ..... 111 000 ..... ..... @rda_rn_rm_ex esz= =3D1 =20 ### SVE2 Memory Gather Load Group =20 --=20 2.43.0 From nobody Mon May 25 20:37:28 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=1778197716; cv=none; d=zohomail.com; s=zohoarc; b=RSvR9P+Z+YPp+kWgREhclXjG7GuOFODE6Eao3IbwzRYN4SYAyE62mW1T0SHstOvNeHsgpdR9Ppse80IPRuu7xSpBPX9sF8p3BGQZ44DDwtyK+2AprO6ndMts/JTypwli5j8vZGZfjKTCOzP3TDaJTCdubIQg012RD93+UOEUP7M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778197716; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Oa3HEHnmujGMzO7KfPn4oNwAR87TmXmXSZa7aCzJKgA=; b=mznCA9zdshA132reT+aHKKRZf1euhhTaHcn0QEdy0YqoP18SfPSUoN5otfDxcjxfM9DfKJKZ2XHy5H21mH/bWGwKOQTS17zU1nztxy6dRl9ni7m7IB7OjhVmd5kx+UhTSbt273p5IL29RneXncZWPSjdHkFpsDRd7lGXmnOmDk8= 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 1778197716440245.97886860070935; Thu, 7 May 2026 16:48:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wL8SE-0008DB-Nj; Thu, 07 May 2026 19:48: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 1wL8S3-0007ZU-Le for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:19 -0400 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wL8Rz-0002CT-Nm for qemu-devel@nongnu.org; Thu, 07 May 2026 19:48:19 -0400 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7de46b8e432so1310102a34.1 for ; Thu, 07 May 2026 16:48:15 -0700 (PDT) Received: from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4355736f517sm242730fac.12.2026.05.07.16.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 16:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778197694; x=1778802494; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Oa3HEHnmujGMzO7KfPn4oNwAR87TmXmXSZa7aCzJKgA=; b=kwaxyV+pJORvpL3JNKQ62EZ9sA723+JUbrZyvk2AbSthOSpYRaSZQdDxwSIDANLQzA npDBPXYINkMenmT1YcWBpnEQJvjBWecUVfan6qMSCyNq9S+rGpl+JdM7gve8ISUg/0P5 7GpvXT907BbxvGSjeGoYT9ZcZ3C9SDVR1SbtgiXH4Mlcu04b/u78pc1uhwEotU1qZnUL MhLqJmz4+gItA1BzFI4GubiENS/+fQ3mIsjU18lME8c9iL8R1l4cF/NAOrDfLpmOP8WK IlDpQnSds+vdr+gXVeb+fJjMislgkPqg10KKxkOxUsOun8vGLnzJS3bDhDS8TTxCNwBx 1RKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778197694; x=1778802494; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Oa3HEHnmujGMzO7KfPn4oNwAR87TmXmXSZa7aCzJKgA=; b=HbEc2Tah7Cy5M7+M5SiiQ2SkTcW7LW9wmPMey4QdISzRlcA/4tpf63rObISDpPQ2b0 x/C+JKtvORUifQALabpdkAX2WY9t1RJEirOvn32xkiOrbkAbc5scTNqmbI/cfH3HUWDk N0j0W+M/X24u7QiGPMjVUknenmAL5xQ2uOMUwfHBI29XwRh6f152bKV/+4sYcCT69o97 WRpqbxaF1KorWeMs5nUtSIZV5r7OZOdJoW7pgVcZ1mM5a159Q8R+taQx+cQ4vIheO+cp S7tQBSwrwWiLc6qpl84VDtSUtX3q5ONGEnpUXdW7p5vgn9vrcp1dvL9Go8Y72rCtuf63 +s8A== X-Gm-Message-State: AOJu0YzL5xOgK9hzDvji3AfqRg2GrSF6i5UP65U7LvsYCTNRf4Yb78Ei UZxqRTpOD9g50jcqoZMBTnHM+ytVZKnZ6efWLIzWWRSWb3WRhOHC8Mey3W7M70xYCA0qn0UYEbg o6DwS X-Gm-Gg: AeBDieskMUgSHvPCgUVxpHAdtzzCBty/ihG8i4T/fZR+m+R21+tuUguUKsjNBzS0KyB rGcbJYzpCgzmxy3KxYoimjQAZYMfXElZvH9HB8KPPixBnfV/RWM1HODO43aNc4HAfl9WR8vB02p 3dT68DhiS8KlDkQsacC3vKgV2mjUb56ToSYnu++7IcSJzR9KzGFuEUTTHxkDjVQDCkg4IVkyLM+ bFc1j2B8PraCVqHwuNEJ4AESgkBWobZxsMRW+PN1CqEf1PtHuSjl/gRs6JkrGnf4agXO/0kEip0 +tWR9/Q50eGo6fJ9FAkdCrTjYeQypJTzWmjfTc6KWeUm3jc1ZM6B06RzZNliFT22dGPfvpo1BLj iCyS1FW/WM3KOiGUHo5D06AC3lF0pZBaoYfRFm20cu6EBdAOa5B5KuvBTMAuAI7Azij9FRvcKfp LrYg+RD49N04R6xd61w49CnOlaPE8ieOo7HMBwaKQhFMwh5fn6uiRU5YkR X-Received: by 2002:a05:6820:1c86:b0:694:8f3a:3f3d with SMTP id 006d021491bc7-69998cfdf79mr5542457eaf.35.1778197694192; Thu, 07 May 2026 16:48:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v4 60/60] target/arm: Enable FEAT_F8F16MM for -cpu max Date: Thu, 7 May 2026 18:44:13 -0500 Message-ID: <20260507234413.643512-61-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260507234413.643512-1-richard.henderson@linaro.org> References: <20260507234413.643512-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::32c; envelope-from=richard.henderson@linaro.org; helo=mail-ot1-x32c.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: 1778197718762154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 7a47af9f5a..492f70fc8d 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1398,6 +1398,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8MM4, 1); /* FEAT_F8F16MM */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8MM8, 1); /* FEAT_F8F32MM */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP2, 1); /* FEAT_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 83967da12d..2580246a1d 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -66,6 +66,7 @@ the following architecture extensions: - FEAT_EPAC (Enhanced pointer authentication) - FEAT_ETS2 (Enhanced Translation Synchronization) - FEAT_EVT (Enhanced Virtualization Traps) +- FEAT_F8F16MM (8-bit floating-point matrix multiply-accumulate to half-pr= ecision) - FEAT_F8F32MM (8-bit floating-point matrix multiply-accumulate to single-= precision) - FEAT_F32MM (Single-precision Matrix Multiplication) - FEAT_F64MM (Double-precision Matrix Multiplication) --=20 2.43.0