From nobody Sun Jul 26 11:26:46 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=1781755718; cv=none; d=zohomail.com; s=zohoarc; b=iY7+FRObemio4GsI8fchfxCFii53/zTS3zqvRoxPoxpmoW/NiU2906xcZ5cknkMWYIkcTWnnf8ffSs3x+JkqGx0dyxz/avGQY776BiBBvAxKMlaKzNrcIEBpil6DWCHxj0Se4vW/CArz/csSmwYxnpllXa7QOGJVfQf9n8SG7yU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755718; 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=WpNsYyWVmO6gKZzGAp86+C2RznIhc/M7mB9FSTXEfXA=; b=k7l7QuM3LHkzasGfpYP0TgdPWcUgMayoyBXy+nCKJ5sqdeFfg0WZsw1eTnK3k+WCHVmEfyMJZ8oO5MmYXmG9bCq6eOv9+WpYSqyf46fIcO+uONQWwjzjDQHIDSrke47P40/zL/xzOmZt6P+K8Ih5rBkul77TQ2Z908/vnk7Lp6Y= 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 178175571845075.25560165046; Wed, 17 Jun 2026 21:08:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42M-0000tn-VN; Thu, 18 Jun 2026 00:07: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 1wa42H-0000r6-Iy for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:27 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42E-00044t-P4 for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:24 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-37c5b9d42efso852523a91.1 for ; Wed, 17 Jun 2026 21:07:22 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755641; x=1782360441; 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=WpNsYyWVmO6gKZzGAp86+C2RznIhc/M7mB9FSTXEfXA=; b=tw7FTZjAXZGJ9BxZkv1AvuAHnpHzgoj3rJQ7XCHYHvCmHQSHvT1P/yHreW3pb9dNm3 HDGKOTONxMDPByQfewtcRSLW1GzW7OzD6AB8pHGopRyUuouG4s63bF3n4EyOrd/254MH JtHoH6sHGf5MRWXPqeQXHjkWuUu4qLUMcDAv3DR9w8pTwmxSZCxyaQGK5HvoIfk6gCNP jKEiU8rzAXN41N1XVfp0IJLURofi7DGzRxUHoZzoi6cEoqOJuKRTd06gHfh1XOiE0SPq c6in7rllG1I1W2kmAveGdjvJ9Yu8lvVwde2xeX8flK1fMy1LmH/AGLjniOY+NlEmyaw8 2NHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755641; x=1782360441; 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=WpNsYyWVmO6gKZzGAp86+C2RznIhc/M7mB9FSTXEfXA=; b=Kh1gfI6o97O9FVqKgbb6FnJxYEXFCkeNxYwIZtYClXa83jMc+nITSBuy0Z47a5Ds2R MO4zfWKPLfejM+V+IJHOcPFHo3wkG3BtsmmciADJL16sJSTUNecQFW/yLTqqzXh97HKt 7VimqRibh2hRFANNzSESflfvbNAwMXhJMrAS+n+uG8eVtw+yqLqR9zkdbFXnI2FlLTCn r4Z8A3BjAdFzGqrcUNbAGsIlqzOVwIpc9qDl5BgcezGp/qN5mWm4azXeA92KmYQVPRWH 3PyHQ4+ls0DcJM1i/YfcoLQXgBnVwTgfNIOXCyE08DBlmgHgTioud6yav3ljT+MoukmQ YQrQ== X-Gm-Message-State: AOJu0YxApmIGWWRKrFYizhcATSSjgeesIUuopSlbpdp97WifzTE4gpuF WDf5DwDMaei5FZ3450mPteRWoIfDDgFvxZ/JigobJnnKjyKZ8uySoEDKnM2q4qz7jKvolU2CAaZ YagKD X-Gm-Gg: AfdE7ckwcw4SFtZC9AMZEqGPOQS15GZJkfHVFRQ1lAMuOVqvuLSle1TIpgh9BV3wDYu YUyUq4W2ZGirwtC70/f/at7hyslmOgaqXx+tcwxYnYquMgQvd0PnSSt4A7wPfoQqX4VbD7iazqn TSjFbP/556JxWkKCotAPcCs8Qu+8iWEWi35gQH/Uneu0lPZu8nDXLW3C4gYl37r66BRreficDHi w/ZnXEnYAlSu8U2U/JYyERTtNHsR/PcrjoSxVjwxAhxSBmDKoeUGvpmNgzAvd9M5EEX43+HCPX/ kgEW21iVEYHVYERHlZnHB+4iSyQCtKo+vOyPU9wzkOJnW7tU3sgvzgF5zln+AcwchMoZM6O2BiT YJKxV9P5R63zcBSm2GbALhccBhvupnxdzz8UiD67dCnB07AIpxyxpWsmGHvotHfgSI9XYqr3LwR uvBEfXXvE261EJQZrIBGujEt1J2kEO0arNjWVarAKABi6Zoi2pXbAeoXdMuAAz X-Received: by 2002:a17:90b:3846:b0:369:7491:7b24 with SMTP id 98e67ed59e1d1-37cdbcc985dmr1759249a91.6.1781755641231; Wed, 17 Jun 2026 21:07:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Dillon Sharlet Subject: [PATCH v2 1/8] target/arm: Enable SCTLR_EL1.EnFPM for user-only Date: Wed, 17 Jun 2026 21:07:11 -0700 Message-ID: <20260618040718.572950-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755721103158500 Content-Type: text/plain; charset="utf-8" We advertised linux-user support for FPMR without actually enabling access to the register as the kernel must do. Fixes: 2430d49a17c9 ("target/arm: Enable FEAT_FPMR for -cpu max") Reported-by: Dillon Sharlet Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 419e0b3ed4..da93f24774 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -421,6 +421,10 @@ static void arm_cpu_reset_hold(Object *obj, ResetType = type) env->cp15.mdscr_el1 |=3D 1 << 12; /* Enable FEAT_MOPS */ env->cp15.sctlr_el[1] |=3D SCTLR_MSCEN; + /* Enable FEAT_FPMR */ + if (cpu_isar_feature(aa64_fpmr, cpu)) { + env->cp15.sctlr_el[1] |=3D SCTLR_EnFPM; + } /* For Linux, GCSPR_EL0 is always readable. */ if (cpu_isar_feature(aa64_gcs, cpu)) { env->cp15.gcscr_el[0] =3D GCSCRE0_NTR; --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755748; cv=none; d=zohomail.com; s=zohoarc; b=IwyB7BCCpVRvg2beYypwMoRbHLqljVXndTtBQtydwGxkyzgzLz4qnt4GDknraNh8UIvhYzA2r/yIZ70tQ2DVsWEB5ZBs9oNX7wda+6wtOPI53kvrScLoU3ma4dqhsmur4p6KTnSdhjnU3rWYCEYQbFB3DVba29YXXa0VneRjycQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755748; 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=KJNYyxkPZZLm2j4qOnGcl3pJUfyQigIuYwn5g7Qoayk=; b=IIc0RwGB7s1WHRsJlcpfxLkbeJuEvxeZ9HXjaPfLTr8FkuvTgNtdD5I/XvxZst5Nvo/zoJlJB6VJd9YfyEM6lVL1yEy64ZNKE+JwRmm+mk7QoF/ckL2yJ+UOfum+bL6pl9P50r9lXgN+XUA8RZOmZgjTbsJ6t0AOl+aPSi7JKBs= 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 1781755748917351.3730417935237; Wed, 17 Jun 2026 21:09:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42N-0000uT-GE; Thu, 18 Jun 2026 00:07: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 1wa42H-0000r7-Ji for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:27 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42F-000450-QT for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:25 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-37c6cd1ac98so390433a91.0 for ; Wed, 17 Jun 2026 21:07:23 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755642; x=1782360442; 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=KJNYyxkPZZLm2j4qOnGcl3pJUfyQigIuYwn5g7Qoayk=; b=DMQ9X44ldnmHzoouFtPp6Om/DBM3jOig/TMPZPIgyEMILA5av3O411KGJ2dfZ0cdX+ 1irOz//qALFOAJtPQH+FyA4cAe+jZfFdKogyWprECAg/VBhNzontjfov3KFCksdgoyio nxToqWK/oAtNkF4UrSof2cqCO6Af/Fm1UnIwcIVnayBSI/RIfJevKUNQh2QA5bIXG1Su IOOkUCDNyw74hqjtoXGov2x6kuebcj2A30rdia0Nna1O3yBkgcbwrHqHoMGy3HlnC0cy BR3Q67zNWHLQLaqhpBPWW87ICjlIge05lKMg31hnfTKnvxs5e6acA594F1mO9kBAqaCw 1KDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755642; x=1782360442; 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=KJNYyxkPZZLm2j4qOnGcl3pJUfyQigIuYwn5g7Qoayk=; b=ZuP7ou/GdiBUZNruBPiczAT2bVdngnRdGqX5bghTXVremJWePqABtmS2cSpizMpAOj 5pZVAichTEW4DaheWQBfJ70w0kMJKg4HYiPY+B2l0iGlUwa5te8Vg/ADuq2a2afcb6zQ 7e+1yqHTFmnK3V7+JhFxKDfNmLxcvjP7nqavPMqbxNKc56JOkm4ET9yKz6HI0e9aqvN8 h61BWkAZbQY51+GuGYUP132SVk9H2tvzolyPP8YuU8EbiqYEXkX1p8SkHGtpg0tJl9c3 VmP8vQ3iWKIla5q0pkFZR3MP3PglLCgCHAepp11bNib1uXnLqi4qhJhvdQLj6dK5phoj X3tg== X-Gm-Message-State: AOJu0YwTcrDrRgUOCtL8sA8AmKgGKKm6PlIGvt9hDxk07Xnrs+znJf61 5FQGqlv1+KxEKPVQ6IwFPYKmrhVEeVpUhieBFBGF7MECIg+4p29RFS/sAoyqHnbtCgihr9rSsfi nOZ8N X-Gm-Gg: AfdE7cl5PpT6LVsBKAeZB+kFj+AEy7SEhrWp0YeYS3eA0Q+QnAm7PmJ6Qsa+4lEZDpe J4YYNT/rXGrS6uEOUwHquuEf9glvbiU8I4LCkfR1BShBqdOD3TljQvwPs3XDs6CbXjTiHUFUCBc cnFhuB2CZaaOiM81R47NRzZ4wYyILriOut6RSXImObTZ3lkfTFVxuiLbv2wci7WwBbo3cuJRWqH w+FtVgGZulQPz3O4Y1HIfKo/rgKyT8fHMXsVdNij6dvkjcV3GKvoTgryjkRfHQw6Av4zckFz8zo mprBcctG7OuEkB688mKgdQZSEfdnymCQzq+QUGsbeYMq9n3EocC/0a+0l3DFOinRqq4lT/vOQYm wA+JaTWBQSH5GWJ/UxNuBfEzQtj/eUIOf+t5f8yaxu2Hy/1fHUuslHk/qRNmOmrlWvm6RbNOsk/ 3d6jYpyDYgATkJy0sP9DHClQsdw8jDcbmRlwL2EujSF4/9/fNQTg== X-Received: by 2002:a17:90b:584b:b0:36a:8ce7:b879 with SMTP id 98e67ed59e1d1-37c9da9a091mr5889490a91.5.1781755642267; Wed, 17 Jun 2026 21:07:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 2/8] target/arm: Implement EXPAND Date: Wed, 17 Jun 2026 21:07:12 -0700 Message-ID: <20260618040718.572950-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755750266158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/tcg/helper-sve-defs.h | 5 +++++ target/arm/tcg/sve_helper.c | 26 ++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 7 +++++++ target/arm/tcg/sve.decode | 2 ++ 4 files changed, 40 insertions(+) diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index de2254bb19..1d9066dcbb 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -3203,3 +3203,8 @@ 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) + +DEF_HELPER_FLAGS_4(sve_expand_b, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(sve_expand_h, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(sve_expand_s, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(sve_expand_d, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index a0a189eb1e..2517362189 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -3671,6 +3671,32 @@ void HELPER(sve_compact_d)(void *vd, void *vn, void = *vg, uint32_t desc) } } =20 +#define DO_EXPAND(NAME, TYPE, H) \ +void HELPER(NAME)(void *vd, void *vn, void *vg, uint32_t desc) \ +{ \ + intptr_t oprsz =3D simd_oprsz(desc); \ + ARMVectorReg tmp_n =3D *(ARMVectorReg *)vn; \ + for (intptr_t i =3D 0, j =3D 0; i < oprsz; ) { \ + uint16_t pg =3D *(uint16_t *)(vg + H1_2(i >> 3)); \ + do { \ + TYPE nn =3D 0; \ + if (pg & 1) { \ + nn =3D *(TYPE *)((void *)&tmp_n + H(j)); \ + j +=3D sizeof(TYPE); \ + } \ + *(TYPE *)(vd + H(i)) =3D nn; \ + i +=3D sizeof(TYPE); \ + pg >>=3D sizeof(TYPE); \ + } while (i & 15); \ + } \ +} + +DO_EXPAND(sve_expand_b, uint8_t, H1) +DO_EXPAND(sve_expand_h, uint16_t, H1_2) +DO_EXPAND(sve_expand_s, uint32_t, H1_4) +DO_EXPAND(sve_expand_d, uint64_t, H1_8) + +#undef DO_EXPAND /* Similar to the ARM LastActiveElement pseudocode function, except the * result is multiplied by the element size. This includes the not found * indication; e.g. not found for esz=3D3 is -8. diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 9a72e03513..57c21a13e8 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -6956,6 +6956,13 @@ static gen_helper_gvec_3 * const sqneg_fns[4] =3D { TRANS_FEAT(SQNEG_m, aa64_sme_or_sve2, gen_gvec_ool_arg_zpz, sqneg_fns[a->e= sz], a, 0) TRANS_FEAT(SQNEG_z, aa64_sme2p2_or_sve2p2, gen_gvec_ool_arg_zpz, sqneg_fns= [a->esz], a, 1) =20 +static gen_helper_gvec_3 * const expand_fns[4] =3D { + gen_helper_sve_expand_b, gen_helper_sve_expand_h, + gen_helper_sve_expand_s, gen_helper_sve_expand_d, +}; +TRANS_FEAT_STREAMING_IF(EXPAND, aa64_sme2p2_or_sve2p2, aa64_sme2p2, + gen_gvec_ool_arg_zpz, expand_fns[a->esz], a, 0) + DO_ZPZZ(SQSHL, aa64_sme_or_sve2, sve2_sqshl) DO_ZPZZ(SQRSHL, aa64_sme_or_sve2, sve2_sqrshl) DO_ZPZZ(SRSHL, aa64_sme_or_sve2, sve2_srshl) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 2795c2ec7f..5ec1d420c2 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -742,6 +742,8 @@ SPLICE 00000101 .. 101 100 100 ... ..... .....= @rdn_pg_rm # SVE2 vector splice (predicated, constructive) SPLICE_sve2 00000101 .. 101 101 100 ... ..... ..... @rd_pg_rn =20 +EXPAND 00000101 .. 110 001 100 ... ..... ..... @rd_pg_rn + ### SVE Select Vectors Group =20 # SVE select vector elements (predicated) --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755746; cv=none; d=zohomail.com; s=zohoarc; b=NN7DAOFLZQp7rPDACTfB6eE4Y3nsLuWetjfVamfHptdthXbLQlYKvz0/mQOF+/YeOtCkM6FCFQ2UnezxCIvgBPYAeTzM4zRznzZj3dygqz8pyKgOb3llwex5dokXIQnKKE/97JG0K2+4HpOSAvuLf9BIwI4RT2G/TMZ76/6LDi0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755746; 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+G/PsSFawEHy7d66EG+jTgLqZ6ndIAaOYB9EFVfxJA=; b=e8Ub9NtoNiobEm/5AwFePmWELShkk/2CuZ74O2E68MwSxAJcmft2oz/+/ofNNscJLfB9D0/Ji8nwgWpGVvLvcljMRHPguvpcEfsKeoC4y5ZIhibW9zua5Qm9wAEHCwuI1SY9QmYMGoqD1Oc4aXnAC8bQ6qjjKP3VU9Lo3Nn+PkE= 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 1781755746106268.2744154587564; Wed, 17 Jun 2026 21:09:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42O-0000vc-3s; Thu, 18 Jun 2026 00:07: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 1wa42I-0000rE-Fv for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:27 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42G-00045B-E7 for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:26 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-36bcbd7821fso138135a91.2 for ; Wed, 17 Jun 2026 21:07:24 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755643; x=1782360443; 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+G/PsSFawEHy7d66EG+jTgLqZ6ndIAaOYB9EFVfxJA=; b=Otd1RdcHWINHWSJHhTAC8LJnFt8OwkYoy/1hfAPlSym5a/yGgAjaoL6UUFLtzNcf+X 0c+8GzhUcnvHZIxSJRSQ84n76/p0EZ9RHvBsbyZwJ7Cykh75E1VTm9DiM+7xH1aBsup/ u3r7JfRPUegGeNNFBo6dLCM+qOjtMnA/zbo3LNJdf4jH+EvS/kog1KYB0K+wc40hJC+4 ie9GZE3QlEh3em1T2VVOqwDbbq7rlEa9OsxGf9Sg/8909aIpE6fL0lHzn00YulktluPp UY32e7P7flLWHVv4J+rn6BCq05lhGtJvIc9e+esZpY7zCZ+BJ/GSQYP6NSWzc7TiGb0M A25g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755643; x=1782360443; 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+G/PsSFawEHy7d66EG+jTgLqZ6ndIAaOYB9EFVfxJA=; b=llZ76mH8JMIw6N+i0V61+/nzR1B/PQ3Jjk0o+n6hPUYOq/fPuKfBb2jv/GMYgoj1qP 0zLkitGC1H2EogYa8AygWPwEA42f82e1o07iJpgDal3Zrs74GptL5TPo71WiOpJMFHUA Njzj+G30ssg5dSoh88U8rFOEsr8zngXcY1wcNdi0sgwVjqNZImdWS0kPFD6wSbw8LxjJ E9ZcrJ9DGUycIwxRLJzmb3u1dRCRZztRQIeI1HZmjj0TWPQP7sAkWzBCQCVLsk9uh48l Gg1CUV31FUuW2X1J+8Z8MAYR4XMvkKKNOyXM+2YUnVOrr1XKX8UqN8Sxc++v/CTuGM3l /xbg== X-Gm-Message-State: AOJu0Yx+wEdwVC+PtuOgOFp3yWuJRr0XmUN/1q9vvv68MZRpZwHtrjAi nM+gRQGFsSdLHrisIA+7E6wr4a6FO1LpkNtNQe9+FZ9QpMg7FifMje4/wdZV/P7zEQpdbrIvTe6 kxi1P X-Gm-Gg: AfdE7cmQsITR6quhLtPiPMteWQaq+/aiApnYn8rnLXq3NPEPd70sW8G6HHXKqhv4Q9J FAbLbpoB+JDjC38QIkVQq5mHDAJRPCzLDmVuGtbPD5zk0GNDpfB1SzHipIhcjaPn1LlrNkFQElM DSFFesxanqwjajDAllOdtsKkYQZmmuaAxGpIGKD26q6Z6vCE2fhT6f6AbrZI+UJGPhZiZz2t7U1 Qm3eNc8z1DPqkUxc9+kDxKX1Q0U96SZJfPpfWmHKXN9kUAZpCgsLNbgFeHWkORajdrDuOueTIMv f/iJmxykK87fb5Zd4yRvVFN+cgH2LJWFE3t9ZPCR+PunLEilmVvE93R2a/z+g44Vjre4oVm3fX5 qXqtEGlGS9DdWwY9M5tviAO/3mxzReKTmZPSlXtDjXzkFFYDSDj1L93OLFTWELSFc7S8j36FSeH CbDJ5jX5S2ykx5kRW9/o0hQIen5sYzvVFu+SFo3PYLxD8VnZntmg== X-Received: by 2002:a17:90a:c2cc:b0:35b:9894:f6f9 with SMTP id 98e67ed59e1d1-37c9e9d41a7mr5837359a91.18.1781755643100; Wed, 17 Jun 2026 21:07:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 3/8] target/arm: Generalize sve_compact_[sd] Date: Wed, 17 Jun 2026 21:07:13 -0700 Message-ID: <20260618040718.572950-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755748220158500 Content-Type: text/plain; charset="utf-8" Implement with a DO_COMPACT macro and general purpose predicate handling. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/sve_helper.c | 51 +++++++++++++++---------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 2517362189..9b45b0d331 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -3637,39 +3637,30 @@ DO_TRN(sve2_trn_q, Int128, ) #undef DO_UZP #undef DO_TRN =20 -void HELPER(sve_compact_s)(void *vd, void *vn, void *vg, uint32_t desc) -{ - intptr_t i, j, opr_sz =3D simd_oprsz(desc) / 4; - uint32_t *d =3D vd, *n =3D vn; - uint8_t *pg =3D vg; - - for (i =3D j =3D 0; i < opr_sz; i++) { - if (pg[H1(i / 2)] & (i & 1 ? 0x10 : 0x01)) { - d[H4(j)] =3D n[H4(i)]; - j++; - } - } - for (; j < opr_sz; j++) { - d[H4(j)] =3D 0; - } +#define DO_COMPACT(NAME, TYPE, H) \ +void HELPER(NAME)(void *vd, void *vn, void *vg, uint32_t desc) \ +{ \ + intptr_t j =3D 0, oprsz =3D simd_oprsz(desc); \ + for (intptr_t i =3D 0; i < oprsz; ) { \ + uint16_t pg =3D *(uint16_t *)(vg + H1_2(i >> 3)); \ + do { \ + if (pg & 1) { \ + *(TYPE *)(vd + H(j)) =3D *(TYPE *)(vn + H(i)); \ + j +=3D sizeof(TYPE); \ + } \ + i +=3D sizeof(TYPE); \ + pg >>=3D sizeof(TYPE); \ + } while (i & 15); \ + } \ + for (; j < oprsz; j +=3D sizeof(TYPE)) { \ + *(TYPE *)(vd + H(j)) =3D 0; \ + } \ } =20 -void HELPER(sve_compact_d)(void *vd, void *vn, void *vg, uint32_t desc) -{ - intptr_t i, j, opr_sz =3D simd_oprsz(desc) / 8; - uint64_t *d =3D vd, *n =3D vn; - uint8_t *pg =3D vg; +DO_COMPACT(sve_compact_s, uint32_t, H1_4) +DO_COMPACT(sve_compact_d, uint64_t, H1_8) =20 - for (i =3D j =3D 0; i < opr_sz; i++) { - if (pg[H1(i)] & 1) { - d[j] =3D n[i]; - j++; - } - } - for (; j < opr_sz; j++) { - d[j] =3D 0; - } -} +#undef DO_COMPACT =20 #define DO_EXPAND(NAME, TYPE, H) \ void HELPER(NAME)(void *vd, void *vn, void *vg, uint32_t desc) \ --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755792; cv=none; d=zohomail.com; s=zohoarc; b=CvMPec0Dn9kAPSM8rEjjkr/nUo3GixeoDeRVr/gfyvKXFzj86lG8zWZEOhutulrnRgC1WfoTfUqg1AYS/J2msdwZSjvUvdmmUn16EDekLfQWV9UzvU3mR3tJGPLZGILdJCsPPW7Y64KMF+urBMAPADbD2qD+DiXwSDIbT1BnEzk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755792; 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=iKE+K4ONkFnKt67fOnUjNENJCavXPLh6g/eMW2WZm30=; b=UPBH5BkjVUTPydlooTQ8luLUeRqcDSmXRExuhHdkHsTTVKZVWroB3QPvgJ54qUc7csBUQmvix8g6hRXnE8xVghC05gGXu7FIKEL+WJ+StGuKzHgVxrSIn2hrM2Ega2PyaR9lQlqvn4nN40hsrwoCRVlclErlxeM0YjQEWHcr+Rs= 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 1781755792199244.92327519447144; Wed, 17 Jun 2026 21:09:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42N-0000uI-BX; Thu, 18 Jun 2026 00:07: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 1wa42J-0000rz-GH for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:29 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42H-00045W-C0 for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:26 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-37c6cd1ac98so390442a91.0 for ; Wed, 17 Jun 2026 21:07:24 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755644; x=1782360444; 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=iKE+K4ONkFnKt67fOnUjNENJCavXPLh6g/eMW2WZm30=; b=rvrNyZ74pw9hCYHQVk52dO/T7OlU4wOEuNHyL05vJ6IoLay8GvTAbuwjUmfAsBYluS /XcERJIu6MD4hBs+GtjA1zIIL4/NUKoeBcQsOar209Uu3BogLvuEb9CWtAtnnNFuBScF JNODionqa3l+r8doe+D3WG5A7XBLkn540wdXHZg7TmZa3+B/t+5ZbfzqCUDk+YjPtMS6 v3qV3+LnqpxqIx2nG7eHKezNeRTbacqgzF5JyWEzLzfGk36bezeUNA0CyZuAivZ62a6u 2n1l8VnCm6h8UklIqOGEgDb1LNhjmlRIw3ASS1f0cZxajmPhdmjz9h0fKlp7DFOo7mQx S0Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755644; x=1782360444; 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=iKE+K4ONkFnKt67fOnUjNENJCavXPLh6g/eMW2WZm30=; b=fHJAdhv7jUh+RWU0Aj2tipi9LhfEIZYPOee+fML4pqBrYGhsLD/TNUjg64YCTBRT5X S8w8R4j84V3QWc4NoGXx0RKDkukYLIr9di0R6PG4QY+p8vBQCGnYLReUEu6vWpfGx1oI IC3gJ36CeT0c8oDF7PprjipvWEc4Eb8//sP/IJaa0ka2PbHrLuHZtgJqkmeqrRBTz2zw Zzhe7HMTAksAlO6wwG6PjewKrDALXcI7NaBwXy4VuDVZihHECDJkiDVCFr5vTqd5434a 5PSis3K/TfERE/9ldYO8rUW0Yxv+RbLoA4HkVQSqavK5Z7n5e/6I2CLREK0NW11trmlN tucQ== X-Gm-Message-State: AOJu0Yy1zccDfUp4eIi3asQQ6Rvpn7gvtIFUSvZknKiAQWwv0795s9jP q5BT/kfRBqQktri9pMhVlStT0gUAa1cNIudt4nk0EJSOTHEBXFaaVrgTqtnsOvBqMYPsbcvG+zn 2o3BC X-Gm-Gg: AfdE7cm2r29B25VyHCv6WlW++YLlR3i5/jTBl1FfF299GqA2a0oqVej03Hgi6vJlLXW BojOCMUoWW5ZUqsMiZF5VvmUlGb4v3/B333LccBY1HiXoWUyi9I1ocqMlniM8i09jg22R2gC46L 3E3LnYJKVcWKn3RNHxyRNmNTUxV0SdJX0WY6hycwu1aoLWXaCPDiJsHIDe246gzWFFstrjMzjpU zjYLMzaFRfrW4NvuwAuqpDIETc9mtTjZjbCXV46JkcGoDeJ4VTa6HFLm3LEY33UP5xLWV8tgseF g6y5n1rbZS3C4mSOfK0ZFfjv5rzHHZd9amgjwOEnp94CmnNXE7XbcolVMVE+yj8w05OMoaL5i6p CmxfU8ReT8xcfpCbGD6Mfge5/UUbebrECMPov7V9WAsiKGTBbb3TVQ8KhIIduDCHepnJSqlmU6D OKYs9x64A2jBf+pz3KibJZwTcWTiUgJn5P80EkqGZIjqodhAWMjg== X-Received: by 2002:a17:90a:ec87:b0:36d:ae6a:22f0 with SMTP id 98e67ed59e1d1-37c9e9c8c71mr5971052a91.14.1781755644000; Wed, 17 Jun 2026 21:07:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 4/8] target/arm: Implement COMPACT for byte/halfword Date: Wed, 17 Jun 2026 21:07:14 -0700 Message-ID: <20260618040718.572950-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755792439158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/tcg/helper-sve-defs.h | 2 ++ target/arm/tcg/sve_helper.c | 2 ++ target/arm/tcg/translate-sve.c | 22 +++++++++++++++++----- target/arm/tcg/sve.decode | 1 - 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index 1d9066dcbb..b64a0faa19 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -733,6 +733,8 @@ DEF_HELPER_FLAGS_4(sve_trn_s, TCG_CALL_NO_RWG, void, pt= r, ptr, ptr, i32) DEF_HELPER_FLAGS_4(sve_trn_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(sve2_trn_q, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) =20 +DEF_HELPER_FLAGS_4(sve_compact_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i3= 2) +DEF_HELPER_FLAGS_4(sve_compact_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i3= 2) DEF_HELPER_FLAGS_4(sve_compact_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i3= 2) DEF_HELPER_FLAGS_4(sve_compact_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i3= 2) =20 diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 9b45b0d331..bd8fa2da7e 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -3657,6 +3657,8 @@ void HELPER(NAME)(void *vd, void *vn, void *vg, uint3= 2_t desc) \ } \ } =20 +DO_COMPACT(sve_compact_b, uint8_t, H1) +DO_COMPACT(sve_compact_h, uint16_t, H1_2) DO_COMPACT(sve_compact_s, uint32_t, H1_4) DO_COMPACT(sve_compact_d, uint64_t, H1_8) =20 diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 57c21a13e8..01199dbd78 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -2769,11 +2769,23 @@ TRANS_FEAT_NONSTREAMING(TRN2_q, aa64_sve_f64mm, do_= interleave_q, *** SVE Permute Vector - Predicated Group */ =20 -static gen_helper_gvec_3 * const compact_fns[4] =3D { - NULL, NULL, gen_helper_sve_compact_s, gen_helper_sve_compact_d -}; -TRANS_FEAT_NONSTREAMING(COMPACT, aa64_sve, gen_gvec_ool_arg_zpz, - compact_fns[a->esz], a, 0) +static bool trans_COMPACT(DisasContext *s, arg_COMPACT *a) +{ + static gen_helper_gvec_3 * const fns[4] =3D { + gen_helper_sve_compact_b, gen_helper_sve_compact_h, + gen_helper_sve_compact_s, gen_helper_sve_compact_d + }; + + if (!dc_isar_feature(aa64_sme2p2, s)) { + if (!(a->esz >=3D MO_32 + ? dc_isar_feature(aa64_sve, s) + : dc_isar_feature(aa64_sve2p2, s))) { + return false; + } + s->is_nonstreaming =3D true; + } + return gen_gvec_ool_arg_zpz(s, fns[a->esz], a, 0); +} =20 /* Call the helper that computes the ARM LastActiveElement pseudocode * function, scaled by the element size. This includes the not found diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 5ec1d420c2..a3eefd60e5 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -693,7 +693,6 @@ TBXQ 00000101 .. 1 ..... 001 101 ..... .....= @rd_rn_rm ### SVE Permute - Predicated Group =20 # SVE compress active elements -# Note esz >=3D 2 COMPACT 00000101 .. 100001 100 ... ..... ..... @rd_pg_rn =20 # SVE conditionally broadcast element to vector --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755776; cv=none; d=zohomail.com; s=zohoarc; b=hP2+fv4kd7J797jTo2L8lmrFTwSZa3Qvr60uFlriVlrlL1OWN8025hxn2ZWpUFP+G170SFJoTnr12NavW0wSRpEWjyssaLGu172uJBccIirsz24M0Q7y3obMLYtLB8S0XPPw4EfyiAP/nd8o49fDGMv6GcqGQaPORYYGNO+fqJw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755776; 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=0IzYhfBiv4AFus9PqvoAgcoWpyF7SxwPSwNNybn7Crw=; b=bstnBfJq5Qx5NCHm+ZAbdGA5bDVgOhf8pqa+OkUBdB6IxHtjJnUQbwWpfpniOFwBPgDQtMjJMcKvnSd8XPMID7+6vDDXD6k+epwp69gGOqMSJ0GPnsWWpgIcD/4Ua8TB52j1KqxX+N2I2M+wXiOeD2g4hj1EozHMe48TBO/Ymhg= 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 1781755776076452.0550113218719; Wed, 17 Jun 2026 21:09:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42R-0000zn-KP; Thu, 18 Jun 2026 00:07:35 -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 1wa42L-0000sD-GR for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:29 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42I-00045h-8r for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:27 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-36ba706ab46so305805a91.1 for ; Wed, 17 Jun 2026 21:07:25 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755645; x=1782360445; 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=0IzYhfBiv4AFus9PqvoAgcoWpyF7SxwPSwNNybn7Crw=; b=F67YbCFM4igOBQVYK8W2h/4CRvF1yfd8vBqveRKboK+hjzWiF9SbNRlxPntpjJJoBR jmMLfjtTyQivznaRy2R4yYE4UmhabA5ClZubT9B0b5IKZf+gs4LsQeMYvAo6MJgxZkjd m2XbHfhwzMnUPIfcVoIC8SvSP8fkeHkI1Gbk0KeX75+9zuyO6nM1m9tj5/iTqRruoxED bY+Op9rl5YJlr8FY2BYYtlEQdrcEKTJDU5+CRbnVyyUKA7PhkpXfQ8x2spoEph68bx2S ZocnRR0PRgLeuq8kbbLJDckip/zS9wm7EfmUfO7gljqgLS3yqRpXQiCSJoWc0PodA0WY 2vpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755645; x=1782360445; 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=0IzYhfBiv4AFus9PqvoAgcoWpyF7SxwPSwNNybn7Crw=; b=ldTH1m6LYmbwYpo+d5PHqhPL6JxLo5evh4k8RHmPag9Xv4bAOsBQNPVB/xLcrT3ho9 EgcJfo9lqsy0GWlfvTVHo/msqb867wAnxqVAkhqlDlzvrxZfzvOZVNSaIjLCS5kDqtxX Hl81rDpEVLEyDXEd4BZYw3vhO87Ns8MzQmUUhv35p89k35HtDqKDckCsxmHDPI7ce0DP nVAgJdPMkGcnSAkdJB21NnK5CU5tqmS7C7vnREMTrVbX98nSoUwDtOGubd/M6PXQKnpg R9JS48HBslPboFhN8HqOLBKN2dz3No9jcqfsLOlSDuINj7Yzsg1NM0GLdUUuEq0xC3AG M3jw== X-Gm-Message-State: AOJu0YwFDhD1SSWYlqw1BYtq68fAmxmYD6qT6us5+7k2Bk6ybDfZsyG1 FvPTCEtDTBBOElMjDWX24j2QQB1zzTgzF2DoMMtMNldbHa3c33Ba1uzWXQ4g1m68Xy6rkB9T84I /wMAT X-Gm-Gg: AfdE7cnx85ufZs9h+svEi06FfeFFJ82UThsBR4LvxmQiEWu6THYQrRiCEE+sr3Wro5k 50ehrflfrVcO2D+5iT7lxGoHLTGrEO+Lt+N0K0DA3Nr3Q31V7kGpiiUlS9AGgfNy5QbG3l3pfKr +uyGgsQunvjHEwO5W2lCAVPC3Lomq/dBSjzdUvziom1ssAyo7FuM22Rii7jLe5sTIDJAtuy/AM+ IQl0q434cvLirqwDtrLKb7BdlMj/60Mrp219EtZB7IhYKDWgkKgIw4kb+EYkiZRL5Ls0rRur1Z2 aunaX8p7vpKBexkDhsxIWU3blRaxVlvR2hMGjVfl5jG01i/s4f7vyuOgOmdlerroTRdm2LtSe1k PF7PzVHfYIfG8FeSb5z1e6vUvf3OkQo/MAMeKTn9B1UYFGl57rl2q67nx0u/6IReNOj4opaO09/ 8FQZ22syFBdsxJxzMcWtd5hfRgGavbN0aAsRbUlaX1Ek+6j0/QVA== X-Received: by 2002:a17:90b:4f:b0:36b:93f7:a903 with SMTP id 98e67ed59e1d1-37c936a98b5mr6816629a91.18.1781755644686; Wed, 17 Jun 2026 21:07:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 5/8] target/arm: Implement FIRSTP, LASTP Date: Wed, 17 Jun 2026 21:07:15 -0700 Message-ID: <20260618040718.572950-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755776488158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/helper-sve-defs.h | 3 ++ target/arm/tcg/sve_helper.c | 30 +++++++++++++++++ target/arm/tcg/translate-sve.c | 56 ++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 3 ++ 4 files changed, 92 insertions(+) diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index b64a0faa19..19bd936f6e 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -961,6 +961,9 @@ DEF_HELPER_FLAGS_4(sve_brkns, TCG_CALL_NO_RWG, i32, ptr= , ptr, ptr, i32) DEF_HELPER_FLAGS_3(sve_cntp, TCG_CALL_NO_RWG, i64, ptr, ptr, i32) DEF_HELPER_FLAGS_2(sve2p1_cntp_c, TCG_CALL_NO_RWG_SE, i64, i32, i32) =20 +DEF_HELPER_FLAGS_3(sve_firstp, TCG_CALL_NO_RWG_SE, i64, ptr, ptr, i32) +DEF_HELPER_FLAGS_3(sve_lastp, TCG_CALL_NO_RWG_SE, i64, ptr, ptr, i32) + DEF_HELPER_FLAGS_3(sve_whilel, TCG_CALL_NO_RWG, i32, ptr, i32, i32) DEF_HELPER_FLAGS_3(sve_whileg, TCG_CALL_NO_RWG, i32, ptr, i32, i32) =20 diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index bd8fa2da7e..b2875a559b 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -4328,6 +4328,36 @@ uint64_t HELPER(sve2p1_cntp_c)(uint32_t png, uint32_= t desc) return count >> p.lg2_stride; } =20 +uint64_t HELPER(sve_firstp)(void *vn, void *vg, uint32_t pred_desc) +{ + intptr_t words =3D DIV_ROUND_UP(FIELD_EX32(pred_desc, PREDDESC, OPRSZ)= , 8); + intptr_t esz =3D FIELD_EX32(pred_desc, PREDDESC, ESZ); + uint64_t *n =3D vn, *g =3D vg, mask =3D pred_esz_masks[esz]; + + for (intptr_t i =3D 0; i < words; ++i) { + uint64_t t =3D n[i] & g[i] & mask; + if (t) { + return (i * 64 + ctz64(t)) >> esz; + } + } + return -1; +} + +uint64_t HELPER(sve_lastp)(void *vn, void *vg, uint32_t pred_desc) +{ + intptr_t words =3D DIV_ROUND_UP(FIELD_EX32(pred_desc, PREDDESC, OPRSZ)= , 8); + intptr_t esz =3D FIELD_EX32(pred_desc, PREDDESC, ESZ); + uint64_t *n =3D vn, *g =3D vg, mask =3D pred_esz_masks[esz]; + + for (intptr_t i =3D words - 1; i >=3D 0; --i) { + uint64_t t =3D n[i] & g[i] & mask; + if (t) { + return (i * 64 + (63 - clz64(t))) >> esz; + } + } + return -1; +} + /* C.f. Arm pseudocode EncodePredCount */ static uint64_t encode_pred_count(uint32_t elements, uint32_t count, uint32_t esz, bool invert) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 01199dbd78..63f64796e5 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -3481,6 +3481,62 @@ static bool trans_SINCDECP_z(DisasContext *s, arg_in= cdec2_pred *a) return true; } =20 +static bool do_firstp_lastp(DisasContext *s, arg_rpr_esz *a, bool firstp) +{ + if (sve_access_check(s)) { + unsigned psz =3D pred_full_reg_size(s); + TCGv_i64 v =3D cpu_reg(s, a->rd); + + if (psz <=3D 8) { + uint64_t psz_mask; + + tcg_gen_ld_i64(v, tcg_env, pred_full_reg_offset(s, a->rn)); + if (a->rn !=3D a->pg) { + TCGv_i64 g =3D tcg_temp_new_i64(); + tcg_gen_ld_i64(g, tcg_env, pred_full_reg_offset(s, a->pg)); + tcg_gen_and_i64(v, v, g); + } + + /* + * Reduce the pred_esz_masks value simply to reduce the + * size of the code generated here. + */ + psz_mask =3D MAKE_64BIT_MASK(0, psz * 8); + tcg_gen_andi_i64(v, v, pred_esz_masks[a->esz] & psz_mask); + + if (firstp) { + tcg_gen_ctzi_i64(v, v, -1); + } else { + tcg_gen_clzi_i64(v, v, 64); + tcg_gen_subfi_i64(v, 63, v); + } + tcg_gen_sari_i64(v, v, a->esz); + } else { + TCGv_ptr t_pn =3D tcg_temp_new_ptr(); + TCGv_ptr t_pg =3D tcg_temp_new_ptr(); + unsigned desc =3D 0; + TCGv_i32 t_desc; + + desc =3D FIELD_DP32(desc, PREDDESC, OPRSZ, psz); + desc =3D FIELD_DP32(desc, PREDDESC, ESZ, a->esz); + + tcg_gen_addi_ptr(t_pn, tcg_env, pred_full_reg_offset(s, a->rn)= ); + tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, a->pg)= ); + t_desc =3D tcg_constant_i32(desc); + + if (firstp) { + gen_helper_sve_firstp(v, t_pn, t_pg, t_desc); + } else { + gen_helper_sve_lastp(v, t_pn, t_pg, t_desc); + } + } + } + return true; +} + +TRANS_FEAT(FIRSTP, aa64_sme2p2_or_sve2p2, do_firstp_lastp, a, true) +TRANS_FEAT(LASTP, aa64_sme2p2_or_sve2p2, do_firstp_lastp, a, false) + /* *** SVE Integer Compare Scalars Group */ diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index a3eefd60e5..bdc2b7f0c0 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -852,6 +852,9 @@ BRKN 00100101 0. 01100001 .... 0 .... 0 ....= @pd_pg_pn_s CNTP 00100101 .. 100 000 10 .... 0 .... ..... @rd_pg4_pn CNTP_c 00100101 esz:2 100 000 10 000 vl:1 1 rn:4 rd:5 =20 +FIRSTP 00100101 .. 100 001 10 .... 0 .... ..... @rd_pg4_pn +LASTP 00100101 .. 100 010 10 .... 0 .... ..... @rd_pg4_pn + # SVE inc/dec register by predicate count INCDECP_r 00100101 .. 10110 d:1 10001 00 .... ..... @incdec_pred= u=3D1 =20 --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755788; cv=none; d=zohomail.com; s=zohoarc; b=PwAduQ2nFk9k17Wez33EHdB+Dkl61zaPedkafQWPdv0KsYN538FslwG0RYudy6GpgEty1PSe6O0Nl7h0GfqcTpWCLDVTZZW0ndZwpvprlseLdpuayeVJ0KvQWKSIi0uqzLEizJNO5s2wnNgxTkthc/1rCQWD9hYW9kOP4oRE6UQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755788; 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=Y7eGpGNVw0VKbFAFjy1dhp8kGk5UBS8foO5qXpZBTgI=; b=HfZ6RaZl/ONNWRhfBKL6ctOTVprfouj9oyDahyQlSveRcwzxWkBW9JxdBWEMeZsO2VaLJX9A5Hdfs9ogBe01W0s5cvterl51AKf04tjuhnnVRcardhUq1A9vmxNbsbFvE+l0pA7v2IMwmiWnotUH6vi4D4Y1bCq08d3Adz5mhoI= 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 1781755788948555.7392039154955; Wed, 17 Jun 2026 21:09:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42R-0000zo-LI; Thu, 18 Jun 2026 00:07:35 -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 1wa42L-0000sF-Gr for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:29 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42J-000469-7p for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:28 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-36ba285e98bso529689a91.2 for ; Wed, 17 Jun 2026 21:07:26 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755645; x=1782360445; 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=Y7eGpGNVw0VKbFAFjy1dhp8kGk5UBS8foO5qXpZBTgI=; b=mX+MPPSq50X4WzlV5VAAZvgfj8Wry7Hw/OuAulQxgMbcfpO97/nHzB1xvIhP/UEaPY BTJS78sH7rBtsh6AAIjHqGENHkp+seCZkEF7vKnoE6o3CmrSrfpaKjsEo32iAY5643Uw 9aTFNE0B0yVaF9iR9xLh+B6Ajikt0EASnAm1F/MDinQJx7CwMf3vzCbU9SJDUjoGFQ4Z WvWLdzsROvpLuYASW1nGCx++t+xIEQO9rW89RXJhJyCQZ8A3qVYc9B8CZvO9RO15W6RH yMBLe8fKM9pmSjw4chHdsI4fZn33Zpdco4RdpYgLdmGvmBQcZmPx2UoWwhtem6WAtGTQ bRyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755645; x=1782360445; 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=Y7eGpGNVw0VKbFAFjy1dhp8kGk5UBS8foO5qXpZBTgI=; b=lLL7/x8PNuePQZZSWJhyqE0M+QUsn/SGdCDAuTizn443RBSv5X71brlBjT47ZlY8Hj fw0kQJ8SnALcUtzkcka52WpsLVjsN9F3iEWTbO+eEqHD/rdwfG2j4JbvoLoBmxGq6Uq7 BxX5IO7djbJ6wohT/ry4JmI20QhE8192mP8Hx4pQ76NDY0ObHsqAitXVVe/Tm5VJPT24 6nSH4Rs1D10ukw0Ag4mDIUGTonV6gSYfhp9v9tvl8bGttngxDC5FAKW4rUUpxAhPDIiT Lt7rfV/54ENHkAtyh9L0IjqdIlQi+xx1SRAVLlQuksc9sO1J5Ta8p1BX1bHMXOWTia4r gccQ== X-Gm-Message-State: AOJu0Ywno6lAoKP/O6NXQ/l8P1Eo6M0I9+MMTqhL9fTzaCwuCt5al0AE Cx3w+T8fg1qlVWKRYTF94qVKCfHlnpxuAClQ2bemmWxd2k4qfDOKhosL90UURBGAECsNXc268kl OxssP X-Gm-Gg: AfdE7clkClpDBvYt0ZATAfFodz68/h7loTSAAxBOs5pZ2CtuC3YkVVkPg9LpiS+ypwh AC6hFL9cgpuwoSzJyaS2g6Km6aTL2xSwePuBu874zcYmjnA28S1jW2Tm4lTzCuD/nmjJRQPUo+Z c/Ga4f2GTLr+/rX2drXycPhv51cNI/wQbTQTeKWIDGl5d96TBuURU/g94rj/cTHwRZGTN1/uQKx QJs+v6LoSf8EbNiK6KKHOkJE1ordN48bDvkWCP1s+JHmHl7O1pbJkszp166s+4a3i+Qf7k121Zn xtDoD7NIHZQK+1ySddowREwjrSZ6lCdFA4Hyqtq5dfdfST/0MKVNnzqW3CXAEKJZFnkKkRBYo2w fYI/SYilE6hvsPW7IFE5Z/Nru17QMwXsRx7y0Vfzdwg3RqkJCVatIXm9/fknrqdG6tdMLZlS07n CWCBttZG4u+7wPiqdv5ayNOjX+bwp5NbMYWpwuxCUnLcxaar2nSC5tjmVEMZ9U X-Received: by 2002:a17:90b:1b4d:b0:36a:fcf5:64bd with SMTP id 98e67ed59e1d1-37c9da99d43mr7425061a91.2.1781755645380; Wed, 17 Jun 2026 21:07:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 6/8] target/arm: Rename isar_feature_aa64_sve_aes Date: Wed, 17 Jun 2026 21:07:16 -0700 Message-ID: <20260618040718.572950-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755790723158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_aes to match the feature name: FEAT_SVE_AES. Suggested-by: Peter Maydell Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- bsd-user/aarch64/target_arch_elf.h | 2 +- target/arm/cpu-features.h | 2 +- linux-user/aarch64/elfload.c | 2 +- target/arm/tcg/translate-sve.c | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bsd-user/aarch64/target_arch_elf.h b/bsd-user/aarch64/target_a= rch_elf.h index 5ea5232a57..2fb7dcd778 100644 --- a/bsd-user/aarch64/target_arch_elf.h +++ b/bsd-user/aarch64/target_arch_elf.h @@ -126,7 +126,7 @@ static uint32_t get_elf_hwcap2(void) =20 GET_FEATURE_ID(aa64_dcpodp, ARM_HWCAP2_A64_DCPODP); GET_FEATURE_ID(aa64_sve2, ARM_HWCAP2_A64_SVE2); - GET_FEATURE_ID(aa64_sve2_aes, ARM_HWCAP2_A64_SVEAES); + GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve2_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve2_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index a80b251589..af843b32d3 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1524,7 +1524,7 @@ static inline bool isar_feature_aa64_sve2p2(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, SVEVER) >=3D 3; } =20 -static inline bool isar_feature_aa64_sve2_aes(const ARMISARegisters *id) +static inline bool isar_feature_aa64_sve_aes(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, AES) !=3D 0; } diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 4887a3a7b7..3479e61a12 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -184,7 +184,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) =20 GET_FEATURE_ID(aa64_dcpodp, ARM_HWCAP2_A64_DCPODP); GET_FEATURE_ID(aa64_sve2, ARM_HWCAP2_A64_SVE2); - GET_FEATURE_ID(aa64_sve2_aes, ARM_HWCAP2_A64_SVEAES); + GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve2_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve2_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 63f64796e5..9f0f0e0e12 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8174,14 +8174,14 @@ TRANS_FEAT(SDOT_zzzz_2s, aa64_sme2_or_sve2p1, gen_g= vec_ool_arg_zzzz, TRANS_FEAT(UDOT_zzzz_2s, aa64_sme2_or_sve2p1, gen_gvec_ool_arg_zzzz, gen_helper_gvec_udot_2h, a, 0) =20 -TRANS_FEAT_NONSTREAMING(AESMC, aa64_sve2_aes, gen_gvec_ool_zz, +TRANS_FEAT_NONSTREAMING(AESMC, aa64_sve_aes, gen_gvec_ool_zz, gen_helper_crypto_aesmc, a->rd, a->rd, 0) -TRANS_FEAT_NONSTREAMING(AESIMC, aa64_sve2_aes, gen_gvec_ool_zz, +TRANS_FEAT_NONSTREAMING(AESIMC, aa64_sve_aes, gen_gvec_ool_zz, gen_helper_crypto_aesimc, a->rd, a->rd, 0) =20 -TRANS_FEAT_NONSTREAMING(AESE, aa64_sve2_aes, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(AESE, aa64_sve_aes, gen_gvec_ool_arg_zzz, gen_helper_crypto_aese, a, 0) -TRANS_FEAT_NONSTREAMING(AESD, aa64_sve2_aes, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(AESD, aa64_sve_aes, gen_gvec_ool_arg_zzz, gen_helper_crypto_aesd, a, 0) =20 TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755778; cv=none; d=zohomail.com; s=zohoarc; b=CtsaOFvnk66CQ9Js316FEFJBxSnPf7UsX3frTPxaV9GNsUW3+HesHgd8LKESfVd5wNLDbsGDXQxQtkH9j2VdJ7jJc4D02hUvA9qaQSqVWuVLNwPSZDZnp5KPu3T0K+2ZaLk54iaON6v83RvnYqmWC7CHXqGTU2+vTZLZVYzEotk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755778; 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=WlMPIxsa5BxEqoKtTsWOidd9gQ57GiiLIsARiGDhvZk=; b=Qogxc1HRHAatM6n43VGNK4udonZwGDqXurL185dT+8Ci94tdAV2woivoe0dff6r36vd6wTJKnJ01l/0nfyduoyKqvCkKoaNY0+stWv58MqvtTEoiMk7qu5Hkl5g093xaZgl4L3tQL+3MB1t9LQwKwy5+2SjZ8ButuYkcl/iyBns= 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 1781755778353802.7995921672297; Wed, 17 Jun 2026 21:09:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42Q-0000yP-4e; Thu, 18 Jun 2026 00:07: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 1wa42N-0000u0-4h for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:31 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42L-00046U-7x for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:30 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-36d98c9b596so209500a91.3 for ; Wed, 17 Jun 2026 21:07:27 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755646; x=1782360446; 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=WlMPIxsa5BxEqoKtTsWOidd9gQ57GiiLIsARiGDhvZk=; b=oXROiLEIleFco6weVp8Q5rfSf/MJi55MBH6llZAzzo0qMPj+wRSt+LFui0GoATl+yo +E3veIzDRzgU/5O15ukoRrx2uHYPFG0qXtAWx5Z2Si5+h+ZpwjVxDwYql8vb2IHwFL90 gzRJWCBSmE4Mfk9b00NYL37jRirUmy1T0rclNk+hA0nXNKb7Zv4t8hlXWTTAYVgu78c5 t4wzX9TmiFojBU184kV0ZPwmQE1Tj4faY2xHfKhqLkwqZfjj9XyI9u6E0bWzTrbl2S/8 9UXabMvQ4VclowWE5maFZyCua38XxjZEe+xGqlt0usyOAf2dYoqulvVp2Rxq/G2eUmll lVqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755646; x=1782360446; 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=WlMPIxsa5BxEqoKtTsWOidd9gQ57GiiLIsARiGDhvZk=; b=iW/VUrsNxRnsiWRPBpxkvvbNj0NQa0gngIuEUYBkpUBXoR7OTJc4PWARDGd0IDDZ/0 5cT4a9MAjOMgHdHLa6ltJZqUk7OG0fe/ilYFsoGEIKE/86U2eN8wtBQuksW+wDHXFnM1 Ic7gED0prJfBrbcSDoZj+7LsZZgDeLsu2KklEdeAwJNiC4s+sgaTgXHTkc5v/lrt977C yd5rLfFXQbYPQqa7VckxLloFzlrz0gZ1/sAikGklsjcV/E+CPLxz5i7fgn8THum2HDx/ aAgk6cBBdIyxpJm/ESX1ZebywgeZJjpNEUWv50Q3h/Vu6u6giombeDvYR1T2Kin18iSh bxgw== X-Gm-Message-State: AOJu0YyBnq9wzP4sFNLk/LpsKdLCx0pIWlLSqQ0/tQwODrizlIT0vlmb /Mgj2tYp44zzLwD9SEVxCiBBNgxhMj4j+MqDgeoHip4aIE9NMxY8EqAXIx3srXMTkLw2dDhFH6k UhCsR X-Gm-Gg: AfdE7clcPrUDQkAl+VrQvuR/jWeFIfBZx/69SOzMscpXneYClNJoGOpvVAVQ+0yCPkr XJH6j/qPnHl6+7kOhMpaIFVNwgSD1PwBgHx7UHOeZJCpFbDNjCBFt89OLIjfSRkYt05y7xGfAQp hRl0R1GFemFURjqSjpYi7dJWAmtXst+UnGz0Npolt8CZQh5CcMjwu11lTvJMQCySLdJedqsWSsB mfRJ8LrC4JYxHZa/gnNFKrBzJen4EX4aO4Rw+Ydocv8iWSR8Xbnl9tpJidYBgslI7ftFRgOnOQs dkSNDNcKxAePx1KRzh53SDkYahcMWvyxaG7Y9nRfy84NCEMUJt9Gk50m/u0nNe1nwAiYQLg3K0J 66eYztiopjUYRXmfmAp1vmnbZkXLuZBMuvYWQSP9a9yU47NV16duHy94As2D3SZ3JBt0K2ezuWY XLXtMMHSwfJODTnoP7AyXGFRWwt493k2Xwk50zOlC77ji3knUfzw58HIXHHBMr X-Received: by 2002:a17:90b:558c:b0:36d:81b3:61a1 with SMTP id 98e67ed59e1d1-37c930d223cmr6659227a91.7.1781755646181; Wed, 17 Jun 2026 21:07:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 7/8] target/arm: Implement FEAT_SSVE_AES Date: Wed, 17 Jun 2026 21:07:17 -0700 Message-ID: <20260618040718.572950-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755780461158500 Content-Type: text/plain; charset="utf-8" Enable FEAT_SVE_AES instructions in streaming mode. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + target/arm/tcg/translate-sve.c | 20 +++++++++++--------- docs/system/arm/emulation.rst | 1 + 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index af843b32d3..c07bcb0a73 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1575,6 +1575,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_aes(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, AES); +} + static inline bool isar_feature_aa64_ssve_f8fma(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8FMA); diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 3479e61a12..0f96bbe70b 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -173,6 +173,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_cmpbr, ARM_HWCAP_A64_CMPBR); GET_FEATURE_ID(aa64_f8mm8, ARM_HWCAP_A64_F8MM8); GET_FEATURE_ID(aa64_f8mm4, ARM_HWCAP_A64_F8MM4); + GET_FEATURE_ID(aa64_ssve_aes, ARM_HWCAP_A64_SME_AES); =20 return hwcaps; } diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index f7a920a202..e4a8d7a2f6 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1383,6 +1383,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, AES, 1); /* FEAT_SSVE_AES */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP2, 1); /* FEAT_SSVE_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 9f0f0e0e12..79e8e16b24 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7169,7 +7169,7 @@ static bool do_trans_pmull(DisasContext *s, arg_rrr_e= sz *a, bool sel) if (!dc_isar_feature(aa64_sve2_pmull128, s)) { return false; } - s->is_nonstreaming =3D true; + s->is_nonstreaming =3D !dc_isar_feature(aa64_ssve_aes, s); } return gen_gvec_ool_arg_zzz(s, fns[a->esz], a, sel); } @@ -8174,15 +8174,17 @@ TRANS_FEAT(SDOT_zzzz_2s, aa64_sme2_or_sve2p1, gen_g= vec_ool_arg_zzzz, TRANS_FEAT(UDOT_zzzz_2s, aa64_sme2_or_sve2p1, gen_gvec_ool_arg_zzzz, gen_helper_gvec_udot_2h, a, 0) =20 -TRANS_FEAT_NONSTREAMING(AESMC, aa64_sve_aes, gen_gvec_ool_zz, - gen_helper_crypto_aesmc, a->rd, a->rd, 0) -TRANS_FEAT_NONSTREAMING(AESIMC, aa64_sve_aes, gen_gvec_ool_zz, - gen_helper_crypto_aesimc, a->rd, a->rd, 0) +TRANS_FEAT_STREAMING_IF(AESMC, aa64_sve_aes, aa64_ssve_aes, + gen_gvec_ool_zz, gen_helper_crypto_aesmc, + a->rd, a->rd, 0) +TRANS_FEAT_STREAMING_IF(AESIMC, aa64_sve_aes, aa64_ssve_aes, + gen_gvec_ool_zz, gen_helper_crypto_aesimc, + a->rd, a->rd, 0) =20 -TRANS_FEAT_NONSTREAMING(AESE, aa64_sve_aes, gen_gvec_ool_arg_zzz, - gen_helper_crypto_aese, a, 0) -TRANS_FEAT_NONSTREAMING(AESD, aa64_sve_aes, gen_gvec_ool_arg_zzz, - gen_helper_crypto_aesd, a, 0) +TRANS_FEAT_STREAMING_IF(AESE, aa64_sve_aes, aa64_ssve_aes, + gen_gvec_ool_arg_zzz, gen_helper_crypto_aese, a, 0) +TRANS_FEAT_STREAMING_IF(AESD, aa64_sve_aes, aa64_ssve_aes, + gen_gvec_ool_arg_zzz, gen_helper_crypto_aesd, a, 0) =20 TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, gen_helper_crypto_sm4e, a, 0) diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index a8072ddb67..0b4623139a 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -171,6 +171,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_AES (Streaming SVE Mode Advanced Encryption Standard and 128-b= it polynomial multiply long instructions) - 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) --=20 2.43.0 From nobody Sun Jul 26 11:26:46 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=1781755745; cv=none; d=zohomail.com; s=zohoarc; b=aL1PDWUSfrBAdEvZOYxavTxsglIW56jbeZ9SA9Up7QAKXo5P5ag+8x5nDJzQHIALWJLLSiJeiO4W04oUixYfB37whNbtsNeRZ7+RP6C7lqcjsQdhXQFedKGcJQCBXnmBRw9SzFU4IZAOjv9dWl29hMJ2QNcO/rtNxlMR2LP8LRY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781755745; 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=t3sDxn60tZijXHrH39BE9L+baesYT2v8cGj36MJTLIM=; b=IClLD3uI2dqK2VaRkaVaYkenW5WPvoJW3ZYZiNX1GEOu5+evyncFPyNiQyUKjtuymbXD1Kq1/9gT0yUp/xG+Pf8OvUwFFFa8tFAb2RSBMiEazQlRoxETgSiypHTpH3cO2jk/996i4IaW1B1zb0q+tqmQiyEYwJLM/HIPCk+Ib14= 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 1781755745533965.6831067952297; Wed, 17 Jun 2026 21:09:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wa42Q-0000yR-76; Thu, 18 Jun 2026 00:07: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 1wa42O-0000vd-36 for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:32 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wa42L-00046v-8p for qemu-devel@nongnu.org; Thu, 18 Jun 2026 00:07:31 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-36ba285e98bso529712a91.2 for ; Wed, 17 Jun 2026 21:07:28 -0700 (PDT) Received: from stoup.. (174-21-129-215.tukw.qwest.net. [174.21.129.215]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5222e042sm8830476a91.16.2026.06.17.21.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2026 21:07:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781755647; x=1782360447; 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=t3sDxn60tZijXHrH39BE9L+baesYT2v8cGj36MJTLIM=; b=ZnB9kiyz0TMlQjjPBbqQDEUzPRBsmYSMu7xqBUEvxJZ2eTjYK/MDCdNfgDwLbNlT5P idHebKdu9Rr5nrLmFdNdei83q2irl9rPcR08W2wfmB4JAvbb7f2/iQ9X+2PA97G78j0E tPvy/PwTA3We03lcT9NyLwnITl7892zaluEXj/+Gz9BB80efsXxa+kj58kEG2qoImbqw ibpiTbzhLOL62mcqFTiDfMo7rSN3PECCzTwLf1hJFjP/j34GRJQ84Ga0NUEhqNssromG TXj7nNLAVC0wMdRiu5xzkGR9HsSFDdA2LoSujezK/uKF6psWWB4Uy+TRF2W1LXI5QZlD +iXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781755647; x=1782360447; 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=t3sDxn60tZijXHrH39BE9L+baesYT2v8cGj36MJTLIM=; b=sE95HNGsloCAaOL/vvZ2jRSou2ZDNaO7qw1cJjcArYT0GuTfBwcuMjdtnV9QkNb0Zw j7JrYIBfwJiwg2cTfk+Fwhf9dZ9l6kVPZ6FupNGfdE4ebLW/Rr5EIlzZNPBs4eIbQHR+ H833tgKvGO81LltcqrqEEdVeCEj+HaO8spbwercA2ROgy6jGV9ErM22kgUrkzO66o+VR R+8Wrqz/jkahCA8ChrYHPp6EKLHBTbj83Wp8Z/eg3TUA7vTI9wDTT8n+Em6r9zm0nueg JjToTxwOfdG/09Jn+0+KekG9cnWBomBaWIaNxeg4s7uI7O+0en64rdk36hpV0LiCA48v wGpQ== X-Gm-Message-State: AOJu0Yx1Q6JdqLgbn8ogqKPiESVX3A2piNBSSc3E//K8CVc0+3+/IDVU INxnlaGi2whunS8vXAyzeBnhnJUsLNUo5hxnm5RafA3sUfnwCmXSng0gMHOx8AY7uxWyxBEaH3j cv8E0 X-Gm-Gg: AfdE7cmmquRs/9n8/U5VKdKNudo0oMFH8r+KhsfO7QyUQOQvIJB2YdAEEyyFnqO+yyA wb/jy5a47XiXizUJCbRiL58gfUN5Zjqdm1k5E22ugjlSJKTkiBBAadSKO3CPM9Mvu7iT3SNQ49X lsy1H0R5UezmCEvROoMEMB7d4P+R2OMYSZDG+bqulCRfhAusLhbp5ceDm+rRUjvjkTq+MsxRJde hvzGN0tCoOs73BDoZih3qWXAQodC1Wif4AVrT1Fp7yQOQLxLJGqUlC6has2jKa/+cLwd7y2yFU7 n09Cyt7PfMo4UR9cYYwr0CihcLLuSRi6Ax0cBfgJH+qaZigXWOlxzEN+nZh7SsaRXb9UYBgBrHL tOvSbZSj3sGHV0oIZ3++d+zZkRsgKza+gdzJH6hQWIddemje3Raq+C2Ky3zZI1sLAD9zW7kd6Lr arIKSVIiKeW7ImHSQHAEDTjs8GfQXoRrCXv0lFJCu4qi+J75r89XTb8l87Cmap X-Received: by 2002:a17:90b:3d92:b0:36b:2179:6d23 with SMTP id 98e67ed59e1d1-37c9dbbc953mr6972616a91.7.1781755647054; Wed, 17 Jun 2026 21:07:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 8/8] target/arm: Use expand_pred_N for helper_sve_not_zpz_N Date: Wed, 17 Jun 2026 21:07:18 -0700 Message-ID: <20260618040718.572950-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260618040718.572950-1-richard.henderson@linaro.org> References: <20260618040718.572950-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1781755746490158500 Content-Type: text/plain; charset="utf-8" These is a bitwise operation; with expand_pred_N, we can always operate on uint64_t. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/tcg/sve_helper.c | 43 ++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index b2875a559b..ac96b18784 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -917,12 +917,45 @@ DO_ZPZ(sve_ah_fneg_h, uint16_t, H1_2, DO_AH_FNEG_H) DO_ZPZ(sve_ah_fneg_s, uint32_t, H1_4, DO_AH_FNEG_S) DO_ZPZ_D(sve_ah_fneg_d, uint64_t, DO_AH_FNEG_D) =20 -#define DO_NOT(N) (~N) +static inline void +sve_not_zpz(uint64_t *d, uint64_t *n, uint8_t *pg, uint32_t desc, + uint64_t (*expand)(uint8_t)) +{ + intptr_t opr_sz =3D simd_oprsz(desc) / 8; + bool zeroing =3D simd_data(desc) & 1; =20 -DO_ZPZ(sve_not_zpz_b, uint8_t, H1, DO_NOT) -DO_ZPZ(sve_not_zpz_h, uint16_t, H1_2, DO_NOT) -DO_ZPZ(sve_not_zpz_s, uint32_t, H1_4, DO_NOT) -DO_ZPZ_D(sve_not_zpz_d, uint64_t, DO_NOT) + if (zeroing) { + for (intptr_t i =3D 0; i < opr_sz; ++i) { + uint64_t p =3D expand(pg[H1(i)]); + d[i] =3D ~n[i] & p; + } + } else { + for (intptr_t i =3D 0; i < opr_sz; ++i) { + uint64_t p =3D expand(pg[H1(i)]); + d[i] =3D (~n[i] & p) | (d[i] & ~p); + } + } +} + +void HELPER(sve_not_zpz_b)(void *vd, void *vn, void *pg, uint32_t desc) +{ + sve_not_zpz(vd, vn, pg, desc, expand_pred_b); +} + +void HELPER(sve_not_zpz_h)(void *vd, void *vn, void *pg, uint32_t desc) +{ + sve_not_zpz(vd, vn, pg, desc, expand_pred_h); +} + +void HELPER(sve_not_zpz_s)(void *vd, void *vn, void *pg, uint32_t desc) +{ + sve_not_zpz(vd, vn, pg, desc, expand_pred_s); +} + +void HELPER(sve_not_zpz_d)(void *vd, void *vn, void *pg, uint32_t desc) +{ + sve_not_zpz(vd, vn, pg, desc, expand_pred_d); +} =20 #define DO_SXTB(N) ((int8_t)N) #define DO_SXTH(N) ((int16_t)N) --=20 2.43.0