From nobody Sun Sep 28 15:25:44 2025 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=1756574043; cv=none; d=zohomail.com; s=zohoarc; b=jvXiBnAFRKHAmWQHv4XbQwq4QjKIB0jiF38QUA59+mo2FqF2cs/Zev1RL8W9TKGwvrgDp+1P1cO/WnnaKcf7o3KRrVn/KTXwvSGspCZAFy0xQIxqxyMOgXjLQPh/2wcWZM7QMoN5KpHJ/TDgwiLjBDyO4WONAAw8uXNtBNqNWJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756574043; h=Content-Transfer-Encoding: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:Cc; bh=/kPH6riYNOweQhnmn/RRL6i17iJqnbvBitGNZ3+s7oE=; b=S20H8lNx11LJxXrstCtYvlVcsLHlVwP01rlLO4jc+hkm/Y2oBQyPhN28Cd28lfnKMv1dt7sbwn/3SS1smMKdsmqTXnr1FCOYVIGF5ygSROa4DElaM1jFEZjgE8ynwleGOl7Eiuhs3Swcga0YSC0nQqMaQDip/1oHqdgPOfN+10Y= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756574043345629.588090648666; Sat, 30 Aug 2025 10:14:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1usNsW-0004Lk-Vr; Sat, 30 Aug 2025 11:52:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1usCRG-00052b-4S for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:39 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1usCRE-00052k-6t for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:37 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-248ff4403b9so17137235ad.0 for ; Fri, 29 Aug 2025 20:39:35 -0700 (PDT) Received: from stoup.. (122-150-204-179.dyn.ip.vocus.au. [122.150.204.179]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24905da4784sm39551685ad.90.2025.08.29.20.39.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 20:39:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756525175; x=1757129975; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=/kPH6riYNOweQhnmn/RRL6i17iJqnbvBitGNZ3+s7oE=; b=N2+c3b041/8AsoJbylas1AcFxZUzs9Lf9e2cBGJajpFmnO1lbBiMjWd7AcZDz5rBJc Mej+9VIO3InNmP9lskcTPjg1fl4vyQEjOR7kVttDijmM/Dp5/xYfdKWrJOhdDlzV69FT PxqLG/tFnCdlYg+hJZCI4FHb4qe3nmkpWZVqCvXfLfLL9y2sbfIfezl1mKVpTeCRimg0 grGVVuMML91bmA9G5nzuRAPkbK5Byyn3/yp7UJoXps6yejKkNGjaKgCATU8AijlNkYWp +7v7sc7AW6A6CQi090eIeWOSJZik8vldLzDKTStcH+zFWO53LrRVt3dCi0b1MvpMkpLE 4FZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756525175; x=1757129975; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/kPH6riYNOweQhnmn/RRL6i17iJqnbvBitGNZ3+s7oE=; b=Bw4d/9wW9+6ip04oFAKtSadV+DmvL1VwzDnmWnMRFOsN3Vue8Dsy4/Bl0wVgUCNuH/ E2E1K7RiOInBoN/twIA4tZNT9mRh2hR6bmeui5lzYBN/IhYc+vHwHNhljOQlcE1PH0Mi peZ69AVW3AL7LdJ54TLsHcB3/BLIqx6ME8imM/Zwbb+LEPbD6+TA4SWyEUMBraEGwVQg ALhYZfVq8tHh2YyePnooPv+NDR3rrFMYYNc/DrYYKIxdCy28CVIgOMdhHMoVbczG/1H7 7HddCBT7wDZ1fy2VIoluGJKbGO9Uq3y5bgBoU3Ob5vaanHgHtiACzB0IXsRMSQPUlpku uFQg== X-Gm-Message-State: AOJu0YxojueJ/VYG/anp5ruR7nseFHGJsuklXZjMgBdFt8g4DlsNalBf zmQQKRfq/jSQ2V65X1iVTrbNMU/qsm3pcNXfLaV+UwenPHc4S0Rk3Abmxr+lNHiM8zpYlpjGBqK /vGwKh6Q= X-Gm-Gg: ASbGncudw0yUpTW5QpUPI5Je40GLEyMJIpVpckpVEdeuez8jcBsxUTHy2mRc0CqaozG eNV5aUmHknYZPJS6fyR0vQFkfWndGmqffp7wYU5fX6p97WDOkUrl3WqAt0BVIiLdDXMMujwbRq7 +4aEab+gE7NpCOLt7DzbdVdc9dcUoq40ZE5SGyVw8zaL3g8cPevqnLvVciOVBPw6dsElx0XNbqW Sa9ZHn9cdCp9zMn/vYFlVnP2e14ZRwMzVHejimWlDsiz14FTlxXxNquZUIs+991HyHXostJLbhW OAyk2qAfF6TTm9slLvK0QkIJRKfkHVxu2cEeh8xdXdDgVi6j5PSijhGI1/gXaq5IyissmeRqPJs 3J8S0Eu5r13qikXHmqP6XkSR7UUfVSBxVeLXSrejBi+f4WEpF9S/OfoyO/eZi2O8= X-Google-Smtp-Source: AGHT+IEf/E7/fn/EFXd3pP+tALwMK3dxEbTHbXsrpxObaOKTCXVnmpSmLBscr0OXpA2LjLb0XABcgA== X-Received: by 2002:a17:903:37c4:b0:246:cb10:6e2f with SMTP id d9443c01a7336-24944907804mr11575335ad.26.1756525174653; Fri, 29 Aug 2025 20:39:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 1/5] cpuinfo/i386: Detect GFNI as an AVX extension Date: Sat, 30 Aug 2025 13:39:22 +1000 Message-ID: <20250830033926.372955-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250830033926.372955-1-richard.henderson@linaro.org> References: <20250830033926.372955-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1756574046252124100 Content-Type: text/plain; charset="utf-8" We won't use the SSE GFNI instructions, so delay detection until we know AVX is present. Signed-off-by: Richard Henderson --- host/include/i386/host/cpuinfo.h | 1 + include/qemu/cpuid.h | 3 +++ util/cpuinfo-i386.c | 1 + 3 files changed, 5 insertions(+) diff --git a/host/include/i386/host/cpuinfo.h b/host/include/i386/host/cpui= nfo.h index 9541a64da6..93d029d499 100644 --- a/host/include/i386/host/cpuinfo.h +++ b/host/include/i386/host/cpuinfo.h @@ -27,6 +27,7 @@ #define CPUINFO_ATOMIC_VMOVDQU (1u << 17) #define CPUINFO_AES (1u << 18) #define CPUINFO_PCLMUL (1u << 19) +#define CPUINFO_GFNI (1u << 20) =20 /* Initialized with a constructor. */ extern unsigned cpuinfo; diff --git a/include/qemu/cpuid.h b/include/qemu/cpuid.h index b11161555b..de7a900509 100644 --- a/include/qemu/cpuid.h +++ b/include/qemu/cpuid.h @@ -68,6 +68,9 @@ #ifndef bit_AVX512VBMI2 #define bit_AVX512VBMI2 (1 << 6) #endif +#ifndef bit_GFNI +#define bit_GFNI (1 << 8) +#endif =20 /* Leaf 0x80000001, %ecx */ #ifndef bit_LZCNT diff --git a/util/cpuinfo-i386.c b/util/cpuinfo-i386.c index c8c8a1b370..f4c5b6ff40 100644 --- a/util/cpuinfo-i386.c +++ b/util/cpuinfo-i386.c @@ -50,6 +50,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void) if ((bv & 6) =3D=3D 6) { info |=3D CPUINFO_AVX1; info |=3D (b7 & bit_AVX2 ? CPUINFO_AVX2 : 0); + info |=3D (c7 & bit_GFNI ? CPUINFO_GFNI : 0); =20 if ((bv & 0xe0) =3D=3D 0xe0) { info |=3D (b7 & bit_AVX512F ? CPUINFO_AVX512F : 0); --=20 2.43.0 From nobody Sun Sep 28 15:25:44 2025 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=1756570382; cv=none; d=zohomail.com; s=zohoarc; b=CbUP9BglXUZM7R9F+fy/TOyXqwmtn0BAte05EHgaDofJ2BHPQFguigR3A9kmSdT9jhDHXEkSt2Gs658PC9HmU8v9NtCC0GV74cyFFi6B+AloOfkFIe9ucWReXRo1xbT/JEz6Pi7D1s7t5MUr6+eckkVIU4uUiLV4hxe1bu/hHro= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756570382; 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=t71Z0EMt7VoYt+Js0tvLpYVjDl1AThaQamaO8gjGV1k=; b=XKUnHwTBz2lyDQ7BvZKQheYHWST1YCLzuBdQ1YatSEuMnVFukiH9EgMHUZspCvcpWecgzT+rjtt1Nmuc863gYWMVPRtG02BeAywaZDwe4zMkkXXE4U5u5vROvFAZd39UrdrgN1Ft7/GUzyHXyZ8PCaVZgVDLMoLKy8moe94ml7Y= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756570382444446.1945965187432; Sat, 30 Aug 2025 09:13:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1usNpr-0008BN-JP; Sat, 30 Aug 2025 11:49:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1usCRH-00052t-Ny for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:40 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1usCRG-00052v-8o for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:39 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-24456ce0b96so29882195ad.0 for ; Fri, 29 Aug 2025 20:39:37 -0700 (PDT) Received: from stoup.. (122-150-204-179.dyn.ip.vocus.au. [122.150.204.179]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24905da4784sm39551685ad.90.2025.08.29.20.39.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 20:39:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756525177; x=1757129977; 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=t71Z0EMt7VoYt+Js0tvLpYVjDl1AThaQamaO8gjGV1k=; b=LpeH/VJ7SbJ3TSFXtL/M/wr3vQ30FDsQbZpIwUMrSPhk8Hn8Srmq/IpBotKzphyDtJ r7PQawLa1TlF8BdSuiOSmNeOHUim6Z4mIfq8xKE9HLYIUDk2On+gVuAE0di3Fw0TVrzQ oeBBo2MZe2S1lZYQS6v8jFSNn/g9kiacWs/NRpXh2AFaV3MSNzPpGMnVLKhinunoRZBJ /EVHYWB7dr/h9xu0GRbFqcLHWJ6sggUMn5fclN7PL91lgBts1Tip9dyRzQJBryhyPqXA JVZnu92l8CiMyNB064EtMU6PI8mYOhDh6da677nMMmvmRXYmjVJLq7Oz2yW7yfnaGlT2 YoEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756525177; x=1757129977; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t71Z0EMt7VoYt+Js0tvLpYVjDl1AThaQamaO8gjGV1k=; b=aEM4S88hY/8W2AHtNvFnWhw1bC94bT3tMOX5xOmeBvX6NbBhdRuoLXfzoXnUslbsT9 J91XYLesCGtypdvIl7IigfUbuu8wt9MbEzIBnwubXn1rw6FEU8KGsQrYbYsFh1gL7fp2 SGIZH4J1Ec8ley9rB+m2aX+ceiRKuawZ8yM3ghJGCmUiG21etfv/6p8gDTNBUnXHr1a3 1cYLQukKhn5i6lSk+BPdcGM1/oA/fM9qheomm+xfvq3AQ3KuY7kGiCZzwNFGopwCm/qA mYV2u/VumQ9lU32I/nrWvLjyKkcEAd8ryDuzAnTHO6ir3VmXTIvXJOvNNfn6jXAlESiO 5AJA== X-Gm-Message-State: AOJu0YxTjljk36bUPpHFdf5SrBuCK2vbRjB2POeyByNdEPtakJsXeyQ5 dNNEVjeoidzuoJV4JlL+VSywH8mPbvbWVMNnT6yflMOxuVyNSlM4ZCHz/tP1ABqhL5gS6a+60ny 8sspbTV0= X-Gm-Gg: ASbGncsTDKWpOtpQlsX7sdLTtEzS7Bhg4030xvltSOXhhdy2h66xBQAA91D/nRkKrI5 rnMJKRCTy5b8u3N4ljRRS0pvekCvo1ZA6gU1GQlFVjQxgtGBN5uwApiwWwJspEd/DgJTaj5zRPs EuLuY5vtVynRq5BXTUnPhzJT9p/WnBb8jZxnVwolBQLCR8sb+7TOHEWPRSZUBVYrlnVTlED2LJW ReVV16e1arlSKdx3Vp+9m32icYMgs45GNxYWzono858X6QZyp7Bbb2gu9aWS2EMMGq1eHG2h9+x gnbDJR8DYjlj2ePgBqcLLum+5D9DDSNt8Hp1ZVPxmjlNQ/QDzKCyDnItBZq5pkDvuYQsb3APPi9 sDedVxM5MEObs9v0dR47RMrNVp8531rYTr61AjlnThY6qmOBlftay0LLGqaAtMoE= X-Google-Smtp-Source: AGHT+IGiN8QzMRDBAz8mg1IGPu+pQXRsz9MvTW2PX48TdeXXDJ/AzfO2QMZqOCEYHA4+bdyB5UzbIA== X-Received: by 2002:a17:902:d502:b0:248:ffb6:5bce with SMTP id d9443c01a7336-24944af020cmr12329765ad.22.1756525176944; Fri, 29 Aug 2025 20:39:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Paolo Bonzini Subject: [PATCH v2 2/5] tcg/i386: Expand sari of bits-1 as pcmpgt Date: Sat, 30 Aug 2025 13:39:23 +1000 Message-ID: <20250830033926.372955-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250830033926.372955-1-richard.henderson@linaro.org> References: <20250830033926.372955-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 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: 1756570384471124100 Content-Type: text/plain; charset="utf-8" Expand arithmetic right shift of bits-1 as a comparison vs 0. Suggested-by: Paolo Bonzini Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.c.inc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index 088c6c9264..4cd5d4276c 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -4357,6 +4357,12 @@ static void expand_vec_sari(TCGType type, unsigned v= ece, { TCGv_vec t1, t2; =20 + if (imm >=3D (8 << vece) - 1) { + tcg_gen_cmp_vec(TCG_COND_LT, vece, v0, v1, + tcg_constant_vec(type, MO_64, 0)); + return; + } + switch (vece) { case MO_8: /* Unpack to 16-bit, shift, and repack. */ --=20 2.43.0 From nobody Sun Sep 28 15:25:44 2025 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=1756570226; cv=none; d=zohomail.com; s=zohoarc; b=aU62/0p+W1pBff4VO2D9b6oUg/A7jpODbYab42V5Z/R8HWSDullq+0f7j2HPGw65zkH8JyvO4YG39dMKLeOdpAuLyQn6gvjBabjZbend9ZuPRT40FbNcCwHNyAvE6aVo36IRfX+oaENkUQioPrHXn4Y+WWweWN8ZjYNK2tYCtbc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756570226; h=Content-Transfer-Encoding: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:Cc; bh=3DXiy/ZudcrpQh5ssHAmre0hommvxs3Ew0pZrojp600=; b=cAu/keAzpwU+VMcyBFScbBanDj3VY8obSzXgGcNsRonz7EKsDUI3ipcY2YP+EklH674wvr87Bb/F1b8y/JmgaDm1h3JJETpc9xdyF8LUit9U/ptFSN/EJeeA93Iorthi+7boEz6QJIt0O65K1QZ411X9x5nQ/keTEFQ+CH6gTqo= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756570226192985.4086070749694; Sat, 30 Aug 2025 09:10:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1usNsb-0004gW-0a; Sat, 30 Aug 2025 11:52:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1usCRK-00053e-3K for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:42 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1usCRI-00053I-KB for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:41 -0400 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-b4c9a6d3fc7so1229522a12.3 for ; Fri, 29 Aug 2025 20:39:40 -0700 (PDT) Received: from stoup.. (122-150-204-179.dyn.ip.vocus.au. [122.150.204.179]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24905da4784sm39551685ad.90.2025.08.29.20.39.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 20:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756525179; x=1757129979; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=3DXiy/ZudcrpQh5ssHAmre0hommvxs3Ew0pZrojp600=; b=CeS7UVc9rzGRgWT9mqUyFpyyW4d3OuSwVdgmrtB2eDGsXD2pCDsUPY3teAhEG0iWvc dSTLQihM+TVubfoRtPwt2zQcBCem+LMEZW7I/EOzp8TklbpU7iXGA1jMdLXgx2Glu6u6 aoqddOO7ATJe5Y3Lp2YufvpoRTJjB7YCYRZ8kxNJhjz9OmZ/IhJARJe82gQ2J9JNHB4D 30VHo+qIl4XebxHh1peCQVvCCUSvsoMo1tec7HA7/h+CIiqI7kpu+69Xc7O/3Vd3SLC5 SapFmHEZBmBWc2xE8IycpM8OQliE6WiTiFZuFoI3Y8qboTl5+FJPbk8Vm1qV+jDKiPm2 jWvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756525179; x=1757129979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3DXiy/ZudcrpQh5ssHAmre0hommvxs3Ew0pZrojp600=; b=tLvhnj9Eo8rtJDPSddWTi6x5Ulsf1VH1r9PYv2Ofr5A58PwRrgjRsZ9Ws4vB9bX0H8 xawudPYJiiwEUdSwbElwtsDnlDCPB0REV620dL2bbrGWq1RxCQRYZS2xAdXY9jUhQatM 1xQzYB03q5hwV+7teY8OiyUHvN9yphdXom3U1nHcN+ErdetTH3WI1vyf39LC0VfrJKFh 42p6nJEIg9qnXHUiUy4v6xKReIXoamDwqWhXlYYLbPRFPlW4QtbmG9aDxdmbp0FsZqYx 49hf509uDymk7JEhCDeLPpileOIBKyCyrTDHfzHzhBTQSLZ/ok+1rE0yJlwUk6ugmKp7 zuJg== X-Gm-Message-State: AOJu0YzbhfDXApChpnvOtmOdyy1/ODSJBzTDiGaQRGsIVXOH88M2oJvt g3khd9AGuKoVeMMr55OwR+QDW/OpljuJcBYDWv57CdUMRzniuuHjtdnnG4K+UETCy9ivLTR6gPk 5ephlznE= X-Gm-Gg: ASbGncu3Ei7KvUJL0hBoLZ6KyAryym3/j9Rxu5ecK4cbAUVzeoXbRjrnxJENDhujREA SyRT/Dbfs3P0wV4ZcyLYG7yg72zl0O415pI7eNOAuKoX+Ty6LdudJVrH5Kk3ebR61gTY6A7s6ms bAmX9Ry+pS5m0y2nbUnK8/IB2xo/z2uOSBAdbfyin/81kzFd7S1oWmobKfnivHr71FNuou2Cxmy giEyyi7hxmLB4MLQWmtFpDC+OdbQ0ygKRyG+pjjIuaMTJldzIDddQE7vKoClMOZX4BGjRyPuHhx ijTyxaDhD0A0BVNsKcHWibDMo8ChvFThgyqLpY/dNIB+qPsaunarZqGbXfcQitbILZKU49mBX9f Z6HIbfycGH3qBai+GQeJWKuzAS1NEStm0zQogS1GK8SQ8dMW+NECFYwd3mebPr1LOYbDGFhajcQ == X-Google-Smtp-Source: AGHT+IE9DwG3+7AyIh3/PPBM91hPP9Y1SX+5DhQyi2NP7MMSJh1izl/JFi3gs6jRFcMoil9z5Wqy3g== X-Received: by 2002:a17:902:e94c:b0:235:f143:9b16 with SMTP id d9443c01a7336-24944b3d668mr10553825ad.41.1756525178885; Fri, 29 Aug 2025 20:39:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 3/5] tcg/i386: Use canonical operand ordering in expand_vec_sari Date: Sat, 30 Aug 2025 13:39:24 +1000 Message-ID: <20250830033926.372955-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250830033926.372955-1-richard.henderson@linaro.org> References: <20250830033926.372955-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1756570226850124100 Content-Type: text/plain; charset="utf-8" The optimizer prefers to have constants as the second operand, so expand LT x,0 instead of GT 0,x. This will not affect the generated code at all. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- tcg/i386/tcg-target.c.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index 4cd5d4276c..8260c35edd 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -4399,8 +4399,8 @@ static void expand_vec_sari(TCGType type, unsigned ve= ce, /* Otherwise we will need to use a compare vs 0 to produce * the sign-extend, shift and merge. */ - tcg_gen_cmp_vec(TCG_COND_GT, MO_64, t1, - tcg_constant_vec(type, MO_64, 0), v1); + tcg_gen_cmp_vec(TCG_COND_LT, MO_64, t1, v1, + tcg_constant_vec(type, MO_64, 0)); tcg_gen_shri_vec(MO_64, v0, v1, imm); tcg_gen_shli_vec(MO_64, t1, t1, 64 - imm); tcg_gen_or_vec(MO_64, v0, v0, t1); --=20 2.43.0 From nobody Sun Sep 28 15:25:44 2025 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=1756574960; cv=none; d=zohomail.com; s=zohoarc; b=YREEMjhbt+/0juW+Ea0z7oQ17OJiF1k+K7iU/EYcrMEzqPAVOk41yeBAQHjum0yq6CGzj/zYBw9m23rz7NehR2+1HEcX8O9izXVu6S3F6BERhUyyXmIPduppjc20EBHJ7rHg5bsUDuawVetOdVGq5AjnarXIdfTXQLyEz2xTsXY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756574960; h=Content-Transfer-Encoding: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:Cc; bh=9TWmHhTT9lCDXC8rOc808nC20bvHDJHpaGHTN65T5bE=; b=XCFIkU9RPPZJHkwcoFlFuEKhpBKpjD9dwZMKxWSfzFnfsyhcbyyuhFqou1zmDO4Cjnu/yvkj4C39H4XUwn1dszutbEUnqwNMHFFyGPTw3PfgKnruR1jxK1tyG6f+2B8XjjhtuZajJLyntFQibst6hMyb8HXxI8zESiYaQjivQz8= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756574960773136.68225470630807; Sat, 30 Aug 2025 10:29:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1usNsT-0003zx-6X; Sat, 30 Aug 2025 11:52:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1usCRM-000552-T3 for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:44 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1usCRL-00053b-8U for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:44 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-b4c3d8bd21eso1780034a12.2 for ; Fri, 29 Aug 2025 20:39:42 -0700 (PDT) Received: from stoup.. (122-150-204-179.dyn.ip.vocus.au. [122.150.204.179]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24905da4784sm39551685ad.90.2025.08.29.20.39.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 20:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756525181; x=1757129981; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9TWmHhTT9lCDXC8rOc808nC20bvHDJHpaGHTN65T5bE=; b=n8NtsTDbZG6vq9GlCAjqs2qzowTmV0Fa/Z2EWgc59Nle5OCvebaaQCscgiouBNUsDy qaLoNaTyfPh+Vks6g69astA3NgW6JXXMbH95j4FokYZklliN6/QYVHjkCJz9Sdb8Wl7d H5H2UVPCKHqCL38SIPjrSzF/2icZDIDEwzU8gMtgTCYN3QNqO7SH8G9bVagpnaiC/qCq U/xozj7o6/Ge/eZgXC8aj36oyMKaipfb9+Gpv8epfjt+eC+/EMt/2veVY8rinih2F/ah vzQlUTr8Q5ATo0KHsbicNMZ4SjDLX9UOSESU8CVCSI3H9jRN7SaGGRTExqj2jqPBU7zG EIQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756525181; x=1757129981; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9TWmHhTT9lCDXC8rOc808nC20bvHDJHpaGHTN65T5bE=; b=M1AV+N/nUXq0DlPiLOFLLZs1fJ7x+TCnmNowbSdC5qKhoRBOXdBVFQuBLV1DbsktsV jixauqT1C5XKn8og+PbvzVua8F2W4VFSJsuj4+vsiJ8LY0DJorQLQLA5HWsDiWRq4Uid 5XHnticTy9gZ2WXk47/zfF66sDuha1qgCJdRf2XDJMHm0bsfUmAvbu7CX66pcRrnN+ju Xah0+rYXSxriNUS4ZVBnKzSemP8s+mGfnK0i+EXvybZLKA9dA4VKUPfvl0ZQ2kLyV55G 8IvHYHDJRAjh5B8Y7WeR4/UCCYFE0+4RKDViUw5zU9uke72OAEPJOe3UbOgfXAqJDzf2 B5ww== X-Gm-Message-State: AOJu0Yy94aOjQC8argygh7su9qsQyEItTK2eZEjTK7zR2W2JMxnVfKca igpUXHY5/VS5sVVGN1y+lDNoIuxYbrHPIcfURCmGk8LU2SihqTyGSSk+4Jy9LD8doNGLsMGDs/L 9yu1Z0Xw= X-Gm-Gg: ASbGncsfOtCgUDypJv2XdEdV4a2T9QZcN/CCaiCbmMxvI/uBbh0RspzbypvSO1ZN3cy tBBpnAzMOIvp+3NHbLL62K0Tl6ZcW1IV+FqLn5IxlBXp4daMN9wF+R7XjLi4/A7M7sIwqT7aOFm 1LZIlGaJqmvt3YyelhmLaqZP0ikcwoZ9yEdQdpAZyFDwK1hW80JU+35bIeRu+E8rcSzJRaLf9WA 4TSgPWScH35YiDen5sKcwsk28D+nsfuGSRrPQhRrCkNXokVwFon2yZ3AjmhgNLSJ2Y9zJkPWy1o Rs/f8tlIszHB32PUuqBExim7spTktgZcRvgC4MNhH4BT58dgFuHXej1HhGo8/sZ71cipph81dUC qUNTz/NzR+bIU3ciL2W/byp/8RDZPzvFyQyCVErnM1U92fdcPjQoMabQiSuSUAJQIvC/ZDs1Abg == X-Google-Smtp-Source: AGHT+IFqpMHDlVg323HnxQlYmJPEM1UfHNer/qQgj++/BFOiAXmSh4zXqOuUX9BCtHFt1Rx6PMIqdw== X-Received: by 2002:a17:902:d4cb:b0:249:3049:9748 with SMTP id d9443c01a7336-24944a98207mr11179535ad.35.1756525181050; Fri, 29 Aug 2025 20:39:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 4/5] tcg/i386: Add INDEX_op_x86_vgf2p8affineqb_vec Date: Sat, 30 Aug 2025 13:39:25 +1000 Message-ID: <20250830033926.372955-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250830033926.372955-1-richard.henderson@linaro.org> References: <20250830033926.372955-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1756574963070116600 Content-Type: text/plain; charset="utf-8" Add a backend-specific opcode for expanding the GFNI vgf2p8affineqb instruction, which we can use for expanding 8-bit immediate shifts and rotates. Signed-off-by: Richard Henderson --- tcg/i386/tcg-target-opc.h.inc | 1 + tcg/i386/tcg-target.c.inc | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/tcg/i386/tcg-target-opc.h.inc b/tcg/i386/tcg-target-opc.h.inc index 8cc0dbaeaf..8a5cb34dbe 100644 --- a/tcg/i386/tcg-target-opc.h.inc +++ b/tcg/i386/tcg-target-opc.h.inc @@ -35,3 +35,4 @@ DEF(x86_punpckh_vec, 1, 2, 0, TCG_OPF_VECTOR) DEF(x86_vpshldi_vec, 1, 2, 1, TCG_OPF_VECTOR) DEF(x86_vpshldv_vec, 1, 3, 0, TCG_OPF_VECTOR) DEF(x86_vpshrdv_vec, 1, 3, 0, TCG_OPF_VECTOR) +DEF(x86_vgf2p8affineqb_vec, 1, 2, 1, TCG_OPF_VECTOR) diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index 8260c35edd..efaca0ca67 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -451,6 +451,7 @@ static bool tcg_target_const_match(int64_t val, int ct, #define OPC_VPBROADCASTW (0x79 | P_EXT38 | P_DATA16) #define OPC_VPBROADCASTD (0x58 | P_EXT38 | P_DATA16) #define OPC_VPBROADCASTQ (0x59 | P_EXT38 | P_DATA16) +#define OPC_VGF2P8AFFINEQB (0xce | P_EXT3A | P_DATA16 | P_VEXW) #define OPC_VPMOVM2B (0x28 | P_EXT38 | P_SIMDF3 | P_EVEX) #define OPC_VPMOVM2W (0x28 | P_EXT38 | P_SIMDF3 | P_VEXW | P_EVEX) #define OPC_VPMOVM2D (0x38 | P_EXT38 | P_SIMDF3 | P_EVEX) @@ -4084,6 +4085,10 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode = opc, insn =3D vpshldi_insn[vece]; sub =3D args[3]; goto gen_simd_imm8; + case INDEX_op_x86_vgf2p8affineqb_vec: + insn =3D OPC_VGF2P8AFFINEQB; + sub =3D args[3]; + goto gen_simd_imm8; =20 case INDEX_op_not_vec: insn =3D OPC_VPTERNLOGQ; @@ -4188,6 +4193,7 @@ tcg_target_op_def(TCGOpcode op, TCGType type, unsigne= d flags) case INDEX_op_x86_punpckl_vec: case INDEX_op_x86_punpckh_vec: case INDEX_op_x86_vpshldi_vec: + case INDEX_op_x86_vgf2p8affineqb_vec: #if TCG_TARGET_REG_BITS =3D=3D 32 case INDEX_op_dup2_vec: #endif --=20 2.43.0 From nobody Sun Sep 28 15:25:44 2025 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=1756571270; cv=none; d=zohomail.com; s=zohoarc; b=dTn61px/cqGSJ1lt6zR34GGnvbjZhxM0FlY0jGqFEc/GjsM0p1rOykL7D/5wyxqRV4mJXFXEAJmkr8WJUnrH0Abey/Mk2l/TD1fOz8jWYSeFV1K5BR6j5/HnLckdAu1+g9woa2JAKZqLaFrf1lkYONmoTSE0D1eVUrk9Dh9Urfg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756571270; h=Content-Transfer-Encoding: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:Cc; bh=nAYrTiHACzTy9Y3gPDsiHUk0bVXAiu9l8x+fFNC+2QA=; b=iD+1hLWj4rhRKi5hzmFWR3zIyAKX7jlspLeZI0xS2g0DheYgp+YT22Z39wjgqge10S/gmInszGs+PcjyFzkDbWBEapHrwXBO1OuVEsfV/PeGyW2Cctrpakbc9A3QDwMG55c0Oxio4kOqYvCORJ9slSQPfvzejo+ivQuT3RgvkhA= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1756571270663927.6329207316134; Sat, 30 Aug 2025 09:27:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1usNsX-0004OC-9H; Sat, 30 Aug 2025 11:52:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1usCRO-00055X-ID for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:46 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1usCRM-00053t-OS for qemu-devel@nongnu.org; Fri, 29 Aug 2025 23:39:46 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-b4cf40cd0d1so1145089a12.0 for ; Fri, 29 Aug 2025 20:39:44 -0700 (PDT) Received: from stoup.. (122-150-204-179.dyn.ip.vocus.au. [122.150.204.179]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24905da4784sm39551685ad.90.2025.08.29.20.39.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Aug 2025 20:39:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1756525183; x=1757129983; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=nAYrTiHACzTy9Y3gPDsiHUk0bVXAiu9l8x+fFNC+2QA=; b=bHAg+pwVRO+ll8WZuWa6fx2Y83cvDzHEmu8edWHLMKdAdb2EJCnw/kcPTSRcI5QwT5 4SwchTNH55iABizBvQz95tTUjwvlnbmjACUSWDrtJUGivWCemvo7F4A72BDEPTZxQ7w1 ZKj52/nnsETtvifBiP7j3Qr7y1pcZxMDxy8LppOWUStexlZTQg7S6Rj+c/Xe4dLpE6qP dBJ+RDffe58IA6myKqm91ANq+Fb2/OugoOE0dz+DX39xlI1ZhlmzvqQLBHmnYzu5VHQB 1gA1MrDO6pRj2G5zUaZyRArBjAdr2GKBwXVPakhM9i5WxU2fJmmE2zBEtvXsdGgmwMIE TFfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756525183; x=1757129983; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nAYrTiHACzTy9Y3gPDsiHUk0bVXAiu9l8x+fFNC+2QA=; b=LkGTLHYi2+Mc97ewPbJgklLg1cvhYpTuZEbXV2Xvm8H3m0a9ZJczzU8hBeecT405QJ iJ3PoIKWhgGafC2TyWXbqB0T6nWA3+R5peNU/M82sJWuLrb6whdeXh9XoxUi4OlkIhHo /lJXegS8eaWDNP4JLbFGHcI3Llr6oSCeZxat9Opbv+IdN/GmQxCs8MVrx92fwFg6z6kF ltrrRA/PAMlaMtANs1zgpTgxPUg7IXLJpJ9ZcO9juli7mZUZHBFGASrmbFvRSbCDJ3t3 wZlqjRGqgEui+H26K/4xS4EBGuhRm8V+qyA+UVi0Y4xogXKIZPKRZJ8CXJgfXE8zLhpI bMig== X-Gm-Message-State: AOJu0YworDz4h5JSinX8sZjcgEqJvDP2xRJlRiE3hQTc0bFirMlrkio9 TxUyZspgz/YtHAnDEuBbIJ+2fYnvnTYjckosEUItGnO4tc79aL9lE43+dFHGWjyCwsF0X8o0jwv x6x1lFyE= X-Gm-Gg: ASbGncuRf01pu6WTqheG1ktR219vZObxE7L6EKGr0CeTmFkAa29r4YkmdNlRH8vgtsw fiocCnYKDl+3xWrmXTjpV6hB3zS0vheEfuPaAUgLHiPjw2SpigQxws57KkLlt59XhBmjV9x0bds wBom4xi23uiQ5Bemjvroq2L6Wqr6O8SwyUBxTGUc0SI4AXcXgGJdCpK1MxTEwTUaJv1W/XiKpgF cZHUoz+vdC1Q6B0omXCW70RRLLY5XOvvrzeacCefLNauxAVZOeji3IwloRd7dW+mIT5keFvShMH V9qihSn14WHIK+vvbdxedXf38oX4aCOGvHrS4m62tju8A6adEg7auBO1B8y3qDj4GP6nks46Tgt km6PEOsuDOd2cQxNCzHnD8jaMyhVo0K25wL0KXGeNvcZZTZhid+r+WTZMVos/QPM= X-Google-Smtp-Source: AGHT+IGz6szenwtmKvZg41WMGRsbkPwl7zGz5EjJTwckeYYOpYBmbos+I8D5v/8D3ZI3G890rZKSpA== X-Received: by 2002:a17:903:ac8:b0:248:7878:cee9 with SMTP id d9443c01a7336-24944ad05a0mr8941335ad.42.1756525183134; Fri, 29 Aug 2025 20:39:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 5/5] tcg/i386: Use vgf2p8affineqb for MO_8 vector shifts Date: Sat, 30 Aug 2025 13:39:26 +1000 Message-ID: <20250830033926.372955-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250830033926.372955-1-richard.henderson@linaro.org> References: <20250830033926.372955-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=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::529; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x529.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1756571272472124100 Content-Type: text/plain; charset="utf-8" A constant matrix can describe the movement of the 8 bits, so these shifts can be performed with one instruction. Logic courtesy of Andi Kleen : https://gcc.gnu.org/pipermail/gcc-patches/2025-August/691624.html Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.c.inc | 75 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/tcg/i386/tcg-target.c.inc b/tcg/i386/tcg-target.c.inc index efaca0ca67..ee27266861 100644 --- a/tcg/i386/tcg-target.c.inc +++ b/tcg/i386/tcg-target.c.inc @@ -4342,12 +4342,46 @@ int tcg_can_emit_vec_op(TCGOpcode opc, TCGType type= , unsigned vece) } } =20 +static void gen_vgf2p8affineqb0(TCGType type, TCGv_vec v0, + TCGv_vec v1, uint64_t matrix) +{ + vec_gen_4(INDEX_op_x86_vgf2p8affineqb_vec, type, MO_8, + tcgv_vec_arg(v0), tcgv_vec_arg(v1), + tcgv_vec_arg(tcg_constant_vec(type, MO_64, matrix)), 0); +} + static void expand_vec_shi(TCGType type, unsigned vece, bool right, TCGv_vec v0, TCGv_vec v1, TCGArg imm) { + static const uint64_t gf2_shi[2][8] =3D { + /* left shift */ + { 0, + 0x0001020408102040ull, + 0x0000010204081020ull, + 0x0000000102040810ull, + 0x0000000001020408ull, + 0x0000000000010204ull, + 0x0000000000000102ull, + 0x0000000000000001ull }, + /* right shift */ + { 0, + 0x0204081020408000ull, + 0x0408102040800000ull, + 0x0810204080000000ull, + 0x1020408000000000ull, + 0x2040800000000000ull, + 0x4080000000000000ull, + 0x8000000000000000ull } + }; uint8_t mask; =20 tcg_debug_assert(vece =3D=3D MO_8); + + if (cpuinfo & CPUINFO_GFNI) { + gen_vgf2p8affineqb0(type, v0, v1, gf2_shi[right][imm]); + return; + } + if (right) { mask =3D 0xff >> imm; tcg_gen_shri_vec(MO_16, v0, v1, imm); @@ -4361,6 +4395,16 @@ static void expand_vec_shi(TCGType type, unsigned ve= ce, bool right, static void expand_vec_sari(TCGType type, unsigned vece, TCGv_vec v0, TCGv_vec v1, TCGArg imm) { + static const uint64_t gf2_sar[8] =3D { + 0, + 0x0204081020408080ull, + 0x0408102040808080ull, + 0x0810204080808080ull, + 0x1020408080808080ull, + 0x2040808080808080ull, + 0x4080808080808080ull, + 0x8080808080808080ull, + }; TCGv_vec t1, t2; =20 if (imm >=3D (8 << vece) - 1) { @@ -4371,6 +4415,11 @@ static void expand_vec_sari(TCGType type, unsigned v= ece, =20 switch (vece) { case MO_8: + if (cpuinfo & CPUINFO_GFNI) { + gen_vgf2p8affineqb0(type, v0, v1, gf2_sar[imm]); + break; + } + /* Unpack to 16-bit, shift, and repack. */ t1 =3D tcg_temp_new_vec(type); t2 =3D tcg_temp_new_vec(type); @@ -4422,12 +4471,30 @@ static void expand_vec_sari(TCGType type, unsigned = vece, static void expand_vec_rotli(TCGType type, unsigned vece, TCGv_vec v0, TCGv_vec v1, TCGArg imm) { + static const uint64_t gf2_rol[8] =3D { + 0, + 0x8001020408102040ull, + 0x4080010204081020ull, + 0x2040800102040810ull, + 0x1020408001020408ull, + 0x0810204080010204ull, + 0x0408102040800102ull, + 0x0204081020408001ull, + }; TCGv_vec t; =20 - if (vece !=3D MO_8 && have_avx512vbmi2) { - vec_gen_4(INDEX_op_x86_vpshldi_vec, type, vece, - tcgv_vec_arg(v0), tcgv_vec_arg(v1), tcgv_vec_arg(v1), im= m); - return; + if (vece =3D=3D MO_8) { + if (cpuinfo & CPUINFO_GFNI) { + gen_vgf2p8affineqb0(type, v0, v1, gf2_rol[imm]); + return; + } + } else { + if (have_avx512vbmi2) { + vec_gen_4(INDEX_op_x86_vpshldi_vec, type, vece, + tcgv_vec_arg(v0), tcgv_vec_arg(v1), + tcgv_vec_arg(v1), imm); + return; + } } =20 t =3D tcg_temp_new_vec(type); --=20 2.43.0