From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by sourceware.org (Postfix) with ESMTPS id 4ABEE395447A for ; Mon, 3 Jun 2024 03:24:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4ABEE395447A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4ABEE395447A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=198.175.65.21 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1717385078; cv=pass; b=OsHk+U378QyVgkotCiWqzdhVorFkiaCsHflM5Rm7XsE0/pduQWVn1rxxSyHIPjA30/A+ZqrFgbo2ZFXskpmU6Xvg5B2SsZsHNkweyr9AgO1nFuMv6nXPn4D/+wzNiwnt5lggrUNkSbkZ5Nww4zYfFmrojT6zmNFVYWVb4qRfZkw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1717385078; c=relaxed/simple; bh=m/66n/2N01UGHlbaabTgQA5jkCq6zTY0+233iA9bUCk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=W2FeAitccRnB3E8ca1ij9L7wE5FNubG8jEbuGIKMUGTYLkP2/4oobfZYH38OJJxCU7kd8+D6rJvIDcQsnkODN8G+kLKRvhhqujUDCiBVHNF4KUkUHG5lAcYuEORN8hNbocWrRBRV3VQF5Ann/CwSpdrM1bbT3VzTqpTXmt9kpOY= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1717385074; x=1748921074; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=m/66n/2N01UGHlbaabTgQA5jkCq6zTY0+233iA9bUCk=; b=PciNNeMLjxhp44b6Ru8OgnHmo37t0/iLxEXvz0c3z/N/Otqhe5kUqa4h e6nsHr1mH5g22vwJUBRp9Ovn/e3QxQScbwCgthBeIrkQ0ILXPcPaM8h6k Csuy+nuY+2vtfeOEOIQSgaZTKXeJun+2wLenzHtfSt0OS/whGhI+ZMvE0 NV6bID8PdRuO2VefMU6gcqBFFP1WsfI1hkWg84r0OvyOY/hMZThPrW5um 6hYUCXFMcbIxCG/LIZZuoxDNGkmR2l+l15uPnR7YR/r5pgAfr2YLk03f1 rPtyLLN6artSZJDiZ4ZPr1Qupq0/EXg15LEN9qAPbdhhg8ujRLY4RhZk8 g==; X-CSE-ConnectionGUID: 0CjPlTPMSmOYF0OWbZ6IVA== X-CSE-MsgGUID: 3dw7NIkOQ/SdtINmQ4cIvQ== X-IronPort-AV: E=McAfee;i="6600,9927,11091"; a="13810108" X-IronPort-AV: E=Sophos;i="6.08,210,1712646000"; d="scan'208,217";a="13810108" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jun 2024 20:24:32 -0700 X-CSE-ConnectionGUID: 1dXdV9V5SFqF+JuN4RreGQ== X-CSE-MsgGUID: iigNJOK+RnG09QPzgT0XZg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,210,1712646000"; d="scan'208,217";a="41296092" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Jun 2024 20:24:32 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 2 Jun 2024 20:24:31 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Sun, 2 Jun 2024 20:24:31 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Sun, 2 Jun 2024 20:24:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aRW2i9XlI0q8+6oTFKzCW3uMhucetr/UGzPXSxlgbDiR2JxA/6D5/jU40dWaITdB+MAkhyG0diaFX9pw5lqaoIU8oxJLgzl193qKNs5Hr1imaYOiYsEKQemVCLZNvHMxfueEFh03utEZSnq/1azCcJqs+W1GEXdls6yB+rctqA3RKhqrBmneQJr7v6G6JuQrGntQwYX4MGL+Q5WuqbA/CtX4Ec10lIRsqdqwMzSOjZJRfgHG3l4UJ8G30isLNUzSnHoERvInESoNkJ/e2GGAlUxYV1Y9PkYgXNHL8x9SfQTIpOOh0KZkBiRuIDtb4fJrcLKX4oRqhD/3yrlsbTh19g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=W87IojnDf43M03ujyzIjZmqTvezqqSvEjFJFR1zciRk=; b=TCJ1iR2gbPrv2nvDvNSy1MYjLfWDQiUk3zmUE2O3I6C+z0VfqxfNs4OnB8RsByWCRAjX25xL4McxZCjSV1s1LN8z+gZNFgqYOr1byoF0MsKe+3NR7wbzApynFocqj2wHurENOqsepqtDypMESvRBBZwtQWwqaHAipJhkvIomxaNvI7Swi4u5hXKjSV1JADfN434ErVC+ZXVy88Wph7xpEWgEUUJOYoA96cjcxk+HT+LqVq9amlZPu5UgwpJpesq6vn7Bsex+4MAuXu1HnbhwmK27u8pRWcrG6q/w2uhX1P+9bZWq9xwLrD0SKuv7+dnHpDeCFVW4oc8yfOSM5E31FQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by SN7PR11MB8111.namprd11.prod.outlook.com (2603:10b6:806:2e9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.22; Mon, 3 Jun 2024 03:24:23 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::c798:ab3c:1a03:af59%3]) with mapi id 15.20.7633.021; Mon, 3 Jun 2024 03:24:23 +0000 From: "Li, Pan2" To: "juzhe.zhong@rivai.ai" , gcc-patches CC: kito.cheng Subject: RE: [PATCH v1 1/5] RISC-V: Add testcases for scalar unsigned SAT_ADD form 1 Thread-Topic: [PATCH v1 1/5] RISC-V: Add testcases for scalar unsigned SAT_ADD form 1 Thread-Index: AQHatWOLmhLjh8GGskGA319thNci/rG1Xu5ggAABCLA= Date: Mon, 3 Jun 2024 03:24:23 +0000 Message-ID: References: <20240603030953.3333366-1-pan2.li@intel.com> <182B42A8E5C0A205+202406031118513384377@rivai.ai> In-Reply-To: <182B42A8E5C0A205+202406031118513384377@rivai.ai> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|SN7PR11MB8111:EE_ x-ms-office365-filtering-correlation-id: f74db7cd-7dce-43af-45c9-08dc837caa73 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|376005|366007|1800799015|38070700009; x-microsoft-antispam-message-info: =?us-ascii?Q?TOyzqdLU7XxV4w+lL3gcGeW+qX4r36BVSm4OedzwH7e41OAHVg5cjtsfYRGi?= =?us-ascii?Q?gjVkbOZ9W9UTJxUufQ9YGvaeA0aOqtRwl/ZbZM1l2R3kT30A35XFbF8TauDj?= =?us-ascii?Q?Ry/+1yg7Q08Wj2vDbc9Ax2d66vtJVPVGjkLZHCFEz/LY8N2cnxfDodWu5fZ4?= =?us-ascii?Q?HRAaAI0B+aE+phlmYzjcXhe+FLEjdUrBxOg0FPI33EjNYoVaH1wUb7kJtnlt?= =?us-ascii?Q?LSFzVNZQkPFRUEpN5I572unoCM4nsJjUVR6nPe1yrPmxd0da4BrX5TtHxxn4?= =?us-ascii?Q?1uzaxUhb5LYIyrwqwS9foDynXeWfOvg6WTbuTC7BKCXXE+/d+gd53pmuXSgZ?= =?us-ascii?Q?Rm9nRu1eLwU4zIDT0l8Di8oGSIyYtkYa8Nyv0RuJkUwpY6qiA86CvVqT7KkQ?= =?us-ascii?Q?UAHxSX9MNWDbIGchuGO2ks5V7dTgvaxS8uHvKf3jJrHFv2vJulvE1SG4TRXR?= =?us-ascii?Q?bdPO3DuDiB0pDWicqob1ddI3kBqlViwnBDEwwcXYdF7ikUiXhgX1oP54seJE?= =?us-ascii?Q?zLmCitlMaFj4zQx0T8y2X7mV++4LD/8s/f6RtKx+70JqSXS2Jm9wyziKPNZF?= =?us-ascii?Q?flap5aedYk9W16OzqEbF2/BXmicclrVx+DAHgMZjG0Z05euV6GMBNl89Lx2P?= =?us-ascii?Q?TPkaPrhjkI6il2Yth2p8lyh1Bz6YwB8ta1bPo79vgvKsOv6FLmKH9Bbdy1jO?= =?us-ascii?Q?hsGZL9rYixm5ncee5Jay/slEwKZL0gvHqOpvMPZg451Z57lv4saUL/Qb1EyH?= =?us-ascii?Q?eSZ2HtA3hWYiuWm1uFF4Q+bsVff7BVa3Rm9GrA5QaNTfpj7CeTySpoZCwNJl?= =?us-ascii?Q?RV8cmkW7DYjuUNISe+T2icRHspMEkhyGSmwZaEe0YTHLS/ijIPPH+r9GEZoS?= =?us-ascii?Q?7QbGMSXUgzrSSFvMw2Tk//P5mo0Xaw15rF9ShWqsvTlDBkTAiHiDuRubZhku?= =?us-ascii?Q?q2dq3500WSJSdbfPqDA47UfwrtQV0mwIgcsZC0/GinXc4Ndn74Ygp8zWcrLs?= =?us-ascii?Q?ZotMzJT9aPRsuR4s6qzCI4OHwsk+R4BfX74uDiQkagVYBLnakd8mZpo6vTLv?= =?us-ascii?Q?jpIjBgrMg635C+hx3wCzcqwvYT+HGzIK/5bHpYLstr2q49ILi7ST0XDYqVjG?= =?us-ascii?Q?7dWgGD0ZDFU0DoQD1nfbiF0o5emR3qrwPPYj6418LRzv2OzlhfcNXzG9eo00?= =?us-ascii?Q?Td9t+NPu83QJJ+FmxDRF8jyHgsYUh5hVO7lhJ/9+HKouzdQZ8DiiLAshAx2H?= =?us-ascii?Q?adzyJwZvoMeSJGR3uogODgbglFo/lRrvPStljK+K1g0ZAl/cATi1R6qzRYKZ?= =?us-ascii?Q?kv4=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(366007)(1800799015)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?qic4dlxdc7qLduYRKWkIQzTuevhAKOQ86dx9oUYQbIdLn6xjyAs8vCwxfLjY?= =?us-ascii?Q?0OfGTn7BTBCk9Ahe03vh0B/q6nFl3rBxPxnRYIl3bADOWUTCT+CSqfyGso5d?= =?us-ascii?Q?/97H9JxCbiKarzT1tCc1CtXqXMKGzwNN9ZRf2tJV7HEsLarN0I3p1Pw813Eh?= =?us-ascii?Q?JfuMmzLgaJNaOzcEZ3zCAkr5REH4yEt5RZUrRALdgikKyjAnk3e6Uv3wkrq3?= =?us-ascii?Q?TAf12PM1ZC/iWiCl4JYR55ld/tkauSrOXlA247l7x9YcU+wJoY7yoKV4aD4j?= =?us-ascii?Q?Leij/MdM9Jd0eJZvS2vJXuqS3EkpbtGESiGBKre3uPZnAJKLs8Z8kp0BVfR2?= =?us-ascii?Q?o6OjZRCWzU95RZn84JCW8ZmzDyN1tEUNAsn2iXeGktgB0F7qpEee+sJ32C8d?= =?us-ascii?Q?fgeMwr9r4kyW952Y0H/2dTi1I/R0xiAfwh8W8CqDpYE9mAC96s58nwKat7O+?= =?us-ascii?Q?6Nnta/fPsRDtgMDNfJxxeYuef/DYmdlcfNVfXJMDb3tF831jnyXq7QxzS2Wc?= =?us-ascii?Q?G9uHfJrc3diklyStsMOlYzGnLeA6mogsdvcYcBkONx0V3e6OgHcQN+lOFblD?= =?us-ascii?Q?IyIdBJryaCxuptm2SccNrMoYQJoFDobKOUtLEvYojK298xc5W+bnP9SrmHfO?= =?us-ascii?Q?w5gU4Y3lVd/ESAU4RuM0oWQlHNGix5keFaXyHzTSIvF8s99gZ01lngdTfeR5?= =?us-ascii?Q?S8gDWkKzrGQm6BHsqmWyvS+DqoTzBVFr/tiyaTMdPOLgRK5q/+tqaJR4yjdo?= =?us-ascii?Q?NhyVFgSKW3xJTjPASh9QZzTxCrciqsjJdgU467G5KcivudXoylxxLIll+wtz?= =?us-ascii?Q?AVWQJUjDzSTuz46K+NPkd7YlFwrhCgz9r99+FBbcjl1vNPT7Tx84pBZ3/NkS?= =?us-ascii?Q?bcySWKU7asOrHSSUxMBvsucpM6AOw2q24Y0npQLiZuDK9wnGa4x3zapD539i?= =?us-ascii?Q?FAv+/mnnFUykVNAWm1ttjVFCz9mu+k5ldbn3oNdkEyhztDzx8l6fx9lr4oOP?= =?us-ascii?Q?nDfxlH+FN+sPgsLHq44xhzYKviVHgR1WF/p6Gh1nvEhD9IjQf+HRxfKWGAeG?= =?us-ascii?Q?Wi8Hr0jWNsvt1AmMkcoHD5ed9nAFK1ledf++H8WXfasWAjGfyyl4i2joZA7W?= =?us-ascii?Q?T5xpvi+Wy1L42wv9bk3SquWQwmhxru5OPsZoA8OCrTU67XgoKPg0v6BdycY7?= =?us-ascii?Q?AulTBa936M/TVtyBcIXeFTcA7oGP46Lqflu/Ut8hOouqg/K3F2ANJbiNmXVe?= =?us-ascii?Q?XhwlkmmO7gl4Lgc9m+Re+qQaq9aQuTw6j7ANdzo6oTHlFJFuigaY5lED+qKJ?= =?us-ascii?Q?83gy2V0HjS2kt+3m/4nuIbV9bd9jbNUb/B7wlcDqLyYSKCh1zilLk/Yj55Cd?= =?us-ascii?Q?NVYGwVYgjdemyg9byPqh2YB1jGJ+wjJSnaqZ7JPgVnxFdbuqO8hNPPVNGurm?= =?us-ascii?Q?soCa73hQBa/2ioGRZBRkTGI+iuiGrAnPtgvgvkDiGo/lBz/DUwwWhrUN5Czq?= =?us-ascii?Q?s146OSM7F39QQCXp5yNlD6+oPMmIOxJ4Nr6NdzXh+q5P/PumwZTaRhKG4PnF?= =?us-ascii?Q?DEs4bemkwO/PFAGfFR4=3D?= Content-Type: multipart/alternative; boundary="_000_MW5PR11MB590896F07C85DCEC8CF32F0DA9FF2MW5PR11MB5908namp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f74db7cd-7dce-43af-45c9-08dc837caa73 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2024 03:24:23.8166 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: k9htSwjxAaov3nQbRmPXXY9Cu5vk0LKKGUbstq9zE0sfa2IVAuoMayriQhKJ7Av2mhh1Zmg9Ep/4L96g271JGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB8111 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,KAM_LOTSOFHASH,KAM_NUMSUBJECT,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_000_MW5PR11MB590896F07C85DCEC8CF32F0DA9FF2MW5PR11MB5908namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks Juzhe, will commit it after the middle-end patch, as well as the res= t similar 4 patches. Pan From: juzhe.zhong@rivai.ai Sent: Monday, June 3, 2024 11:19 AM To: Li, Pan2 ; gcc-patches Cc: kito.cheng ; Li, Pan2 Subject: Re: [PATCH v1 1/5] RISC-V: Add testcases for scalar unsigned SAT_A= DD form 1 LGTM. Thanks. ________________________________ juzhe.zhong@rivai.ai From: pan2.li Date: 2024-06-03 11:09 To: gcc-patches CC: juzhe.zhong; kito.cheng; Pan Li Subject: [PATCH v1 1/5] RISC-V: Add testcases for scalar unsigned SAT_ADD f= orm 1 From: Pan Li > After the middle-end support the form 1 of unsigned SAT_ADD and the RISC-V backend implement the scalar .SAT_ADD, add more test case to cover the form 1 of unsigned .SAT_ADD. Form 1: #define SAT_ADD_U_1(T) \ T sat_add_u_1_##T(T x, T y) \ { \ return (T)(x + y) >=3D x ? (x + y) : -1; \ } Passed the riscv fully regression tests. gcc/testsuite/ChangeLog: * gcc.target/riscv/sat_arith.h: Add helper macro for form 1. * gcc.target/riscv/sat_u_add-5.c: New test. * gcc.target/riscv/sat_u_add-6.c: New test. * gcc.target/riscv/sat_u_add-7.c: New test. * gcc.target/riscv/sat_u_add-8.c: New test. * gcc.target/riscv/sat_u_add-run-5.c: New test. * gcc.target/riscv/sat_u_add-run-6.c: New test. * gcc.target/riscv/sat_u_add-run-7.c: New test. * gcc.target/riscv/sat_u_add-run-8.c: New test. Signed-off-by: Pan Li > --- gcc/testsuite/gcc.target/riscv/sat_arith.h | 8 ++++++ gcc/testsuite/gcc.target/riscv/sat_u_add-5.c | 19 ++++++++++++++ gcc/testsuite/gcc.target/riscv/sat_u_add-6.c | 21 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/sat_u_add-7.c | 18 +++++++++++++ gcc/testsuite/gcc.target/riscv/sat_u_add-8.c | 17 +++++++++++++ .../gcc.target/riscv/sat_u_add-run-5.c | 25 +++++++++++++++++++ .../gcc.target/riscv/sat_u_add-run-6.c | 25 +++++++++++++++++++ .../gcc.target/riscv/sat_u_add-run-7.c | 25 +++++++++++++++++++ .../gcc.target/riscv/sat_u_add-run-8.c | 25 +++++++++++++++++++ 9 files changed, 183 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-8.c diff --git a/gcc/testsuite/gcc.target/riscv/sat_arith.h b/gcc/testsuite/gcc= .target/riscv/sat_arith.h index 2ef9fd825f3..2abc83d7666 100644 --- a/gcc/testsuite/gcc.target/riscv/sat_arith.h +++ b/gcc/testsuite/gcc.target/riscv/sat_arith.h @@ -10,6 +10,13 @@ sat_u_add_##T##_fmt_1 (T x, T y) \ return (x + y) | (-(T)((T)(x + y) < x)); \ } +#define DEF_SAT_U_ADD_FMT_2(T) \ +T __attribute__((noinline)) \ +sat_u_add_##T##_fmt_2 (T x, T y) \ +{ \ + return (T)(x + y) >=3D x ? (x + y) : -1; \ +} + #define DEF_VEC_SAT_U_ADD_FMT_1(T) \ void __attribute__((noinline)) \ vec_sat_u_add_##T##_fmt_1 (T *out, T *op_1, T *op_2, unsigned limit) \ @@ -24,6 +31,7 @@ vec_sat_u_add_##T##_fmt_1 (T *out, T *op_1, T *op_2, unsi= gned limit) \ } #define RUN_SAT_U_ADD_FMT_1(T, x, y) sat_u_add_##T##_fmt_1(x, y) +#define RUN_SAT_U_ADD_FMT_2(T, x, y) sat_u_add_##T##_fmt_2(x, y) #define RUN_VEC_SAT_U_ADD_FMT_1(T, out, op_1, op_2, N) \ vec_sat_u_add_##T##_fmt_1(out, op_1, op_2, N) diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5.c b/gcc/testsuite/g= cc.target/riscv/sat_u_add-5.c new file mode 100644 index 00000000000..4c73c7f8a21 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-5.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gc -mabi=3Dlp64d -O3 -fdump-rtl-expand-detai= ls -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6.c b/gcc/testsuite/g= cc.target/riscv/sat_u_add-6.c new file mode 100644 index 00000000000..0d64f5631bb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-6.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gc -mabi=3Dlp64d -O3 -fdump-rtl-expand-detai= ls -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-7.c b/gcc/testsuite/g= cc.target/riscv/sat_u_add-7.c new file mode 100644 index 00000000000..fe9dcd4f806 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-7.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gc -mabi=3Dlp64d -O3 -fdump-rtl-expand-detai= ls -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_2: +** addw\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-8.c b/gcc/testsuite/g= cc.target/riscv/sat_u_add-8.c new file mode 100644 index 00000000000..ebe2ad7b94b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-8.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gc -mabi=3Dlp64d -O3 -fdump-rtl-expand-detai= ls -fno-schedule-insns -fno-schedule-insns2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5.c b/gcc/testsui= te/gcc.target/riscv/sat_u_add-run-5.c new file mode 100644 index 00000000000..508531c09d7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=3Dc99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] =3D { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6.c b/gcc/testsui= te/gcc.target/riscv/sat_u_add-run-6.c new file mode 100644 index 00000000000..99b5c3a39f0 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=3Dc99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] =3D { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-7.c b/gcc/testsui= te/gcc.target/riscv/sat_u_add-run-7.c new file mode 100644 index 00000000000..13f59548935 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-7.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=3Dc99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] =3D { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-8.c b/gcc/testsui= te/gcc.target/riscv/sat_u_add-run-8.c new file mode 100644 index 00000000000..cdbea7b1b2c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=3Dc99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] =3D { + /* arg_0, arg_1, expect */ + { 0, 0, 0, = }, + { 0, 1, 1, = }, + { 1, 1, 2, = }, + { 0, 18446744073709551614u, 18446744073709551614u, = }, + { 1, 18446744073709551614u, 18446744073709551615u, = }, + { 2, 18446744073709551614u, 18446744073709551615u, = }, + { 0, 18446744073709551615u, 18446744073709551615u, = }, + { 1, 18446744073709551615u, 18446744073709551615u, = }, + { 2, 18446744073709551615u, 18446744073709551615u, = }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, = }, +}; + +#include "scalar_sat_binary.h" -- 2.34.1 --_000_MW5PR11MB590896F07C85DCEC8CF32F0DA9FF2MW5PR11MB5908namp_--