From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116254; cv=none; d=zohomail.com; s=zohoarc; b=ZezQLRt+2zSQbTww3Gziyg4WHkKiYFHHZAL7DzHEQVW18cRSwu8ZcOovS1MO2UgyBWa+FFoFbaByw3vTKsfBidWFRWmrTr+JUR7Rj485Y4aa0G6Pa72QEwxGwwA4HiwFCaMzp60ddn8LhX26Zrw2N8VwzWbHxJsvnjJHHwsjBWk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116254; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7v7Z+jUrMyLbMvr/H3tEiPNRxqOAGx/XOr1xzx4/+xU=; b=nztUlmTwh1midecW8Qk/MX2wKq2aN6p7SNeAV+QMTZ9/1Y/WK8GtxdefDG5bNxG1I7MPG4zBRQBZACVFaQASlZE6afzuwha12TLlRJSSUUjlBk4bddzIs1lSq/WNublShvXvcYAM0Wf1wYpr/mNj5BzVtBwVnlMz9iE6w0p6fGI= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116254212826.7988115628875; Fri, 7 Aug 2026 08:24:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPN-0000jG-5o; Fri, 07 Aug 2026 11:22:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPK-0000iG-1M for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:50 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPG-0006ho-W9 for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:49 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677CgGFC942909 for ; Fri, 7 Aug 2026 15:22:45 GMT Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fvy6hcm9f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:45 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-cb835525b13so4141263a12.1 for ; Fri, 07 Aug 2026 08:22:45 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=7v7Z+jUrMyLbMvr/H3tEiPNRxqOAGx/XOr1xzx4/+xU=; b=js L5MoOrkcX0i+yirj98CmUyFjP5FS1+X3pGsEfvppuApNPwPqFDz0ESu/zPkqK6gt hsF3JnqoKoHKEKPJNpAZVt4lPo0DWwRxRtlcdmfDKCKja9QJ4ou31uOrco+5jR9r /v8WF5sKENtG6Lgb6qOUa7rUYSQmOznmVCUXYnGrrlu9tibuDqi2ev9mHzfIlL5Y RUg6WF3oBTadKdMSOUEhh3mq+vDvKIu3GOE0ZFupxfG9UtE9/EpByZBb7lA5sBpQ +uyZVFlgddx3o+WscEGBd8ehJks8C4n3EUnlAxo/PGMzgToz9z/fV739rTkduVrN IVRAGlYRJ31E4r6GMAfA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116164; x=1786720964; darn=nongnu.org; h=content-transfer-encoding:content-type:content-type:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to:content-type; bh=7v7Z+jUrMyLbMvr/H3tEiPNRxqOAGx/XOr1xzx4/+xU=; b=WbWOYk58pjQRdSUcEb+5Ic3A1gINX+461GA0thVuKqMu+ZWgnZAEL0qRPJq5mKTYA4 R1FKYqMOOS7ko38qe1z3MxdB8bI3B3x0dScQv1VC95gG/nSXACdDfduCpXV96aQeTas9 b6zwEDPtnC0F70UwEvBJv/ia4wemVp9k8JThFDyAQYcFYmdOc36mZza8aiEBJ3K2tfCa 4jdzjdLXFsjAP0mojq4lNXK+ca5DrjxulbzWAko1ODnzL6oGFy/O+lGDesyWFlTgzPrI AzXKSaJCQEEm9p5DRnYcL7CTQvxLhd9OiuXqSzKKvObpDT7RrOsbwQwulEKH3QCz4qXr SQsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116164; x=1786720964; h=content-transfer-encoding:content-type:content-type: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 :content-type; bh=7v7Z+jUrMyLbMvr/H3tEiPNRxqOAGx/XOr1xzx4/+xU=; b=mi7b6XmVZlfXmBOkhrLOPLFoBvNblIyuCpItOdjtxDmMeVTZv9xif51809sLknaxWm Dt85OGR8HYvZnPkSaVVRrIHDtKoHGTQw32DZsKJVKmrROrTHfiOlitOAG2GjWH4sLRgt 1aUlesiILfcNRnReCXNqNoWODLmmDI7kyvo3JkNCajl43OWi3j8fFurWbL8CXMlMVhJ7 z5mV9ao5KfGqAdOqb1uaKSx7IQtdfwasjdUGPDPwVE1v+SiZdhDw/fIhGDdRuDL8ZXGc iEeyIG4tZoebm0YnqRiQhVquGky8/siSq7+8VZUIuO09lKC7LEQyeRITqr9fuaso4mMz oZLQ== X-Gm-Message-State: AOJu0Yw/CEQGCFaCoJFr4eZPN26QeeF/L2Pgk1a5HrDRPAm+TE10MEj9 6lsBy/ckWni10y8PIN4h2D24IXM6k01p+Hd3soWUDHk+AMzc0s2nqcLxjx047RT8d9Iu8t4jcJG e2raZC65ZsAU7H73TZDturtjJ19LXlw/ssTFEgL8OCh+7J51tV4YIv8CMq3f2LclTcw== X-Gm-Gg: AR+sD12I0mVaozWor2MB+uM7+XgLfUM7PA2KoneHt5n3/mGeNivhdRqNwQ90F9Ob/tE p8NEAE+fChXrvNgd0U/CUdKvqfwxywqh0ZbCNd5Q3wOWm/WyirE/rQh6tbLzEGLcZ8WmQAqkoi6 4AJBKGJW6uTbZwO6zNKSJqvDCxq6/QAmWZuh4FHA6343+8GkgCamsRg0aVGNVGEYFwSgE6ki3IV Jiaot7rUSQ6KGSCTry0SBai9ikCyYXO3OrM7/VjoUmhyiBPY9eUQiwsppyv9MHIYX9mHlGGAjXr FIXg7SFm5VxSLjsCTBZFoP1vdMChXGLRgI/swXB2K0aTbaLQ7gi9JdVY/PznFKj6UIBTsWAAdiE cL5fTc+NQbt4SLAuttycZQI1h+Db+Wk9Yxkv/i7vexNyaSWEc X-Received: by 2002:a05:6a20:1602:b0:3c3:a3f4:5485 with SMTP id adf61e73a8af0-3cbce6cb2dbmr1580185637.6.1786116164508; Fri, 07 Aug 2026 08:22:44 -0700 (PDT) X-Received: by 2002:a05:6a20:1602:b0:3c3:a3f4:5485 with SMTP id adf61e73a8af0-3cbce6cb2dbmr1580130637.6.1786116164033; Fri, 07 Aug 2026 08:22:44 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-stable@nongnu.org Subject: [PATCH v3 1/7] host-utils: fix ssub32/64_saturate return type and clamp direction Date: Fri, 7 Aug 2026 08:22:35 -0700 Message-Id: <20260807152241.1576334-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: -FQyugtuk0SJWa8m2UpybMhXQwlNAavb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX41HzZul/6jNS huqSQu9iOWb3AIr681Q5vapws2Mibm/AKyPqSu34aXOrmQL1rbUR3+A49P+UkF9PD5xo+dsG+fv ygW00g9W7HSLZimuayRcoONdWTegmkv80WaVdeTJyYeVmQd3tcUAf0qNKPX4F6SefmBmp4kh/dm R7YotBgP0TPxUQjL2wjZSPqa6hDTMyOAdDFKzfOJgkVlGn7AoLu34y8BzCYgvoq/8XQ6RM9Leb7 0I1rvQxz7BD9z6Ujp4mixabKy55Ud0D/rXPvt/nR7QxnVWBPBml7/xltk5WzrjeLJ0+mBOMhpMV gWOwPVTcLtJDTW2B86Kc5/iHmZdEziZHAdc0NGnwlOhV2AJQLaEZt+/ZIv6wt7tTn79rtnQJM4u JmKtozSkOwj0vUXOZ/5KbP1/g6+Sy7yRwbahGreuRg286pqedcG0Ip5jALwJ/2S1MVcQQON9ZRw q/RhOgcfCxbm3ytUitw== X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX5mN7skCU2BkU 2z1WP6Wp2e7Ih0wyiVv/OE2qxHG46tFcWOWqASApRWjet4FMflzrCyrhDO+3RPKOUjze3f75GNm 2WlvoDrtFRi3NO4CGEAXNMwnvhOOxD4= X-Proofpoint-ORIG-GUID: -FQyugtuk0SJWa8m2UpybMhXQwlNAavb X-Authority-Analysis: v=2.4 cv=MbpcfZ/f c=1 sm=1 tr=0 ts=6a75f845 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=69wJf7TsAAAA:8 a=kM50MvNqywxRmdRKJWUA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 a=Fg1AiH1G6rFz08G2ETeA:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116255811158500 Content-Type: text/plain; charset="utf-8" ssub32_saturate() and ssub64_saturate() were declared to return bool instead of int32_t/int64_t, and clamped to the wrong bound on overflow. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Cc: qemu-stable@nongnu.org Fixes: 16495533131 ("host-utils: Introduce signed saturation primitives") Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- include/qemu/host-utils.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h index 2e8da7fb3d0..1db9dbb138e 100644 --- a/include/qemu/host-utils.h +++ b/include/qemu/host-utils.h @@ -607,10 +607,10 @@ static inline bool umul64_overflow(uint64_t x, uint64= _t y, uint64_t *ret) } =20 /** - * sadd32_saturate - addition with saturation + * sadd32_saturate - 32-bit signed addition with saturation * @x, @y: addends * - * Computes @x + @y, and saturates rathern than truncating the result. + * Computes @x + @y, and saturates rather than truncating the result. */ static inline int32_t sadd32_saturate(int32_t x, int32_t y) { @@ -622,10 +622,10 @@ static inline int32_t sadd32_saturate(int32_t x, int3= 2_t y) } =20 /** - * sadd64_saturate - addition with saturation + * sadd64_saturate - 64-bit signed addition with saturation * @x, @y: addends * - * Computes @x + @y, and saturates rathern than truncating the result. + * Computes @x + @y, and saturates rather than truncating the result. */ static inline int64_t sadd64_saturate(int64_t x, int64_t y) { @@ -637,31 +637,31 @@ static inline int64_t sadd64_saturate(int64_t x, int6= 4_t y) } =20 /** - * ssub32_saturate - subtraction with saturation + * ssub32_saturate - 32-bit signed subtraction with saturation * @x, @y: addends * - * Computes @x + @y, and saturates rathern than truncating the result. + * Computes @x - @y, and saturates rather than truncating the result. */ -static inline bool ssub32_saturate(int32_t x, int32_t y) +static inline int32_t ssub32_saturate(int32_t x, int32_t y) { int32_t ret; if (ssub32_overflow(x, y, &ret)) { - ret =3D x < 0 ? INT32_MAX : INT32_MIN; + ret =3D x < 0 ? INT32_MIN : INT32_MAX; } return ret; } =20 /** - * ssub64_saturate - subtraction with saturation + * ssub64_saturate - 64-bit signed subtraction with saturation * @x, @y: addends * - * Computes @x + @y, and saturates rathern than truncating the result. + * Computes @x - @y, and saturates rather than truncating the result. */ -static inline bool ssub64_saturate(int64_t x, int64_t y) +static inline int64_t ssub64_saturate(int64_t x, int64_t y) { int64_t ret; if (ssub64_overflow(x, y, &ret)) { - ret =3D x < 0 ? INT64_MAX : INT64_MIN; + ret =3D x < 0 ? INT64_MIN : INT64_MAX; } return ret; } --=20 2.34.1 From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116221; cv=none; d=zohomail.com; s=zohoarc; b=FbHYmODCWnEyBVZoiVjNVD7CXlS8Iv+O6QwYiwuNj7oDiI9WkHHNZ5ejzKA0FD3kcq4XeLIX81V85YqMm6Skca8mXt9/zR6gvb/fUZtKfhbI9SspoeSZ2LO202AZ/NIuyC5hjYgYXGgj29s+KFULAdSE3W+rFxujLaEWn9lMsqY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116221; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Eci+0T8zHPk3F6A5rKuQnwGeDXozyKdsDOouumZ3uFA=; b=ZtEZJ+nG7xbmoAf6agcbbpvKDjJQJNQcYtzupSEnuW31VYxNhF5viX7vIVwk8EY2/TCqHtCxscVi/bO/WF+WWD4dDgGyZkGLSmRFOm6ut0rUXmKEnKaZX0IMhsw8ALYmdFwL6S/vGDPXUi9UjK2OIDO377NLylCk6aATATTmbjs= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116221473307.13750544921174; Fri, 7 Aug 2026 08:23:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPO-0000jw-8X; Fri, 07 Aug 2026 11:22:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPK-0000if-Ug for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:51 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPI-0006i4-F6 for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:50 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677CgL8h1294599 for ; Fri, 7 Aug 2026 15:22:47 GMT Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fvy6gvmtq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:46 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cc6dd43737so66502045ad.2 for ; Fri, 07 Aug 2026 08:22:46 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Eci+0T8zHPk3F6A5rKuQnwGeDXozyKdsDOouumZ3uFA=; b=jpf5IwIe3GngQkau Rzw36rN6Nt0G+NlDvn9wC36B3qjDRj/1uqSrZTKmz98ewdjITBiOHrafig1LBmFz SHT0aVcaS2JpCbVg97/vKWNvE3AN3Ri+QbnsnZPIwIdjlkPcBwJlgx2AuwrZstE2 vdC18GY3+nAXT3g3Wj7DB/5CpLuJPxIizF/4Kr6DFBOqS/VtB5iSju8lc566wdis Jtu02l+qCnSha+jxVbaMfz6lBaA/HYRDkPLN+r2DWCThdC/u7sc7I7r+tP+JeJKs GORVkDDHIuDsGXP9VyECgd8VuTmD/KWnXidrHaiI8/suULL1LpwBiVBjqOweL9W/ 26WiZQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116166; x=1786720966; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Eci+0T8zHPk3F6A5rKuQnwGeDXozyKdsDOouumZ3uFA=; b=YppUiZGVV3e9NExy93Duc0VUpeqy3eFDs8D054ohtncVs7WNP3l5/ibFaT+exRGNWb 4Ej8IKH2H0lNGdPvccwc+92NqYpooSE0bSBo6qOCDXFn9yaClHtj5ZqsufFZhh0Axfzv YqHN4YuOrQ3HLQA9kaBNiMMp47hQkMEdwfZWXp4FPgLb5smXUfDLiwFHDxDhl61+MN5/ eivKKqF707NksTod2FGhbTFz0NhC6oy/9UEwsCCg9ZGErHlPtbi6F3AQfitWnQ0s9E7A AR9ekKkqn9WZ4s15AAc9PKeHTz9ylEAu1P3dtEbFDkY/4EEWzFef1M2ndIfc7nJzKzTm zeeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116166; x=1786720966; h=content-transfer-encoding:content-type: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 :content-type; bh=Eci+0T8zHPk3F6A5rKuQnwGeDXozyKdsDOouumZ3uFA=; b=LqF7G7va+JNsZmw31KU76DXhXJWLEE4i/wAI8ZKtVquZH4VaHRzAw4Fq0eOLNs+d1o G1EF0uBxu8yzhtRilxRUKLeteW7t2F6hFcbljKp3jUMEYnJ7VvIVCimpdfi/cXDaKuF6 OjNkaBneAhiAp3nK3zTESXQ8SfO5Awti3zy3wu2zkNcxeX2Cmx9O1q/7RbJxbeBj7xux fBxgSYfP/R0gKVYaZj7tF54VAixSZyJOMnyjX1lLGAEfQ9lLDFWBOX3WRevIpK9Xgff8 sQYSsAOcADUj6QXnYJ6h0uOqY6Xormc/VRbnJeM5LcgxPjpesCGOg1s3KluNrH1SEiev 2Eww== X-Gm-Message-State: AOJu0YzubxqvLBXJ0utu8i1eBAou15S1N7sh5yUfCk9uMBwsh0VMtQjV +myWN4+I6YHZdhNztYyAEmzme4VdYV4LlnhbVQtfXxgVuDp8e8kqt82qxFSkVzuHB03c6ta5HkS 01VwSpuHdxnLv9AYJ57Qwqr1CjPL38djlO/WqmrMOj95cm4KPyTuIYAlqpAurvySxBA== X-Gm-Gg: AR+sD13xAPLcoYNoDFSLAln2LiLygFsJYYnqEbmPiAI/JIUaZ+bHApt9cp9Pjslx2HG 0osC0u1tVhLzt8BGqxIPuhdDsH7QY6GUz/HE4eamQFJum8Oxq858XuwRQeMYGiMPZvkr+5sOEL3 gB+uT5x4u53P4BSvBvJhCtdqoQQtwkjk7mQhy6rRLSMCp8lzpJdUxtFRQ875us1fZdQmbmVA1Xk VBXTlzF0jXMbNlm2gefooRbilmgkEamxwdpTSmsWS1KNvikmNql+ra/wdIKtasBfCrXD9jNM9OQ yz7GIpG7u7LNm/NPWRqvRsjzi4zol0LYDcLYqzkeNjUUQvJ1DYinDRwWpzIw7ohR4XmuGDYPo1r 4cDKrhHfSh9yvmPNgR0IMJ7+XD78RngQ/Y7SsHUDljIIbYdM3 X-Received: by 2002:a17:902:da87:b0:2cf:4c0f:5129 with SMTP id d9443c01a7336-2d0caa03fcfmr238091795ad.17.1786116165905; Fri, 07 Aug 2026 08:22:45 -0700 (PDT) X-Received: by 2002:a17:902:da87:b0:2cf:4c0f:5129 with SMTP id d9443c01a7336-2d0caa03fcfmr238091325ad.17.1786116165442; Fri, 07 Aug 2026 08:22:45 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier Subject: [PATCH v3 2/7] target/hexagon: add GVec overrides for HVX saturating add/sub Date: Fri, 7 Aug 2026 08:22:36 -0700 Message-Id: <20260807152241.1576334-3-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=EYH4hvmC c=1 sm=1 tr=0 ts=6a75f846 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=0_kjDyPZ7ljX0vQYBzoA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: serVxrBqZC9LJLRP50xjT36qRUGXHb0x X-Proofpoint-GUID: serVxrBqZC9LJLRP50xjT36qRUGXHb0x X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX2ZgESF2g6Z9Z M1hJBKQXrHxCmgckv+/iE/TFCJ8U07CHTiISPMazHPMEwfnQJ3Fsygn5f2+MsmO6gLQkFHYcg3F EuOf+2cPyT25vmJdXboAUPPwG6qWbK8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfXzBRrHQrdO/Wv IiyqEGuSujR4NswbNBHWnPd5nQZxnwqAOeJF0GkqgBu5+do7BLMDNJpdeiC+kNV6oFrTrqIpmEY 3ibfMBJKQE0JVcpXPt8f9B+rrPWfymvjyFFDMFHteXeHg22zu4xKWZaU6nFQ8L2pmqZotgqqwas YTgWf/XTzIWnMq0Q1FGcsYkxzYc8yPOdD9OuSOLJCSsv3d03J9JD/91vuP3jzI/oT1Yq9VmqHM4 wzJxAK1pDpFmXWawtm2gpQeKLMqQGQRgT0YFRKqkjBWmkRRZSjh/dUfFf2K9DX6sTI/sSJymEQ+ dVjmmWabT2YsZsCIS47KvNuUMDVFyZNNJ+5Q9BaUrs5CCSzIIp3y6OcsmMheqwzGrtydavYMXVU DAx/VAX5en/6R8Us2meIisFSXWO48cq3uPIZ0AVsjdUHbClBApRodKVZnraFFHwPwUz58yIyyJK VJ4axR14C125YTkrSIw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116223816158500 Reviewed-by: Marco Liebel Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_hvx.h | 87 ++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/target/hexagon/gen_tcg_hvx.h b/target/hexagon/gen_tcg_hvx.h index 0da64d467e6..289ce899598 100644 --- a/target/hexagon/gen_tcg_hvx.h +++ b/target/hexagon/gen_tcg_hvx.h @@ -234,6 +234,93 @@ static inline void assert_vhist_tmp(DisasContext *ctx) tcg_gen_gvec_sub(MO_32, VddV_off, VuuV_off, VvvV_off, \ sizeof(MMVector) * 2, sizeof(MMVector) * 2) =20 +#define fGEN_TCG_V6_vaddbsat(SHORTCODE) \ + tcg_gen_gvec_ssadd(MO_8, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vaddhsat(SHORTCODE) \ + tcg_gen_gvec_ssadd(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vaddwsat(SHORTCODE) \ + tcg_gen_gvec_ssadd(MO_32, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vaddubsat(SHORTCODE) \ + tcg_gen_gvec_usadd(MO_8, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vadduhsat(SHORTCODE) \ + tcg_gen_gvec_usadd(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vadduwsat(SHORTCODE) \ + tcg_gen_gvec_usadd(MO_32, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_PAIR_ADDSUB(OP, VECE, DST, SRC_A, SRC_B) \ + tcg_gen_gvec_##OP(VECE, DST, SRC_A, SRC_B, \ + 2 * VECTOR_SIZE_BYTE, 2 * VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vaddbsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(ssadd, MO_8, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vaddhsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(ssadd, MO_16, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vaddwsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(ssadd, MO_32, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vaddubsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(usadd, MO_8, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vadduhsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(usadd, MO_16, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vadduwsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(usadd, MO_32, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vsubbsat(SHORTCODE) \ + tcg_gen_gvec_sssub(MO_8, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vsubhsat(SHORTCODE) \ + tcg_gen_gvec_sssub(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vsubwsat(SHORTCODE) \ + tcg_gen_gvec_sssub(MO_32, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vsububsat(SHORTCODE) \ + tcg_gen_gvec_ussub(MO_8, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vsubuhsat(SHORTCODE) \ + tcg_gen_gvec_ussub(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vsubuwsat(SHORTCODE) \ + tcg_gen_gvec_ussub(MO_32, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vsubbsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(sssub, MO_8, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vsubhsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(sssub, MO_16, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vsubwsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(sssub, MO_32, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vsububsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(ussub, MO_8, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vsubuhsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(ussub, MO_16, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vsubuwsat_dv(SHORTCODE) \ + fGEN_TCG_PAIR_ADDSUB(ussub, MO_32, VddV_off, VuuV_off, VvvV_off) /* Vector shift right - various forms */ #define fGEN_TCG_V6_vasrh(SHORTCODE) \ do { \ --=20 2.34.1 From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116237; cv=none; d=zohomail.com; s=zohoarc; b=Pm/pNvU37EEXsyGktNpcn4w30x2yUW7l2Zh3bawFoEnTZ+vRB3PFxRxBSiz5snAuowdizKRGMCNprtqJ+V2M6DLpRzu7A8vsRXmvhsdAN9IvAoKbicPpCn86pmvbHyRpC7RssBnEKLNULxd81WpuBI0206xOKyRA6O+hsdnA0Iw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116237; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wxkpgjylMTfm0bOPsQ5my6nq6XGTWQibV0pGKhV4RwI=; b=Ku55vY9ouqXouLwjv8lr7WGCKoWom8FUhvOQduB+AtYiWj3/uIldKeKoA46Da9Okzkz++O3z8LLluUrnpfGUTK5OTs8qjvIh4q0AR4qluhUQLo6btIARqVhK3jcNALQ1o1mxoQYkV9TdZP+p+RrKglAt5RK/uE1a87iGYZQ7zms= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116237705168.57808466455697; Fri, 7 Aug 2026 08:23:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPN-0000jr-QW; Fri, 07 Aug 2026 11:22:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPL-0000in-9m for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:51 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPJ-0006iI-76 for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:51 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677Cg8qd989168 for ; Fri, 7 Aug 2026 15:22:48 GMT Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwctp9bdk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:48 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38dd87656d3so4101970a91.2 for ; Fri, 07 Aug 2026 08:22:48 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= wxkpgjylMTfm0bOPsQ5my6nq6XGTWQibV0pGKhV4RwI=; b=nR/V7oznMugq5DrI RmMkdyjfYIgTbO9eu2o53cUL1FQUuLFHn6VRHFZyOh/zIX2PdheZPqHOV27akGaN 90VAm8ZJUf4zbNSFuuW2vxFVjy9Irx6kcqyKsvnPQcHTuUQk3adtviv4ZT4TgMYF mreeO9svyyK8TtTG/9D7QECJad4S5g1NWt5Ht9cG0Ou1DX+rwMqbNMz5c/o7Suc3 BUG2Nk1H5HEbna23ug3G+jbwwNWSxqWl8QXuU7IxEbHLxlsU047QDejptGsS5cvW NJpoXlPUcHsbza4uP2Z6sqs/U99FDBXDrf1i+K6Q6TRFODsXGj7ULLt+R3EeSv0p hGHfZA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116167; x=1786720967; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=wxkpgjylMTfm0bOPsQ5my6nq6XGTWQibV0pGKhV4RwI=; b=jeJDqHDHMWol6npPfVVXM0aGbyZwquL/UAej7vxZqShv3Za01gKW3Ev8Zh8PrDfx5h d4TAAeSHbcWRaU2VnDskjWo2+ImU7Hl++CxTFE1f9OLHat3Asq4qcWnfvw8GqpWvf6Ce jgyVg8/BresuzGoVG98aQfbF/eGFwnoOoyaOks22GROc3+mBjqZeSinX+fiTYmxVCV0f nryEubnH1OiNPiGVAFGMg7F36EysqHQEjjxZOyt0SD57lgyb80jXZzgozlmVxUjLTqv/ daQy9YFM7P6oEWP7Rm3MdZq40VyuBw+mQojrvToq0TaSZ+jWz+4kqv8u87ZlyqUDnrWu qKnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116167; x=1786720967; h=content-transfer-encoding:content-type: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 :content-type; bh=wxkpgjylMTfm0bOPsQ5my6nq6XGTWQibV0pGKhV4RwI=; b=Xh8Te83l5ggwVMaPnb7oVNsyc4c/BoRxwPAegOzpttw0LZ2CwiKsAruVb1Sk1k9Eq9 vVRqcbx4BYZVP2PQWEZvH7nZ7yd6RzL5KMavFy4bQJR0fPujdl4++GgmFHiBcih56SIC fE50/tRC9qZ76AnuUsIsp/cyNqnkmrwIKxpf9H9kMOCB9ekGp26giyrEHrknPK0Iz3wM OV0vXxJsZWS2lP1U15PaXkJCEybky5AmG6lPLHixd5TvkUJNlISZ9PEhVQRI8uBTtGrq sbhE+zdhPmd5nKrpE2OTFz1Pqarp5CsGs4xje5WS5wFithvPjFInXTKdDYeU9BHQfw61 AkLQ== X-Gm-Message-State: AOJu0YzO8Fwt99kB2rFjW3owNJdgHGIssSY0ehA0NQAvhL6yGWKvdcSp PXOAxm8+WZgd7naV56su8XJkHpk0Rb2TRjwJRP1DIZC65EHPcf0JESRq47mOMzUGxZyjW4l9TPl gQX03WPs+rv4+T332SQkBPEDbmgsVILbARencYRW9dxYnUJN1oYkx6vdOag0r7gQ4VA== X-Gm-Gg: AR+sD131p6QrGP2sFQ1vNRNcxf9usZ41ARpaXTWdZ1S+GUMRsuJZk5x7GkABcsYbqdX oNT8WxYh2jcKOZdTtOUIEbOZNHSUeLhIzcTquQ2cchFG4kPhOD5f13IkthqcGW0dIXQ/aDV1oAg wS5627kSq2Plu53K5ZLhxHNkojcoJWvnGAwX/IPPXNBoHv4O3GPeT5JPiMNI0yvLddnov3blT/o SG1vAJWIgmms2pQNzPZKZUCauSUL2tXn8s1Xgtqe2T5jy34JbOo/R6UhodTtwlq9nrreoWT/X0O 9vNpqrOCDhfQ7HXG43m5ERM+1IyiSPK6di6UfhAsaXzVSPdQANUTuHAH9BjTIGrfCe+2NqxFjR2 rzi4tkxtQFTUwb1+KLrJ1gg8zLzOwnPa8FoOFzQJrhr7Vsy9z X-Received: by 2002:a17:90b:58e5:b0:37f:eafd:3505 with SMTP id 98e67ed59e1d1-392823362e7mr685025a91.6.1786116167234; Fri, 07 Aug 2026 08:22:47 -0700 (PDT) X-Received: by 2002:a17:90b:58e5:b0:37f:eafd:3505 with SMTP id 98e67ed59e1d1-392823362e7mr684969a91.6.1786116166811; Fri, 07 Aug 2026 08:22:46 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier Subject: [PATCH v3 3/7] target/hexagon: add GVec override for HVX vmpyih multiply Date: Fri, 7 Aug 2026 08:22:37 -0700 Message-Id: <20260807152241.1576334-4-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=Fp01OWrq c=1 sm=1 tr=0 ts=6a75f848 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=BRFeZrn0LRIrCjf-XoEA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: uBQDPGfqzdQgUAHjifOSWfnngjIhcBxP X-Proofpoint-ORIG-GUID: uBQDPGfqzdQgUAHjifOSWfnngjIhcBxP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX8axiSqdfi69N 2XzWJKKxDbat85G6ArsN53Kx4AlOtm2noN97T8ov5CiR3AnpRvSC8SXmAvi+jjxpXj+I8oi6uNw UIpb9OTvmx9ii4NB4OBPUno/JpOoqikjbVYEEKedyjSEyPMk3LqioK/fhW6gwAFsUvei2O/ZXn+ oj0kYHlMU8/u9NVzPTFKyhgYzijTrfrgOKs8vLT5JPQeto3iNWKEdErPpPkPOBa2aiG8htcRjPf EyAbY6p6yhsAd9GFyegTKWp7w31k+rQ7sEhi0nDjeVHbZN3+FE/32Dx39FGuXq0ANWtfAE8dVxz xwBNZGMlfwPAhuHdnA5E0BILaGVZWpnMfZd+/AIJBuvKv26oHSSmMyAJVF9HLw87niRt+w1i8NE Mg7r4P8vaXCuvLvIJpiVdi3nnrqVx/4hU5/KAeZk2KzMHKyatxO6p/7PLQlPnYMt86YgNIxThvp l2v0tX+jwnHSew1Jqfg== X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX3yMu+Se0pysg +bKYNe2mu6b+8HV2MaSuHDmqHaUycVWgOUrDwDZZ/tOG99tu3xDWMIDFv5Z15cEmeh/M2iNCKv9 cQ30o5F+4y55rT+A5lk5tKLKg6lnQqs= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 clxscore=1015 adultscore=0 impostorscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116239710158500 Reviewed-by: Marco Liebel Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_hvx.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/hexagon/gen_tcg_hvx.h b/target/hexagon/gen_tcg_hvx.h index 289ce899598..7e5372a7642 100644 --- a/target/hexagon/gen_tcg_hvx.h +++ b/target/hexagon/gen_tcg_hvx.h @@ -321,6 +321,11 @@ static inline void assert_vhist_tmp(DisasContext *ctx) =20 #define fGEN_TCG_V6_vsubuwsat_dv(SHORTCODE) \ fGEN_TCG_PAIR_ADDSUB(ussub, MO_32, VddV_off, VuuV_off, VvvV_off) + +#define fGEN_TCG_V6_vmpyih(SHORTCODE) \ + tcg_gen_gvec_mul(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + /* Vector shift right - various forms */ #define fGEN_TCG_V6_vasrh(SHORTCODE) \ do { \ --=20 2.34.1 From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116230; cv=none; d=zohomail.com; s=zohoarc; b=evuCy3QuCoxaHXOgwLd6IEhNgt5bBtb8yoz5ks2Ntqgcyl6C+C39kFyUd8iZjgnVtLRpNDgiwnr0KQSZSrhnUaZUycgjz7fje4gnPXmF1ssNoyOmwua2UA6P+rX4mPtyUFSgz1miw4PazAaJ79NuQoFwlFaSYdvPu+7qFEmTw3I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116230; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=T5ZFHflRXIT9Gf0jH/0/rRkj1bJDk+0qeDsihANNZCQ=; b=AoyM0cM0INOMbltzCP7bG08Q61kMnhDYtmNq1q0YRAoLTgNkxVd20I3qLXS5ri2aIOIoeEfPphKvnOa+AHVo9NNvd/+VGTuiJrYY55rT5HfgbwFa2N+b2TGvy6erA12hy4UKKUW/UetyZ/EVeKs+KdTqO5GToVhoKx0jgsMItdM= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116230490129.58724039517358; Fri, 7 Aug 2026 08:23:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPO-0000kK-Fk; Fri, 07 Aug 2026 11:22:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPM-0000j1-IQ for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:52 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPK-0006ib-Mw for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:52 -0400 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677CgGFD942909 for ; Fri, 7 Aug 2026 15:22:49 GMT Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fvy6hcm9q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:49 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cc86a9ef97so59688815ad.3 for ; Fri, 07 Aug 2026 08:22:49 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= T5ZFHflRXIT9Gf0jH/0/rRkj1bJDk+0qeDsihANNZCQ=; b=WmYpWCaubcV0oxg0 A06Z/lrlSSahOwD6SFTl4llzBw+zffAuu6shAaamHWkXfxO1n+Fe6iSQaPtpFwx+ oUum1AF+CflzhRmYvh4kb2QzorB+kp2ybbv31E0J/06zr0Qpv7K34BEyZJScsDmn Y7oet1bYvF2LY2Q+eAm91ehnXjOFwk7wt0EIZZ+YbjIVLMm4TWrHgTPvKRquj0gQ zdMlsPgjdXxjtnSnj1cc7jL6WMsSU029wMLfIyLquHuAQgiyoUOWcuEjOi5Jk418 u2GjQzObXII5lDCqZ8WbUrm8wa2vZ9gKp2+OQqPdrZK5ynIQDP8RpmV7Z8sq5kLt PFmY2Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116169; x=1786720969; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=T5ZFHflRXIT9Gf0jH/0/rRkj1bJDk+0qeDsihANNZCQ=; b=iOpiBLFgI54i507zoA1npbrjMqprqf/AAIyqaZ41U4WjsjQCR75Hej6COSgGVQaRZy uA6jIpaGLt95BFyVnYl6PUkSXbu1nWskZonKmc0DihJuNNoSysS2OR+VHB6FQYcq4By0 9dJeoYPjNnMV5NTZS08i9aGVa5XIHOYSPuYuK/hKSPRu4379Kvva9Z4jOHuQDS3YBcP3 QLa8tM7lH54+OawUY8URehL7VDGF1AHl9ICnZzWHKL+423+ih9AZfpa7VFrwkm6lO3W4 CyRiqOsFgeaM1kk5K84Xj4VYCbeohUWgmh0CSZDheY2hxOV630yMzxlWcoKtRJ8nBT6L FStg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116169; x=1786720969; h=content-transfer-encoding:content-type: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 :content-type; bh=T5ZFHflRXIT9Gf0jH/0/rRkj1bJDk+0qeDsihANNZCQ=; b=FNiUb/wMqZq+SeQ9PJStr2D6lWjwes1luFoce//xEMZZqm5mUTYp9h3KE9zKNs2BCN ws7jOHSQ5iAmSkLAeXNPeFX2dcy2dbJN/NOZgi+EEFqpqgIzNOPYJ1D7NZavvN1/Osoo kOPqrSDJriNYzPsQLCBB0RekeIWFJRtqKqn34PqzMm9LnPfgFoS7+soPZ9HcdTwKrpOl DrJIN5YZeA/zUHwIX0M7EE6SJxkG4mfn7Z/fHj6OAr2HtE0lMBd9xwARyygsJfib7qgj FWwV5gux2gvZ1M0HpB0tS1oz0CZgVs3XrnLhDZ4e8/0R6WOCVZfzX2ICUh5/bDk5qSpk d9bQ== X-Gm-Message-State: AOJu0Yy9sQL+1lDusPic+ygKaMEqQj8oA3e8to1UG2yu0T23SEtE7/Eq gvCsb/HU7EXGUJzqE/VMyEstbUOBAXHEf6Eczaqbykn3+n7KL/vSVsm2tbKISpi6oR1FwrvdJUx s5ok3BTBwKLw2sR1hu+QbPJNTo73zI1kOg131e3REEw0YXSDX2hODrDzoSIkNsu729A== X-Gm-Gg: AR+sD10Y7TIKhFH9ePhHgASIJvMLNaw0lMiAwxDfMluZfJuKrVPmZl60ZSa0v0QGhQq uYb7fttpRMR+2YuCkQH62RO1bYtUxwIqOUYAq9LY3ISM2cSkNz2u1QBut2DMh6wWeQblHo9w2pO AhcB+FLhSIBTbECWuc4M1oDt/keAFKOQnW3hDNZGwTbvGTUXRKbYl4gzZVVBkpUef2oTba/0LxY 5YdNNC94W73y+taVw71d4rMGwIItPF1LJKiVXMtbEPq6ij1rWKojiKm/qikvtPp/cHrLGL/XsYh QtqPwsj6ixKEbG4YHlVUV+KZnRXV93jE7dSyVHJ0EQzu9uAazVOjFhA+9swD9qWJZy46WT0TrxQ SQJenbtVrfXelHAUpVniuTzaS2VLa8nPvWXEHO2DK10ahVFAV X-Received: by 2002:a17:902:ecc1:b0:2c9:fb11:1bf4 with SMTP id d9443c01a7336-2d0ca7b5436mr239898865ad.7.1786116168579; Fri, 07 Aug 2026 08:22:48 -0700 (PDT) X-Received: by 2002:a17:902:ecc1:b0:2c9:fb11:1bf4 with SMTP id d9443c01a7336-2d0ca7b5436mr239898125ad.7.1786116167984; Fri, 07 Aug 2026 08:22:47 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier Subject: [PATCH v3 4/7] target/hexagon: add GVec overrides for HVX absolute difference Date: Fri, 7 Aug 2026 08:22:38 -0700 Message-Id: <20260807152241.1576334-5-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: FYbdB5SQAamDPaubYgcVPMUDjEJwD-dM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX4cJn/GHCv9eF 3PCpodEWEvjq883Y1Yf5u6fv6hnrltdZCQwpreJTDl0SOJ3X0eOLzQ0kNaBgmbmxnHq0HqKzQ7J ElA7Yo052q6hoprUSobtKJhXgHxfBxAS2KZv6IzEu8NkZ3clYK7hRb8jN0H18JfOpxZlGQLZeEj u7sLX6XJ4s1+gF17vEvZVZmedNCdcqAY6R2bPB4dIldYgrZ2EcUuZIxce7Q1wF9LqP6IPD5vPsg lrP0UZlx1CbIdYVV5+zN5LVDPPYsJEocdgVRfihmY/KfynP2QPAYK6eKtwSYsStE5prxFBkToPT 9yroM5AbmHw7+qK7bqTjAia0OytXeMRrwCZYK1fDsZd+xwY+YoYQgoAQcdJlWkAxo0rd3ANmeBg U/xL8FOsTjVYCbCXkbIxoO/Bd6UnfW00nJrURnRAcaRX7/KZb9ydpbp17UMMD0MdOHmsFys0ctp kGck4aY6etAo845VGXg== X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfXwzNKP1wL6C8x lxUYK7UR7yk69wqOcSlpHN/VWkrZ+5exYs24HJM5w4je/WIzYj8YZD4FSfNmsVMH51lZDOcTtpu /cytgPgqTNRODwZ8QfDLkayCP8PgWL8= X-Proofpoint-ORIG-GUID: FYbdB5SQAamDPaubYgcVPMUDjEJwD-dM X-Authority-Analysis: v=2.4 cv=MbpcfZ/f c=1 sm=1 tr=0 ts=6a75f849 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=xMHsQAoagl5WqZfLrQIA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116231692158500 Reviewed-by: Marco Liebel Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_hvx.h | 16 +++++++++ target/hexagon/genptr.h | 4 +++ target/hexagon/helper.h | 5 +++ target/hexagon/genptr.c | 70 ++++++++++++++++++++++++++++++++++++ target/hexagon/op_helper.c | 21 +++++++++++ 5 files changed, 116 insertions(+) diff --git a/target/hexagon/gen_tcg_hvx.h b/target/hexagon/gen_tcg_hvx.h index 7e5372a7642..cbf84a8caee 100644 --- a/target/hexagon/gen_tcg_hvx.h +++ b/target/hexagon/gen_tcg_hvx.h @@ -326,6 +326,22 @@ static inline void assert_vhist_tmp(DisasContext *ctx) tcg_gen_gvec_mul(MO_16, VdV_off, VuV_off, VvV_off, \ VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) =20 +#define fGEN_TCG_V6_vabsdiffub(SHORTCODE) \ + gen_gvec_uabsdiff(MO_8, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vabsdiffuh(SHORTCODE) \ + gen_gvec_uabsdiff(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vabsdiffh(SHORTCODE) \ + gen_gvec_sabsdiff(MO_16, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + +#define fGEN_TCG_V6_vabsdiffw(SHORTCODE) \ + gen_gvec_sabsdiff(MO_32, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) + /* Vector shift right - various forms */ #define fGEN_TCG_V6_vasrh(SHORTCODE) \ do { \ diff --git a/target/hexagon/genptr.h b/target/hexagon/genptr.h index 45ee038ca94..172d5cff3af 100644 --- a/target/hexagon/genptr.h +++ b/target/hexagon/genptr.h @@ -58,6 +58,10 @@ TCGv gen_get_half(TCGv result, int N, TCGv src, bool sig= n); void gen_set_half(int N, TCGv result, TCGv src); void gen_set_half_i64(int N, TCGv_i64 result, TCGv src); void probe_noshuf_load(TCGv va, int s, int mi); +void gen_gvec_sabsdiff(unsigned vece, uint32_t dofs, uint32_t aofs, + uint32_t bofs, uint32_t oprsz, uint32_t maxsz); +void gen_gvec_uabsdiff(unsigned vece, uint32_t dofs, uint32_t aofs, + uint32_t bofs, uint32_t oprsz, uint32_t maxsz); =20 extern const target_ulong reg_immut_masks[TOTAL_PER_THREAD_REGS]; =20 diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 033e5619d6b..78dc28ca9e5 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -108,6 +108,11 @@ DEF_HELPER_2(probe_pkt_scalar_store_s0, void, env, int) DEF_HELPER_2(probe_hvx_stores, void, env, int) DEF_HELPER_2(probe_pkt_scalar_hvx_stores, void, env, int) =20 +DEF_HELPER_FLAGS_4(gvec_sabsdiff_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) +DEF_HELPER_FLAGS_4(gvec_sabsdiff_w, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) +DEF_HELPER_FLAGS_4(gvec_uabsdiff_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) +DEF_HELPER_FLAGS_4(gvec_uabsdiff_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) + #if !defined(CONFIG_USER_ONLY) DEF_HELPER_3(raise_stack_overflow, void, env, i32, i32) DEF_HELPER_2(swi, void, env, i32) diff --git a/target/hexagon/genptr.c b/target/hexagon/genptr.c index 3f310377097..849c8b7c403 100644 --- a/target/hexagon/genptr.c +++ b/target/hexagon/genptr.c @@ -37,6 +37,76 @@ =20 #include "genptr.h" =20 +static void gen_sabsdiff_i32(TCGv_i32 d, TCGv_i32 a, TCGv_i32 b) +{ + TCGv_i32 t =3D tcg_temp_new_i32(); + + tcg_gen_sub_i32(t, a, b); + tcg_gen_sub_i32(d, b, a); + tcg_gen_movcond_i32(TCG_COND_LT, d, a, b, d, t); +} + +static void gen_sabsdiff_vec(unsigned vece, TCGv_vec d, TCGv_vec a, TCGv_v= ec b) +{ + TCGv_vec t =3D tcg_temp_new_vec_matching(d); + + tcg_gen_smin_vec(vece, t, a, b); + tcg_gen_smax_vec(vece, d, a, b); + tcg_gen_sub_vec(vece, d, d, t); +} + +void gen_gvec_sabsdiff(unsigned vece, uint32_t dofs, uint32_t aofs, + uint32_t bofs, uint32_t oprsz, uint32_t maxsz) +{ + static const TCGOpcode vecop_list[] =3D { + INDEX_op_sub_vec, INDEX_op_smin_vec, INDEX_op_smax_vec, 0 + }; + static const GVecGen3 ops[4] =3D { + [MO_16] =3D { .fniv =3D gen_sabsdiff_vec, + .fno =3D gen_helper_gvec_sabsdiff_h, + .opt_opc =3D vecop_list, + .vece =3D MO_16 }, + [MO_32] =3D { .fni4 =3D gen_sabsdiff_i32, + .fniv =3D gen_sabsdiff_vec, + .fno =3D gen_helper_gvec_sabsdiff_w, + .opt_opc =3D vecop_list, + .vece =3D MO_32 }, + }; + + tcg_debug_assert(vece =3D=3D MO_16 || vece =3D=3D MO_32); + tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &ops[vece]); +} + +static void gen_uabsdiff_vec(unsigned vece, TCGv_vec d, TCGv_vec a, TCGv_v= ec b) +{ + TCGv_vec t =3D tcg_temp_new_vec_matching(d); + + tcg_gen_umin_vec(vece, t, a, b); + tcg_gen_umax_vec(vece, d, a, b); + tcg_gen_sub_vec(vece, d, d, t); +} + +void gen_gvec_uabsdiff(unsigned vece, uint32_t dofs, uint32_t aofs, + uint32_t bofs, uint32_t oprsz, uint32_t maxsz) +{ + static const TCGOpcode vecop_list[] =3D { + INDEX_op_sub_vec, INDEX_op_umin_vec, INDEX_op_umax_vec, 0 + }; + static const GVecGen3 ops[4] =3D { + [MO_8] =3D { .fniv =3D gen_uabsdiff_vec, + .fno =3D gen_helper_gvec_uabsdiff_b, + .opt_opc =3D vecop_list, + .vece =3D MO_8 }, + [MO_16] =3D { .fniv =3D gen_uabsdiff_vec, + .fno =3D gen_helper_gvec_uabsdiff_h, + .opt_opc =3D vecop_list, + .vece =3D MO_16 }, + }; + + tcg_debug_assert(vece =3D=3D MO_8 || vece =3D=3D MO_16); + tcg_gen_gvec_3(dofs, aofs, bofs, oprsz, maxsz, &ops[vece]); +} + TCGv gen_read_reg(TCGv result, int num) { tcg_gen_mov_tl(result, hex_gpr[num]); diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 3ce223caba3..f0574dae5ad 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -35,6 +35,7 @@ #include "mmvec/macros.h" #include "op_helper.h" #include "cpu_helper.h" +#include "tcg/tcg-gvec-desc.h" #include "translate.h" #ifndef CONFIG_USER_ONLY #include "hw/hexagon/hexagon_globalreg.h" @@ -1947,3 +1948,23 @@ void HELPER(pending_interrupt)(CPUHexagonState *env) printf("ERROR: bogus helper: " #tag "\n") =20 #include "helper_funcs_generated.c.inc" + +#define DO_ABSDIFF(NAME, TYPE, UTYPE) \ +void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc) \ +{ \ + intptr_t i, oprsz =3D simd_oprsz(desc); \ + UTYPE *d =3D vd; \ + TYPE *n =3D vn, *m =3D vm; \ + \ + for (i =3D 0; i < oprsz / sizeof(TYPE); i++) { \ + d[i] =3D n[i] < m[i] ? (UTYPE)m[i] - (UTYPE)n[i] \ + : (UTYPE)n[i] - (UTYPE)m[i]; \ + } \ +} + +DO_ABSDIFF(gvec_sabsdiff_h, int16_t, uint16_t) +DO_ABSDIFF(gvec_sabsdiff_w, int32_t, uint32_t) +DO_ABSDIFF(gvec_uabsdiff_b, uint8_t, uint8_t) +DO_ABSDIFF(gvec_uabsdiff_h, uint16_t, uint16_t) + +#undef DO_ABSDIFF --=20 2.34.1 From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116242; cv=none; d=zohomail.com; s=zohoarc; b=kZN6wy7bo1ojGGOVOE00mjhAaXyrK9n2lig7Fo/VjKJPBMIa+uji7Lw5+1zYP8cyOhDGLSCMf7BfSgy3oBd6OvjefoCRGmNvYAF8sI94lf7GWyBEBHVd4V+ivCI7WqhTDtpO081OpilLbso8yptGvPvO+oVupJLPlFabLlDt3/4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116242; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FLXr4jKptCw9JudIGFNgD3FXGaZMdW/1soL9LsSg2Tg=; b=gubnnRkueqpchgsJbA/3d6fBOAO1d8ySEG6fNFXaBIeu13iRVRvRxMrqqu9uoeDBkyyBfl3Cw6ix3W+VsG+ikN0ncH8KtAoOvXmaSDhO/hzbpmcEl3MPYpDkEVM/7c1IeFTnbjAe9IU9LxK3xGMpdOWBcP8345BcFoAPwaE216M= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116242448829.5114669075544; Fri, 7 Aug 2026 08:24:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPO-0000kX-Lm; Fri, 07 Aug 2026 11:22:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPN-0000jk-J2 for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:53 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPM-0006j6-0z for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:53 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677DeDPp1434692 for ; Fri, 7 Aug 2026 15:22:51 GMT Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwgewge63-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:50 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38ecc48b3c2so5079220a91.1 for ; Fri, 07 Aug 2026 08:22:50 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= FLXr4jKptCw9JudIGFNgD3FXGaZMdW/1soL9LsSg2Tg=; b=pF/UZcJKSTIN+xKV YmKTcPhHlaataCNjJJO5ZGPzkfi2uyRq155aggetiZbHGTKSH4P63tAVeC5Ap5+h pGD8FxiAcHi5qbZ6J3cBvQcgNFEgjMrutOfGahoWeY94wy5Ph0/Bq7pdkACGQIEc +W+WF+NecashN3NCiMHEhjRJR01RqWGSolmTjUQYmOWVqMDnb+9PP5ZpazAhYXdP 3IWnW/GvtIsETVmklYnlArPkVdbIVymjSkXWG/mYuGNLfAHhH1HG5ETWjY6EZJYX FFnA8Vz7rpzcqLh92phb7GYo1jOGP7/AirYmfEm1J2LXKMQnM+aSAlIPOkmrVz6w w/+Abw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116170; x=1786720970; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=FLXr4jKptCw9JudIGFNgD3FXGaZMdW/1soL9LsSg2Tg=; b=jg+r1JgNIXNYBFg6J5/VhI8nlHXX0NlUbVA0LcPQnVBE+uZdg2UT5kr6xTeQVnXjtl 6OVG82L5KEkY5NRnVQrM5cKbhd8XGrPK7CunZl4WuzWP/wzWr2f2wSVv2nLzPv5ieZKk vZ2XiPFJP8FMjZ8Ro4s7POkZDLAkVL3xs1tHHby38NwkKqhcW1hrjprPbg/Kn25uiOdM xPfoROJvUAbXxrtNFkdZkDB1Knbt2+PK33wQXLacTILVehQvdvnaMApgEDtJ2DjmkSNK YWre5MKbVpJtaZkyxxVSvH8KkVE88LjN8bmvvxFkzvCpxEniXIQQLrEHcTCckCzI6qu6 Z/Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116170; x=1786720970; h=content-transfer-encoding:content-type: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 :content-type; bh=FLXr4jKptCw9JudIGFNgD3FXGaZMdW/1soL9LsSg2Tg=; b=HVAoqjKFkjGSJeZvu9W+OHkbqzUd/dqaLBKvxY3GEDA3pxItUMs0eeZIdwowdPVS2F kIcRMdc9Ex1FwIDlbZhoXG1KGpVuCd3x0BlO4qlt6vpYG74EmOCbF39fjDlbAtQdx28j 3152gIWiFIw3AqBELyD1ZZhpeIm6YCiOFYYHUeOKU1ERp4Nq02RS63OTzJ3pB1sQTMar k1YYKepn7LoJHlcFXirHqL23bv8fvk3q7JOt5nON61T+G3M9vCqPaNbrtVm9A8p0jJ6t A85hlv9/+lYfzaDqj0v3eNjpWhd7kc8ga2Daffv6ZD8THC7bJWBYFn4tyDPE7ZvFW3XK doiA== X-Gm-Message-State: AOJu0YyPhgvIH25g50mMj0BqWeFIenXDWT1WaBK/dPLfVCbInEMnr+BE T8om/Vns/KDheca1ql2jb00Vka+FaSCdUIS7g4iV3gMX4n1jMi/S/j1Fyut+pAoFtaRRFqcggID y97RhMS2xUJgzScVQuamo2/rPWJCHF9xV29f8WYLikhSZrRkccD9Z/anu74Kb+fV5GA== X-Gm-Gg: AR+sD13+RFOKYxBC0I443dsDoUT3t0a2tQfDKb7W3zFT/uOYpF/HfqlU7mccyLCnS8o 3UFv4Jyz2gWygpbFlcvZjxS/0Mp92lkqTbi5Ig+AQsSL6Yfa+CxvQJD9nYFxa2COMsca3b3zfZ/ xTKALYNSCNlUhir/VbwgDuKacq2ECsaCLaxQxNpRWsX6uevsnRGGZENKvoLOI0gmpIenhZaxG6K x+qZjoq9xt7i4xtOZEdzfOyHYfvT+KbQ1Gmelx0Wsx+G8LcEpd64fL7GgeqaWBbV8V3smf/ZTz2 FI0csQDlEVaqXuAUJqY3w9it4MHpSRTZ1l7ZuN1xXKpJWsj6aJtqdUlLC+ivYweF0K2bft/IKvd ybmRG5MUMi7cvkUSY3RuKKMV82wK8Mlxj8t3hMFtCxUkYczJ3 X-Received: by 2002:a17:90b:4c84:b0:381:c500:b0d1 with SMTP id 98e67ed59e1d1-39282554a40mr423184a91.20.1786116169928; Fri, 07 Aug 2026 08:22:49 -0700 (PDT) X-Received: by 2002:a17:90b:4c84:b0:381:c500:b0d1 with SMTP id 98e67ed59e1d1-39282554a40mr423143a91.20.1786116169378; Fri, 07 Aug 2026 08:22:49 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier Subject: [PATCH v3 5/7] target/hexagon: add GVec overrides for HVX vector average Date: Fri, 7 Aug 2026 08:22:39 -0700 Message-Id: <20260807152241.1576334-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX3eTS5LkrO+w8 TPhOdWa3EWf+03e2yJNEfMhccrTmPECabM/IfsLLHt2GiyWH/xpWwQCHexwjR/1q7Jx2JWkGJd0 m0hPqMBq5iXuC0a7gMVqaQ9EOGItpOU= X-Authority-Analysis: v=2.4 cv=N5cZ0W9B c=1 sm=1 tr=0 ts=6a75f84b cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=5fOnMlAeMDB701wdRugA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: PsyriCkUM9DSvGvT9_ajD1j-2TzT9hbI X-Proofpoint-ORIG-GUID: PsyriCkUM9DSvGvT9_ajD1j-2TzT9hbI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX/P5nWJ6SOOIu tZ/hE8n8xNxiz9z15OpRsZxyWaUEfXSmAWfQEvyr50QJV698KqvvpPZvqIQy9xMhx7G4bN8Y7fQ U5amVwc42jz6tq0PiwW4dtX8S53vKAQ9yUzkngohYMRJqK4UaY5HPu02zHgljvsvG4Md+6iV/7z aPnFA42pCo++HBlNZWtAoS0z/BRCVFn33J4+69z6OoJ+p0v8LF1awjhCe23xQ0eRFAWkREhn5yQ RN3mDhapmgboYpnpq3RSJ4ivrk6NoCk7+ry9G3tc97JFaBsVKfQ8R8q5M9+UcMaiFg7n6bQ4EEN vM1iDhAXbQHuQjuoBNLOuJ5x/UWS3QjheaVEZflcQSChNsQrhvUgWWTMzjhFzgxYWVwZKJq0Mth 7vd0/j4DQhNCGzgN04q8DkEheDE9mU75H8XhL/dAwIIQgCvV+de0wO1x5RlG0GRH+9uSY7i61n+ hpZgOvEs1VoDc8UOMtg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116243902158501 Reviewed-by: Marco Liebel Signed-off-by: Brian Cain --- target/hexagon/gen_tcg_hvx.h | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/target/hexagon/gen_tcg_hvx.h b/target/hexagon/gen_tcg_hvx.h index cbf84a8caee..2a342cdee69 100644 --- a/target/hexagon/gen_tcg_hvx.h +++ b/target/hexagon/gen_tcg_hvx.h @@ -342,6 +342,68 @@ static inline void assert_vhist_tmp(DisasContext *ctx) gen_gvec_sabsdiff(MO_32, VdV_off, VuV_off, VvV_off, \ VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE) =20 +#define fGEN_TCG_VEC_AVG(VECE, SHIFT_FN) \ + do { \ + intptr_t tmpoff =3D offsetof(CPUHexagonState, vtmp); \ + tcg_gen_gvec_and(MO_64, tmpoff, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + tcg_gen_gvec_xor(MO_64, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + SHIFT_FN(VECE, VdV_off, VdV_off, 1, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + tcg_gen_gvec_add(VECE, VdV_off, tmpoff, VdV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + } while (0) + +#define fGEN_TCG_V6_vavgub(SHORTCODE) \ + fGEN_TCG_VEC_AVG(MO_8, tcg_gen_gvec_shri) + +#define fGEN_TCG_V6_vavguh(SHORTCODE) \ + fGEN_TCG_VEC_AVG(MO_16, tcg_gen_gvec_shri) + +#define fGEN_TCG_V6_vavguw(SHORTCODE) \ + fGEN_TCG_VEC_AVG(MO_32, tcg_gen_gvec_shri) + +#define fGEN_TCG_V6_vavgb(SHORTCODE) \ + fGEN_TCG_VEC_AVG(MO_8, tcg_gen_gvec_sari) + +#define fGEN_TCG_V6_vavgh(SHORTCODE) \ + fGEN_TCG_VEC_AVG(MO_16, tcg_gen_gvec_sari) + +#define fGEN_TCG_V6_vavgw(SHORTCODE) \ + fGEN_TCG_VEC_AVG(MO_32, tcg_gen_gvec_sari) + +#define fGEN_TCG_VEC_AVGRND(VECE, SHIFT_FN) \ + do { \ + intptr_t tmpoff =3D offsetof(CPUHexagonState, vtmp); \ + tcg_gen_gvec_or(MO_64, tmpoff, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + tcg_gen_gvec_xor(MO_64, VdV_off, VuV_off, VvV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + SHIFT_FN(VECE, VdV_off, VdV_off, 1, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + tcg_gen_gvec_sub(VECE, VdV_off, tmpoff, VdV_off, \ + VECTOR_SIZE_BYTE, VECTOR_SIZE_BYTE); \ + } while (0) + +#define fGEN_TCG_V6_vavgubrnd(SHORTCODE) \ + fGEN_TCG_VEC_AVGRND(MO_8, tcg_gen_gvec_shri) + +#define fGEN_TCG_V6_vavguhrnd(SHORTCODE) \ + fGEN_TCG_VEC_AVGRND(MO_16, tcg_gen_gvec_shri) + +#define fGEN_TCG_V6_vavguwrnd(SHORTCODE) \ + fGEN_TCG_VEC_AVGRND(MO_32, tcg_gen_gvec_shri) + +#define fGEN_TCG_V6_vavgbrnd(SHORTCODE) \ + fGEN_TCG_VEC_AVGRND(MO_8, tcg_gen_gvec_sari) + +#define fGEN_TCG_V6_vavghrnd(SHORTCODE) \ + fGEN_TCG_VEC_AVGRND(MO_16, tcg_gen_gvec_sari) + +#define fGEN_TCG_V6_vavgwrnd(SHORTCODE) \ + fGEN_TCG_VEC_AVGRND(MO_32, tcg_gen_gvec_sari) + /* Vector shift right - various forms */ #define fGEN_TCG_V6_vasrh(SHORTCODE) \ do { \ --=20 2.34.1 From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116221; cv=none; d=zohomail.com; s=zohoarc; b=QBrpJfzlnnuDJL6Xay/r0zgd0Eznc5Bm5cP8R9w3S/kgLxngK7pujLZVMUieSq3Wp+Yr3hYH7eZEPDu5zVMNp6wIKdPh8Hge5flpG5nSnOj+WcgtLsHsVX2b6rFbI1gn29k9gW319O1SQu9rs9evxZWIoSCVh6Lh8WKFkzLsmzY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116221; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=j2Tq17a6Nx88JT8R5fCoaV+t6aHZHI82tO8YJOFApiw=; b=ItF3Mw8m8FYQtHA/XdGcZL+YkDokFgr3z+BFuIkpp/ojmzanqrFUn1wNaaxVFSwvq0ZMiyDVhoqvT2bVEurFF/QxTOZCaO8iPECCqmvXPxuuma/ZFp4I35XtbYE/qs8gVBJ6GgySquZMJ/QruhvY3S1LBDXAB1jhspzjxrb5Ypw= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116221570657.0691716466189; Fri, 7 Aug 2026 08:23:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPQ-0000lV-36; Fri, 07 Aug 2026 11:22:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPO-0000kc-O9 for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:54 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPN-0006jI-BD for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:54 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677CgMXZ1294625 for ; Fri, 7 Aug 2026 15:22:52 GMT Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fvy6gvmu1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:52 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cca3673560so51983785ad.1 for ; Fri, 07 Aug 2026 08:22:52 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= j2Tq17a6Nx88JT8R5fCoaV+t6aHZHI82tO8YJOFApiw=; b=pLAnMu8phGEYSvl9 XqNj8hfxK00aJfazOEccIzpsg1jKjo8J9hV5QvqzQ+vr5qXhyVeeAISdykhlHbsZ YlurVsgqU6S4V9t0YiwOkT6103M/xegRBhsBGPaXl/q1nTuKFWJYTPss/+SAPDpK 6vmXcW0WvZfjVQ1KmVXSipRbbOE1J7yAjBX4O50hEH/ouB/Dt8/kgZVQMpi8zJFN z9+QrXJ1og4ooxFSrO78giVPzaoUnEl4l9LI4hWTN7JSzV3BbSiLyPYLNoqTmDGF 1XugJd0zBDp6Ky14gFiw5xeSgpbmoLZCquwpMYv7r0FneN9vcFxurEyzwwbbPsrE 4ufE6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116171; x=1786720971; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=j2Tq17a6Nx88JT8R5fCoaV+t6aHZHI82tO8YJOFApiw=; b=BdhZeq/J60+0N7AyHjrbYW5J2WSVRI574xXHs4jUzmr/1Hp9HCB10SSy86q6mSkzFH dNFe9NXEL4JNllOB4KDr8ZqSpB8k8Lf6ok8O9Ph59A+Glhb+62IqjM7HSJku61zitbdL UdwG6FjQLn0iDknMJw9QNZzR7d64+O1AX5DYYJ8AzJLvpvBDUwu/XCGJkdnH6vdZ5tjk e1JtMmPbdD/HlQwGgipZUkq8ivL6BYhDcYgI2W29q0t0shnLld4380cxM1iSKnHI1XQL nBtvQlacwAi9cEyWJKHhR5VVbVOOcy4Aqch29kDodYiiVKw1KlgP0kdtnq49yIm1kDf6 VOXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116171; x=1786720971; h=content-transfer-encoding:content-type: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 :content-type; bh=j2Tq17a6Nx88JT8R5fCoaV+t6aHZHI82tO8YJOFApiw=; b=JiJBgfdZ64PwTVYvD656ZT6uDB8/LkjcuZa/Zs5IkzUf1G/XHtLWpEKWkM42TAYEvt kAG9m/vM+j2GhtQkLW44Zkn8gnASdLBzDpLOW9FsfMkAx92NR3il2IuWX2yMClckpaIh X1B8ItyTN7RuIka9l7RXGloW8iG8e2mUpn9Yb+8ogQ53y+vGhOnqum1AcibF1ZUZ+Gta ktjRq3hARQuesD91fhXQrFqCvxIWWHpzrEC0qIXAriGvwdyL1AlYvTwc9mYtt5d9s+kc /SH/9guWGA37iSXXHn+jv3ZWAJMty1sUm1vLy9sS5/Igv3iynOGim1lKYg6Hk+n722HT g6zg== X-Gm-Message-State: AOJu0YwkM/aYcQNd/RewRX3FQRqh6TpGCs/EIZsyG/fAqji+TdK5vdGl DoUCL13qBBb7Cdq9vEDNcDvgNFfW+i0DggdSUqPPqhsBJI94tD0Ub397evJLyZoY84rDNJChvWn UbUBRQrcKNDrpBOCdjKa4Il4RI8c7ofJU9UJBvNV+3jgrUXjyoLUJfAKhvhbyXq3yqg== X-Gm-Gg: AR+sD137EJ9J0mYB6ItlUe9Q3MGz0vXRQZM6D6ANkIrN2t/eSc/ozkoGmorpX28K/VM 64pkcQ/Lz6KGTjs+eqDWsdBMbq8JaEhbPfPdgUOSf2oPo4OL1EmuVNR378S4wpt707NXoEaMrX6 FCpY2LQBAm+PchG7TIT19Jjz4qoaO8kXzWI1k3f/KRU3vQTrsEZ+AfsObBEsS/xgOWt9fheyzRe FTwcS5xKC+vBh3Kv1rvxa5QrsKrOVAccNqkdMTM2/TiCGPydua/KBV6Ejn1tJx82M3nAdjqoLfr f2LqHk2cN/ctNG+gczOCKGh/Q3TXJSYmC9S3ucSB3pi/uM+ZfDQFSzb1ntNZTAlXKXD+yYaEoQn NgISVP4rkzZx2DRzNlIZzhjeerXr3XIUjjJt3QSWU3XgEUDdF X-Received: by 2002:a17:902:ccd1:b0:2d1:1a28:10d with SMTP id d9443c01a7336-2d11a280465mr99089145ad.18.1786116171295; Fri, 07 Aug 2026 08:22:51 -0700 (PDT) X-Received: by 2002:a17:902:ccd1:b0:2d1:1a28:10d with SMTP id d9443c01a7336-2d11a280465mr99088485ad.18.1786116170829; Fri, 07 Aug 2026 08:22:50 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier Subject: [PATCH v3 6/7] tests/tcg/hexagon: add HVX test for V6_vsubwsat saturation Date: Fri, 7 Aug 2026 08:22:40 -0700 Message-Id: <20260807152241.1576334-7-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=EYH4hvmC c=1 sm=1 tr=0 ts=6a75f84c cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=KziaR8soUeEz0EukW7EA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: X-dA7gbfdEr8AzF-6btiBLbV-3S1j0PH X-Proofpoint-GUID: X-dA7gbfdEr8AzF-6btiBLbV-3S1j0PH X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX3Ob6cNjaKKbZ /wxk7LDtlizGfNDsU/qlb2NlWvAPTbvvcXbXGaVydOJ0Gu5CPvUA6+74knsSsjpPKraGROv/t+N eQa6Mc03JgqjRq5JQEemqnjOLabRHUo= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX7+4RKOQxI9jF Xa1LCCKmcAtQ0UiH2TdyTwWgEjNo63f2wLBrvKR3/5eknlSu+kJaejtHRgzmZyl8zydeRztpMPq hAanqDtNpwnWfORNsoDpxpjS3e2XXOyiBKS4IBBlgoKlSycgXumfD4ZJv6b5+sGviNTDrZzugfa HAqbFyARc8utc8iy7AYdUkZSNH13374TelKASsrMUuZYSrBDoLIadAOU8lbCIOhq5LGIdcxtJBc Q56ToTgVnszwZnS4I3zTU27ARVhtRFwvwSzMxMu7PeDhuvR/vSed9nZaqngiMv4sb4iqLrX2rgF eavUAFOime4b0F7ZxttjnecvPmhP+FCgxrplnYtZq16vS9xFyrvcnAN4GhPdsygrYr7Entl65fq WYzLY+SttRUdyqWfMeH9kablADpE+KShd0C8lYJv85Hg72wnGZuZDDYBXQ5jqXJ97Je19dNvogu 8hrjtaBhtlDYBTYJCSg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 suspectscore=0 priorityscore=1501 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116223842158500 Reviewed-by: Pierrick Bouvier Signed-off-by: Brian Cain --- tests/tcg/hexagon/hvx_misc.c | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/tcg/hexagon/hvx_misc.c b/tests/tcg/hexagon/hvx_misc.c index 90c3733da07..641cff59aba 100644 --- a/tests/tcg/hexagon/hvx_misc.c +++ b/tests/tcg/hexagon/hvx_misc.c @@ -20,6 +20,8 @@ #include #include #include +#include +#include =20 int err; =20 @@ -386,6 +388,47 @@ static void test_vsubuwsat_dv(void) check_output_w(__LINE__, 2); } =20 +static void test_vsubwsat(void) +{ + const int32_t x0 =3D INT32_MIN; + const int32_t y0 =3D 1; + const int32_t x1 =3D INT32_MAX; + const int32_t y1 =3D -1; + HVX_Vector v0; + HVX_Vector v1; + HVX_Vector vres; + + /* INT32_MIN - 1 underflows and must saturate to INT32_MIN */ + memset(expect, 0x12, sizeof(MMVector)); + memset(output, 0x34, sizeof(MMVector)); + + v0 =3D Q6_V_vsplat_R(x0); + v1 =3D Q6_V_vsplat_R(y0); + vres =3D Q6_Vw_vsub_VwVw_sat(v0, v1); + memcpy(&output[0], &vres, sizeof(MMVector)); + + for (int j =3D 0; j < MAX_VEC_SIZE_BYTES / 4; j++) { + expect[0].w[j] =3D INT32_MIN; + } + + check_output_w(__LINE__, 1); + + /* INT32_MAX - (-1) overflows and must saturate to INT32_MAX */ + memset(expect, 0x12, sizeof(MMVector)); + memset(output, 0x34, sizeof(MMVector)); + + v0 =3D Q6_V_vsplat_R(x1); + v1 =3D Q6_V_vsplat_R(y1); + vres =3D Q6_Vw_vsub_VwVw_sat(v0, v1); + memcpy(&output[0], &vres, sizeof(MMVector)); + + for (int j =3D 0; j < MAX_VEC_SIZE_BYTES / 4; j++) { + expect[0].w[j] =3D INT32_MAX; + } + + check_output_w(__LINE__, 1); +} + static void test_load_tmp_predicated(void) { void *p0 =3D buffer0; @@ -530,6 +573,7 @@ int main() =20 test_vadduwsat(); test_vsubuwsat_dv(); + test_vsubwsat(); =20 test_load_tmp_predicated(); test_load_cur_predicated(); --=20 2.34.1 From nobody Mon Sep 28 01:13:05 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=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1786116221; cv=none; d=zohomail.com; s=zohoarc; b=H8Qss4YPjZy7vmjSaaDx39TtyIYrIlYaFhzAsJ+yNqwyzQpZPowfj8dX1ekxwVc6hLI8qEqbRCN2x6P645ENrVGgY1cSccY4VL+tcfeVIMXW6hwLGIqHT43Jmp3l5RoNumKnfllCgeBuLolXLmEWpSYvZ+dZnOBnGSPRr/ANwDk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786116221; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FmAyBZka4bURto3eJrRm/NoI/RI5qnZItamazTRfnzA=; b=ixcaEAhjf47zSm95onTGqJOHTFsJ66mi8XH3b12pY9LiEbCekRSg1ChdeDcbvO6iWuj9DFdtYoX0ufA3nqxlgGOpMce1JpZyeT0uIP9oUnmehDzEMt1PPOm9yOiEV588skfaGNtursQT1Ms9kyoZhU2aAU1lxyqT8pBP1GSjxgk= 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=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786116221400581.766470140427; Fri, 7 Aug 2026 08:23:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wsMPS-0000m5-FF; Fri, 07 Aug 2026 11:22:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPQ-0000lY-BI for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:56 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wsMPO-0006jU-Rr for qemu-devel@nongnu.org; Fri, 07 Aug 2026 11:22:56 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 677DdZ2E849735 for ; Fri, 7 Aug 2026 15:22:54 GMT Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fwgem8e9g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 07 Aug 2026 15:22:53 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-ca6bd8a190cso4494628a12.0 for ; Fri, 07 Aug 2026 08:22:53 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315beb883d9sm8604756eec.15.2026.08.07.08.22.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:22:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= FmAyBZka4bURto3eJrRm/NoI/RI5qnZItamazTRfnzA=; b=nnfz/1EVUcu06QJw eUlqrzo8VcpENPd3cXAkh8F0WuPLmLZVCH+kROUzYmYyOMVEdUl6MsP0lj6kryvN 75GfsqlwjB4JGO9cgQqdapg3VPXQ+woGkBXmng+KuttoPZcSBl3r0lOMbFcZ8CqY SH/lBavxxxcxBeunv0OnC8u/WKkFsdpuY38Am12t+MoLwiQO2VErl1wgCKStxLf8 pRRh5Zi/ao7z1L8dWb8hBUy9ukv58YBFS915rMxwPpXZQIzI0o7sCVUmd2DK1lz4 q5E5wkSTEmeTz8GR7IDXTwpbx1ydvhTDVAW6FVoYjd0J3QLcZ/epYuGPEDHIhw2n c9Hk1A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786116173; x=1786720973; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=FmAyBZka4bURto3eJrRm/NoI/RI5qnZItamazTRfnzA=; b=UGdSK8h7pPHaIYKbsmOCY4ZKKm7nGaBJfVU0qqQLp1HCIGy52SJP4rmG4wti/HbY1A sNiKNTh5BraW6Vg5APcP4LUxo++OlS+yQObzk0ZAQaKts2TsVIXu6ZjIef7E0+EZoicK 7zE2Hh2SD/i0RYNXeADLhwhSlOZkTfC/C4ZIM6xa0FpZpnRcSj19CAxCBVVH+wMBycXF mk+duu/rxW3DJ7f6nSMuQP7QRdpgeDRA8pWhJGtJCXVq+x8/z7Elbl2g+aXkmYGaLd2D KNE1cK50KOi3S3Oshcssagev01IR94H3/TAqV1X2E55YFf2Aa8YHmDKMkxpoc1ZLYtgA AXZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786116173; x=1786720973; h=content-transfer-encoding:content-type: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 :content-type; bh=FmAyBZka4bURto3eJrRm/NoI/RI5qnZItamazTRfnzA=; b=V9wue0zMOtoe/y4HHX4Zeq1chVd5Yo0OYU6HN7y3iThkuHCeZW+1pP7R4CzEAAARuV 9k/nlyhIdQ6b55f0ik5gXOU1snyjG6ik8SbvIBYTAtVeFgxogyM3oDL9gHJFp7XzhfdI dDH7L8dqLTRVcDIcXfitzbWbd3EXRSQze8D2wRi8cXU9W/9eVITwUMX5F6cv7TLhelAM HMkPyi3cxJAmUv2c7q+V2+PyX9f8c03iPcuKzxsxUneDwZdTx7jn9Tqn00qW+spVGxML IXhM/b031YW89GGQb57gaR8lD/MkwSrXxijYnQKvxF48JA+dE8rHuQ1A7C6Aoi5UEyLl EGVg== X-Gm-Message-State: AOJu0YzVt/5Nyim6v9XrN4dvFxuQxuoQWKLh/Rz8gZIH/HQcAEYLt1so 0JfG74aHvt00sm9l/6x/0r2z0zhay0bI+03P7Do++DgElQvIZRKO8orY8oVeu3nLOnZYeZwK9IA zjCBrI3IzGNRSVmqFcY4YgR6rvtP4NyJPUJCYoEOJUnmBTXCFJ6a4jxwTekaHBrGUyg== X-Gm-Gg: AR+sD12orQQoLsEUKrNh1RWQtQ/pLk5OHjC5MPvtHck7L0SIpV89E/RO6leqS9cpnzA m1ivkp9hVjq4lm2tyJPw0yntQXpHiHTGWmiOFNWxo3/pdZ8I56lpXoa8F5pYrzwoswCRNB6V8zQ 35OcgqkrpTEeBpaCBm1Z8x7KddtAt+W/LoKR944ka30w0311fRYhYUprrIr1LS0RfnkthkDVHaI EW6Ri5aeCHo2Pq8s+9xHlaPJFkI3gqIUwVt0LbvFB6Z5qS/s4BK0FiltQaGMqRUSzcb3C6dfiib 5uR+CakGsy2hEs72wHmoslZokkwcNzZ6H97y9dfQ2/CDmdcrRPfDnqKO21jUuifQor7gNSERtQW 7x5mVJEMtv2eTwXKpLX9+HZ5WzlrI3eQ2vFn8Yu13KOBArfH/ X-Received: by 2002:a05:6a20:e212:b0:3c3:875d:c538 with SMTP id adf61e73a8af0-3cbce6cb229mr1261299637.8.1786116172677; Fri, 07 Aug 2026 08:22:52 -0700 (PDT) X-Received: by 2002:a05:6a20:e212:b0:3c3:875d:c538 with SMTP id adf61e73a8af0-3cbce6cb229mr1261241637.8.1786116172080; Fri, 07 Aug 2026 08:22:52 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Brian Cain , marco.liebel@oss.qualcomm.com, richard.henderson@linaro.org, Pierrick Bouvier Subject: [PATCH v3 7/7] tests/tcg/hexagon: add HVX tests for vabsdiff Date: Fri, 7 Aug 2026 08:22:41 -0700 Message-Id: <20260807152241.1576334-8-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> References: <20260807152241.1576334-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 4SUbH6vRUzchcYLSn39K0bJuMlhFuy6- X-Proofpoint-GUID: 4SUbH6vRUzchcYLSn39K0bJuMlhFuy6- X-Proofpoint-Spam-Info: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfX6fZeLAgtObxR ldIoJqkQ+lAzkcGRJsCSWshlmK/dP8GtPZvzxUOb/XK183a1qPapQVwNXkh97M+AzZLtytWCWMM YHnYHOIuZAo9CfQ5DlF01HkAb2V9Drc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODA3MDExOSBTYWx0ZWRfXzbS6MOFo/hxQ ASV90sVJoQ2/ePi/zThCF1yviwTxukWIvdQ2ysiiil3/CtVvvLu5Uj5fnjc9ir+e46QKzS+NLxV pNfMllKM1heM3oVlWazhRqsTKPESDg+pikI8Sv2zz+qQCrC/wykZYNBGKGSnnPVeokl6PHHxLNP GAxjySOi6E25zB0K2J44P9mdVvBpo8gQDmsL2fYa+kEM9fWTce0oCcuGpbrMAhcnzh1rmxzFNwK HfteNmGl8cPb8qX++YKf1zNRpA3g9BdVcnKrsJ0Zn4o88XAvSy+v89nHUsxiBxBGDoAzR52h8NN ggclHxnpLhsX/yoRUcOdwBlC3XyDQn89acX2NgAxKoBW24Im8F1yt/nZavsqO8YSWkAjFXbtvDq 1gE2SDNGAbrqAYaoqI7fLaGmz0uZOqqB7yyStDf62UFCUcFIAH20VX/kJ5LsIuctcGCO9XT43La Mn9ZIzvziGIVc9tMppQ== X-Authority-Analysis: v=2.4 cv=X9Ni7mTe c=1 sm=1 tr=0 ts=6a75f84d cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=BpNi1cdwbXwK4F8ztrgA:9 a=QEXdDO2ut3YA:10 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-07_02,2026-08-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 phishscore=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 impostorscore=0 suspectscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608070119 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=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, 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 @qualcomm.com) X-ZM-MESSAGEID: 1786116222482158500 Cover the four vabsdiff variants. The expected value is computed in int64_t to avoid overflowing the source element type. Signed-off-by: Brian Cain --- tests/tcg/hexagon/hvx_misc.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/tcg/hexagon/hvx_misc.c b/tests/tcg/hexagon/hvx_misc.c index 641cff59aba..32a3661a86f 100644 --- a/tests/tcg/hexagon/hvx_misc.c +++ b/tests/tcg/hexagon/hvx_misc.c @@ -317,6 +317,34 @@ TEST_VEC_OP2(vand, vand, , d, 8, &) TEST_VEC_OP2(vor, vor, , d, 8, |) TEST_VEC_OP1(vnot, vnot, , d, 8, ~) =20 +#define TEST_VEC_ABSDIFF(NAME, INTRINSIC, SRC_FIELD, DST_FIELD, \ + CHECK_FIELD, FIELDSZ) \ +static inline void test_##NAME(void) \ +{ \ + HVX_Vector v0; \ + HVX_Vector v1; \ + HVX_Vector vres; \ + for (int i =3D 0; i < BUFSIZE; i++) { \ + memcpy(&v0, &buffer0[i], sizeof(MMVector)); \ + memcpy(&v1, &buffer1[i], sizeof(MMVector)); \ + vres =3D INTRINSIC(v0, v1); \ + memcpy(&output[i], &vres, sizeof(MMVector)); \ + } \ + for (int i =3D 0; i < BUFSIZE; i++) { \ + for (int j =3D 0; j < MAX_VEC_SIZE_BYTES / FIELDSZ; j++) { \ + int64_t diff =3D (int64_t)buffer0[i].SRC_FIELD[j] - \ + (int64_t)buffer1[i].SRC_FIELD[j]; \ + expect[i].DST_FIELD[j] =3D diff < 0 ? -diff : diff; \ + } \ + } \ + check_output_##CHECK_FIELD(__LINE__, BUFSIZE); \ +} + +TEST_VEC_ABSDIFF(vabsdiffub, Q6_Vub_vabsdiff_VubVub, ub, ub, b, 1) +TEST_VEC_ABSDIFF(vabsdiffuh, Q6_Vuh_vabsdiff_VuhVuh, uh, uh, h, 2) +TEST_VEC_ABSDIFF(vabsdiffh, Q6_Vuh_vabsdiff_VhVh, h, uh, h, 2) +TEST_VEC_ABSDIFF(vabsdiffw, Q6_Vuw_vabsdiff_VwVw, w, uw, w, 4) + TEST_PRED_OP2(pred_or, or, |, "") TEST_PRED_OP2(pred_or_n, or, |, "!") TEST_PRED_OP2(pred_and, and, &, "") @@ -575,6 +603,11 @@ int main() test_vsubuwsat_dv(); test_vsubwsat(); =20 + test_vabsdiffub(); + test_vabsdiffuh(); + test_vabsdiffh(); + test_vabsdiffw(); + test_load_tmp_predicated(); test_load_cur_predicated(); =20 --=20 2.34.1