From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) by sourceware.org (Postfix) with ESMTPS id 6744D3858D38 for ; Mon, 22 Apr 2024 06:59:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6744D3858D38 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 6744D3858D38 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=198.175.65.18 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1713769166; cv=pass; b=Dj2BaM+mYtOzOEu6ijHX81wavzCMNU6jJBuf+APnacaf5lBYZ9goDQnnTOiGYgGTsuRBoMi8C5zaix2UsPluJBF2r8Fnruun5GsX1uvhD5n0NxsPtr5Ira0sWg5Nl8lz5bE3hluYOGyCH1gO5/Avi7q9vXLwePNOgUk2qrhReJQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1713769166; c=relaxed/simple; bh=Fd4efe+YX0zun9b0d5Ts5lIi3zCeiCZqj8VmQNhsU3o=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=uGXgBLYAUgq5uf2Zpb2btKP9h0eeTIztaC8zf9w/b8ekMVR64VBCbWbV6CNPZ2abktLO06IsP9chnqoj+2kePwIXjY74kh1LxZ8b7Engk/4fQlUwjhAH1HzEZEdPMOQ9pAkOg1/4cVwADUz2ICsGF2Al8f5vw+0BqVi3dgGNeWU= 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=1713769163; x=1745305163; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=Fd4efe+YX0zun9b0d5Ts5lIi3zCeiCZqj8VmQNhsU3o=; b=f/ujAPzr3a6P+JVDWshiPrqYOu5PXCK+IZyjGk1SfT9u3NcznK03xJ5S c2IcewvFJBp/3hL5C1Thy9UtSr2HXqoI4ADGLyYfKnUaA2jYxU9hlPILD HYtUiRh5fxHCrF33BC+pUzLQ615pmwqClh2uNeHr1pJ0CNmDUFpILXOSF 6XDho/nwGvvZseKDD6bd8nE+YOEmYND/vqkbkLGClhsI9by7/vyZPn/qn 66fMs/1UttVtRCU/qzAFnP3qa/WY+Y/lpykmgnw9Gc8rq2dZVjLoNyPJw aP/PpggCuz16YsgEymJw5oiH0+V0A/V86sQxQRIVtsjXLQyh61hz76dfA g==; X-CSE-ConnectionGUID: vHb3UZ6qQOyaQJ4z2QEYng== X-CSE-MsgGUID: t6STtbfeQEKh5udh687eIQ== X-IronPort-AV: E=McAfee;i="6600,9927,11051"; a="9444425" X-IronPort-AV: E=Sophos;i="6.07,220,1708416000"; d="scan'208,217";a="9444425" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2024 23:59:18 -0700 X-CSE-ConnectionGUID: MmvfZ0UVSy6psLrOwPAm8w== X-CSE-MsgGUID: tJMeTTezR7qiaySEUGXcQA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,220,1708416000"; d="scan'208,217";a="28587538" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 21 Apr 2024 23:59:17 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sun, 21 Apr 2024 23:59:16 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Sun, 21 Apr 2024 23:59:16 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Sun, 21 Apr 2024 23:59:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y1774J8ZgGpq6PWTA9jxqWNkSYkQDisqm3lYsXtFIkQ/fSDYb6kBQIHB9E7pGxjRL4MRZs76WU85t6s8TJtYNIkMWKAeyao4Gd6AtNd+LBQd5wDrKZmEcJCX8Hxd94GapkhE83lHqza4xhV5leG/O1/zlZfPTVkPRD4CuV/CdTXZ71GYBpU1xYnxwszPg360HwDl/aqyndDj2qDCLCpIwBLQazWpgzWIqDrUB70kcSbwvhnt17ApfCuzZ3nQYjgHGY62B9d5pM3Vbp9TE1iNLBbwIGsHSVjpJjsTfB4kTLQOeEfFp1wNfu2uG7Jwnj0+pJlKmQgQ5s4D1NhyS0pGBQ== 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=4uwmPAMJciagDdD3N3ej6r449+weKP44uvA92tEypCU=; b=enyzPBFesmtuV+3FBJdzHux1Co5nbEwTcGUeZ42CR0Dt0jdKrXmHEOMxAKyUUa68LjbmGEVeIxCrgFqAjZR6b90FComjaU86KyRk14hBCd39PCFTcuGphsZXhkXnC/qSaubtowdqspGzsPyPc8MPPMk5WIGnPPD5bYWBv8jTa+9r6Q89RiComwd3AIJLyfQoOqbuIbsxYFp34suwuFjvXJn9n4m74bzIiBZLecDprgHBPcC5DfhGf2AK+jCIhIM0cPYYZRPeF2b+pUr4FS6Mpa9ES/1+CcY/h/LwRWDODwhDJDCySciejluHkvjwt5kD8pieUL9CYpGG8KUDuLH81g== 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 PH8PR11MB6902.namprd11.prod.outlook.com (2603:10b6:510:229::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.20; Mon, 22 Apr 2024 06:59:13 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::aaa8:bc22:5fb0:5ed0]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::aaa8:bc22:5fb0:5ed0%5]) with mapi id 15.20.7519.018; Mon, 22 Apr 2024 06:59:13 +0000 From: "Li, Pan2" To: "juzhe.zhong@rivai.ai" , gcc-patches CC: kito.cheng , Robin Dapp Subject: RE: [PATCH v1] RISC-V: Add xfail test case for highest-number regno ternary overlap Thread-Topic: [PATCH v1] RISC-V: Add xfail test case for highest-number regno ternary overlap Thread-Index: AQHalH9SsCF4/fqhXkSHHABEMqn4zrFz1vNygAAFKKA= Date: Mon, 22 Apr 2024 06:59:13 +0000 Message-ID: References: <20240422063539.1062824-1-pan2.li@intel.com> <99981D9D554E371C+202404221439379827582@rivai.ai> In-Reply-To: <99981D9D554E371C+202404221439379827582@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_|PH8PR11MB6902:EE_ x-ms-office365-filtering-correlation-id: ffbde4ae-e81b-4418-5a3c-08dc6299b7f7 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?wImyDLE92GVmp8MPQ5+NQNc0t/wpHCSs8CarHHfqJNcVkkGqIIzMXvl83Hs9?= =?us-ascii?Q?o5AtDCNzRPh4UMh/ZaoIIqoEo0y/OWuNpflGNqGzX2ETLHnId78qAftsrORt?= =?us-ascii?Q?e2QkbqQjHuWUV6Q/PneGz0qB8I2cmw2W4jvKV9IBjYlqyvsj8IYKXITPyFnb?= =?us-ascii?Q?3gMxfSHygqC0cEzbhWGbEzzdE19k77PfTGUvIzSc3oh5sJLTTFDgV2ZGBQ0E?= =?us-ascii?Q?b78UoIR1iBhRBbwbM2+KTlmAUB9k8Ztn1uYycktD4iFlJgAW10GotxAWkNUS?= =?us-ascii?Q?QDieu7Het6ssIN0pHi1cl5WvwRftj8MAxHq9PqDV/oezHlfA6uevfDRlPzip?= =?us-ascii?Q?Mvdio9S+ngpJL15vC3AFq14spN4JMIR+9t+qpX7HWcJD5EK6gEEqvhpHgQy4?= =?us-ascii?Q?SBdMLaocNhYOPZYH/ho8WI6oWZhMbHfKT/RgN5jabmWfY4TzI6I0XJtmBX9I?= =?us-ascii?Q?TNxWsCMbztiWuyh2/Mmz8A/Nw2ikV4+hlIY0ChLMLkJxeTXMlHTphZA62t93?= =?us-ascii?Q?ruVq7078CGMe2hEz/cbIl/++4I5733AgCHp4uJ8pwi586/+z4RXoxrn+3LkH?= =?us-ascii?Q?BV4PUeVih994o+z1Gljcl6n5I8KaUiHfyKQundf8m1k8UP/Auri89Vphn/Bv?= =?us-ascii?Q?RDZ3CI2JmPw9W0WHDXkRVIzX1yw65w8OO20PhjsNaL8RSG1ikf26R1BkX8vT?= =?us-ascii?Q?/NMFxdOeIAb1F24uhLAOQpWcspHgC0l4qq5QmL6OANA754L//PEps0U9X0HV?= =?us-ascii?Q?hoyvNxCVqZEtYNl5wfw4O5bQ8r2bYJoKJX+Yk6KfZKCI7oLSTJu8y29ERb+T?= =?us-ascii?Q?zxibv0+Z6aWpRMoEJQt89C42F3AOE2iOIuJnvHAIbTczu8tO//ZLk91cotWe?= =?us-ascii?Q?NHyosUGq5iBljzPlfyYY9BPv0BdohY+K07kgE2uc/CbAbAOYS+0QzHQV/kaG?= =?us-ascii?Q?CGoBMDAviKHD5XbNR7C6eFvQLxi7zsLWwXhAoJxeUoDfSMv7NH9ZtyBZBkfS?= =?us-ascii?Q?HT8dn3sRJ/brAIzNAzDKIBKQ72e0jUg/2vNhCohbt0E22BMeqNryMopWTPsp?= =?us-ascii?Q?btf9PQc1tXSoFUhnR590qfzrBqb6nXkD/zCaVo+MJSZRpGqjSs23hNjObzO0?= =?us-ascii?Q?EV32OrzGQGPUO9gLiC3g27peK6U6wqZr437va68rmS+8brC6hSpXZFoTYyN8?= =?us-ascii?Q?/p2IMC2NR5dC2VHr+aty2Ht/KqCeIpblzhqCb71/ZkzUoqnHysb91XH7rPhV?= =?us-ascii?Q?CFlHQLcW+h6DSN2V1hdBvdb8klwqxdLuS8TEL3OSuqEu7shMM24B/1/6vjZV?= =?us-ascii?Q?gqc=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?pP3tVaBp6MqRsoRCNLIVMcEp42a4mQm+EFitd5CrXJNLYRzcwYo7kFw/I3Kf?= =?us-ascii?Q?QBDM+Zrygv1CHGPrTeKXtaNIQzPNbNGUC0iL0TLC8KOT9W0n7uMlRkaYIYkc?= =?us-ascii?Q?y/KHql2h6WbtCu7O97zcDogyZzbq7eiWyq7fBHGThYvBbbZczRDRGqYw47Y4?= =?us-ascii?Q?aHQU2h5LmQ0oiApIPSMaOfjjIVqYRN07wSq+R1acGCs9MJUvettDW62g2b+U?= =?us-ascii?Q?OPU3FHgOxtD9xWINFC6MsaozSx4QjeLRRypaqYvBAkk76BWEO4g5BuyVK3xl?= =?us-ascii?Q?4KjjKfPe1uag09XxdkXvx7d36mO8e5oagssPknTa1Xis4EtkvOwda+r9Y3iP?= =?us-ascii?Q?zt628l361TeTCr9ISL48cCtLMafRQ9HG1WYLYk7nO5S3wAmy7ZlJspQLKcEI?= =?us-ascii?Q?CkSAVKknEDVz6/UQgYOXwAERArgn+t/BxFuErsfphPdKGM+0oO8XWS5LGgHr?= =?us-ascii?Q?jH7WHONmtYoeyQk7AMBxSkXIHEtcVnzpCkQMIUB/wX/pOTgrnl5YryYaowgd?= =?us-ascii?Q?CUoORGHZuvCzJHtWMtvzhpLWVhKSv4QBWU7ROUfc8w0C81pVoHHLLl7gNPlK?= =?us-ascii?Q?zf10XPiylX4G+vzFXr8haTKu11Xa8N47sfMBD3iowZle6W3LQrZFDGLunfGs?= =?us-ascii?Q?QLayZ9pqHKu5Q4qcWICWhzDtWTdwBgoMqhjwl7Xt8C2nZjrVKaxwEWtHjAvJ?= =?us-ascii?Q?GGSjFdWqSMAbMW9aIScDP3KxgdBGLEnhO/se3uSs/8gWIhjNreJxt/Q73/hp?= =?us-ascii?Q?HtjUhbAfGdMEvbbyI9XUhQtx/ihkZwvg8gjckr3JfPi9Cz1pnR6V1nyZfrW8?= =?us-ascii?Q?Igx7U/cZMMppwY+HfyuCBCyukQB2s2RpVwBkqZb9gJ+vXhRgQpMysVsoKPz1?= =?us-ascii?Q?RHV489csrgFYIt06hSn5RTesrs3WeQRhBqqJvZ4K/GNa7WJdofP4W2dAPy7Q?= =?us-ascii?Q?q2I240qtRgdIalm19iKCD2Nv/SLUrUjiCSe27YUXWS84S1mqi9ef/px5SM6l?= =?us-ascii?Q?rcIwHsBJsFxS0SO/jLqaj45DKE29cBSt+/2SytF7r1y59rzKwdiWoS2o25QR?= =?us-ascii?Q?zHa9kZyz0nFJK4S+KfVNpiqe0NBgbre5hpTprZfF2CcLGhZ54DhqTCyQPC9n?= =?us-ascii?Q?b/FZamhoR45PT6xx7ooyjX/eUFl80bP0lwuFTFdgJOAovl17ps5TbJcBsLQX?= =?us-ascii?Q?DFPEtYD6yiAb40yRXW88lpp3ZWRuMId/76ZQYwb1hSCIEJsHPx59724qXg1L?= =?us-ascii?Q?+KmvfC9x0YVhYuIVJ+NIK2JyvOBK9az0z6E60Nz5YRrYUi4t2IXyLQmwMbv6?= =?us-ascii?Q?wHAs7dKJhw2lvU0prlpmVDUYnAbpM5GQOTukE2mEIFZ4esSQZFjeHFKO51ob?= =?us-ascii?Q?yNdOkQxMt/wDC+rGWJ+8RjYfOi3vP6sMKZdjECkoHZeai75mh31ef/L5hk7C?= =?us-ascii?Q?X1cRSL34Ixy6j+xzXjbFSUkdZaljLZu22iNuF1pcJ1X0CetUTJd2Apf8P0+z?= =?us-ascii?Q?xDSWVqDbX6/OW+WlKHGK1f5FgFcxCi3Do+tm4P6estgRyvyPRB2+QPG/O3vS?= =?us-ascii?Q?2hbdwNNRJEO1Z9eXaJ0=3D?= Content-Type: multipart/alternative; boundary="_000_MW5PR11MB5908B1D8B449824B5E5BA209A9122MW5PR11MB5908namp_" 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: ffbde4ae-e81b-4418-5a3c-08dc6299b7f7 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Apr 2024 06:59:13.5117 (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: WphkZh9jXc1jh/i3yP14ruJnxJkZ1mVw3vmlbrJFpwKHvHIm2UYU/oEq5fxRupGTCkDXMiXP39Lre1afN3fiFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6902 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.5 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_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP 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_MW5PR11MB5908B1D8B449824B5E5BA209A9122MW5PR11MB5908namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Committed, thanks Juzhe. Pan From: juzhe.zhong@rivai.ai Sent: Monday, April 22, 2024 2:40 PM To: Li, Pan2 ; gcc-patches Cc: kito.cheng ; Robin Dapp ; Li= , Pan2 Subject: Re: [PATCH v1] RISC-V: Add xfail test case for highest-number regn= o ternary overlap LGTM. ________________________________ juzhe.zhong@rivai.ai From: pan2.li Date: 2024-04-22 14:35 To: gcc-patches CC: juzhe.zhong; kito.cheng; rdapp.gcc; Pan Li Subject: [PATCH v1] RISC-V: Add xfail test case for highest-number regno te= rnary overlap From: Pan Li > We reverted below patch for register group overlap, add the related insn test and mark it as xfail. And we will remove the xfail after we support the register overlap in GCC-15. 27fde325d64 RISC-V: Support highest-number regno overlap for widen ternary The below test suites are passed. * The rv64gcv fully regression test. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/pr112431-37.c: New test. * gcc.target/riscv/rvv/base/pr112431-38.c: New test. Signed-off-by: Pan Li > --- .../gcc.target/riscv/rvv/base/pr112431-37.c | 103 ++++++++++++++++++ .../gcc.target/riscv/rvv/base/pr112431-38.c | 82 ++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c b/gcc/te= stsuite/gcc.target/riscv/rvv/base/pr112431-37.c new file mode 100644 index 00000000000..66e81ea905a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c @@ -0,0 +1,103 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gcv -mabi=3Dlp64d -O3" } */ + +#include "riscv_vector.h" + +void +foo (void *in, void *out) +{ + vint16m2_t accum =3D __riscv_vle16_v_i16m2 (in, 4); + vint16m1_t high_eew16 =3D __riscv_vget_v_i16m2_i16m1 (accum, 1); + vint8m1_t high_eew8 =3D __riscv_vreinterpret_v_i16m1_i8m1 (high_eew16); + vint16m2_t result =3D __riscv_vwmacc_vx_i16m2 (accum, 16, high_eew8, 4); + __riscv_vse16_v_i16m2 (out, result, 4); +} + +void +foo2 (void *in, void *out) +{ + vint16m4_t accum =3D __riscv_vle16_v_i16m4 (in, 4); + vint16m2_t high_eew16 =3D __riscv_vget_v_i16m4_i16m2 (accum, 1); + vint8m2_t high_eew8 =3D __riscv_vreinterpret_v_i16m2_i8m2 (high_eew16); + vint16m4_t result =3D __riscv_vwmacc_vx_i16m4 (accum, 16, high_eew8, 4); + __riscv_vse16_v_i16m4 (out, result, 4); +} + +void +foo3 (void *in, void *out) +{ + vint16m8_t accum =3D __riscv_vle16_v_i16m8 (in, 4); + vint16m4_t high_eew16 =3D __riscv_vget_v_i16m8_i16m4 (accum, 1); + vint8m4_t high_eew8 =3D __riscv_vreinterpret_v_i16m4_i8m4 (high_eew16); + vint16m8_t result =3D __riscv_vwmacc_vx_i16m8 (accum, 16, high_eew8, 4); + __riscv_vse16_v_i16m8 (out, result, 4); +} + +void +foo4 (void *in, void *out) +{ + vint16m2_t accum =3D __riscv_vle16_v_i16m2 (in, 4); + vint16m1_t high_eew16 =3D __riscv_vget_v_i16m2_i16m1 (accum, 1); + vint8m1_t high_eew8 =3D __riscv_vreinterpret_v_i16m1_i8m1 (high_eew16); + vint16m2_t result =3D __riscv_vwmaccus_vx_i16m2 (accum, 16, high_eew8, 4= ); + __riscv_vse16_v_i16m2 (out, result, 4); +} + +void +foo5 (void *in, void *out) +{ + vint16m4_t accum =3D __riscv_vle16_v_i16m4 (in, 4); + vint16m2_t high_eew16 =3D __riscv_vget_v_i16m4_i16m2 (accum, 1); + vint8m2_t high_eew8 =3D __riscv_vreinterpret_v_i16m2_i8m2 (high_eew16); + vint16m4_t result =3D __riscv_vwmaccus_vx_i16m4 (accum, 16, high_eew8, 4= ); + __riscv_vse16_v_i16m4 (out, result, 4); +} + +void +foo6 (void *in, void *out) +{ + vint16m8_t accum =3D __riscv_vle16_v_i16m8 (in, 4); + vint16m4_t high_eew16 =3D __riscv_vget_v_i16m8_i16m4 (accum, 1); + vint8m4_t high_eew8 =3D __riscv_vreinterpret_v_i16m4_i8m4 (high_eew16); + vint16m8_t result =3D __riscv_vwmaccus_vx_i16m8 (accum, 16, high_eew8, 4= ); + __riscv_vse16_v_i16m8 (out, result, 4); +} + +void +foo7 (void *in, void *out) +{ + vint16m2_t accum =3D __riscv_vle16_v_i16m2 (in, 4); + vint16m1_t high_eew16 =3D __riscv_vget_v_i16m2_i16m1 (accum, 1); + vint8m1_t high_eew8 =3D __riscv_vreinterpret_v_i16m1_i8m1 (high_eew16); + vuint8m1_t high_ueew8 =3D __riscv_vreinterpret_v_i8m1_u8m1 (high_eew8); + vint16m2_t result =3D __riscv_vwmaccsu_vx_i16m2 (accum, 16, high_ueew8, = 4); + __riscv_vse16_v_i16m2 (out, result, 4); +} + +void +foo8 (void *in, void *out) +{ + vint16m4_t accum =3D __riscv_vle16_v_i16m4 (in, 4); + vint16m2_t high_eew16 =3D __riscv_vget_v_i16m4_i16m2 (accum, 1); + vint8m2_t high_eew8 =3D __riscv_vreinterpret_v_i16m2_i8m2 (high_eew16); + vuint8m2_t high_ueew8 =3D __riscv_vreinterpret_v_i8m2_u8m2 (high_eew8); + vint16m4_t result =3D __riscv_vwmaccsu_vx_i16m4 (accum, 16, high_ueew8, = 4); + __riscv_vse16_v_i16m4 (out, result, 4); +} + +void +foo9 (void *in, void *out) +{ + vint16m8_t accum =3D __riscv_vle16_v_i16m8 (in, 4); + vint16m4_t high_eew16 =3D __riscv_vget_v_i16m8_i16m4 (accum, 1); + vint8m4_t high_eew8 =3D __riscv_vreinterpret_v_i16m4_i8m4 (high_eew16); + vuint8m4_t high_ueew8 =3D __riscv_vreinterpret_v_i8m4_u8m4 (high_eew8); + vint16m8_t result =3D __riscv_vwmaccsu_vx_i16m8 (accum, 16, high_ueew8, = 4); + __riscv_vse16_v_i16m8 (out, result, 4); +} + +/* { dg-final { scan-assembler-not {vmv1r} } } */ +/* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {csrr} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c b/gcc/te= stsuite/gcc.target/riscv/rvv/base/pr112431-38.c new file mode 100644 index 00000000000..a0cf9afc88e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c @@ -0,0 +1,82 @@ +/* { dg-do compile } */ +/* { dg-options "-march=3Drv64gcv -mabi=3Dlp64d -O3" } */ + +#include "riscv_vector.h" + +void +foo (void *in, void *out) +{ + vfloat64m2_t accum =3D __riscv_vle64_v_f64m2 (in, 4); + vfloat64m1_t high_eew64 =3D __riscv_vget_v_f64m2_f64m1 (accum, 1); + vint64m1_t high_eew64_i =3D __riscv_vreinterpret_v_f64m1_i64m1 (high_eew= 64); + vint32m1_t high_eew32_i =3D __riscv_vreinterpret_v_i64m1_i32m1 (high_eew= 64_i); + vfloat32m1_t high_eew32 =3D __riscv_vreinterpret_v_i32m1_f32m1 (high_eew= 32_i); + vfloat64m2_t result =3D __riscv_vfwmacc_vf_f64m2 (accum, 64, high_eew32,= 4); + __riscv_vse64_v_f64m2 (out, result, 4); +} + +void +foo2 (void *in, void *out) +{ + vfloat64m4_t accum =3D __riscv_vle64_v_f64m4 (in, 4); + vfloat64m2_t high_eew64 =3D __riscv_vget_v_f64m4_f64m2 (accum, 1); + vint64m2_t high_eew64_i =3D __riscv_vreinterpret_v_f64m2_i64m2 (high_eew= 64); + vint32m2_t high_eew32_i =3D __riscv_vreinterpret_v_i64m2_i32m2 (high_eew= 64_i); + vfloat32m2_t high_eew32 =3D __riscv_vreinterpret_v_i32m2_f32m2 (high_eew= 32_i); + vfloat64m4_t result =3D __riscv_vfwmacc_vf_f64m4 (accum, 64, high_eew32,= 4); + __riscv_vse64_v_f64m4 (out, result, 4); +} + +void +foo3 (void *in, void *out) +{ + vfloat64m8_t accum =3D __riscv_vle64_v_f64m8 (in, 4); + vfloat64m4_t high_eew64 =3D __riscv_vget_v_f64m8_f64m4 (accum, 1); + vint64m4_t high_eew64_i =3D __riscv_vreinterpret_v_f64m4_i64m4 (high_eew= 64); + vint32m4_t high_eew32_i =3D __riscv_vreinterpret_v_i64m4_i32m4 (high_eew= 64_i); + vfloat32m4_t high_eew32 =3D __riscv_vreinterpret_v_i32m4_f32m4 (high_eew= 32_i); + vfloat64m8_t result =3D __riscv_vfwmacc_vf_f64m8 (accum, 64, high_eew32,= 4); + __riscv_vse64_v_f64m8 (out, result, 4); +} + +void +foo4 (void *in, void *out) +{ + vfloat64m2_t accum =3D __riscv_vle64_v_f64m2 (in, 4); + vfloat64m1_t high_eew64 =3D __riscv_vget_v_f64m2_f64m1 (accum, 1); + vint64m1_t high_eew64_i =3D __riscv_vreinterpret_v_f64m1_i64m1 (high_eew= 64); + vint32m1_t high_eew32_i =3D __riscv_vreinterpret_v_i64m1_i32m1 (high_eew= 64_i); + vfloat32m1_t high_eew32 =3D __riscv_vreinterpret_v_i32m1_f32m1 (high_eew= 32_i); + vfloat64m2_t result =3D __riscv_vfwnmsac_vf_f64m2 (accum, 64, high_eew32= , 4); + __riscv_vse64_v_f64m2 (out, result, 4); +} + +void +foo5 (void *in, void *out) +{ + vfloat64m4_t accum =3D __riscv_vle64_v_f64m4 (in, 4); + vfloat64m2_t high_eew64 =3D __riscv_vget_v_f64m4_f64m2 (accum, 1); + vint64m2_t high_eew64_i =3D __riscv_vreinterpret_v_f64m2_i64m2 (high_eew= 64); + vint32m2_t high_eew32_i =3D __riscv_vreinterpret_v_i64m2_i32m2 (high_eew= 64_i); + vfloat32m2_t high_eew32 =3D __riscv_vreinterpret_v_i32m2_f32m2 (high_eew= 32_i); + vfloat64m4_t result =3D __riscv_vfwnmsac_vf_f64m4 (accum, 64, high_eew32= , 4); + __riscv_vse64_v_f64m4 (out, result, 4); +} + +void +foo6 (void *in, void *out) +{ + vfloat64m8_t accum =3D __riscv_vle64_v_f64m8 (in, 4); + vfloat64m4_t high_eew64 =3D __riscv_vget_v_f64m8_f64m4 (accum, 1); + vint64m4_t high_eew64_i =3D __riscv_vreinterpret_v_f64m4_i64m4 (high_eew= 64); + vint32m4_t high_eew32_i =3D __riscv_vreinterpret_v_i64m4_i32m4 (high_eew= 64_i); + vfloat32m4_t high_eew32 =3D __riscv_vreinterpret_v_i32m4_f32m4 (high_eew= 32_i); + vfloat64m8_t result =3D __riscv_vfwnmsac_vf_f64m8 (accum, 64, high_eew32= , 4); + __riscv_vse64_v_f64m8 (out, result, 4); +} + +/* { dg-final { scan-assembler-not {vmv1r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */ +/* { dg-final { scan-assembler-not {csrr} } } */ -- 2.34.1 --_000_MW5PR11MB5908B1D8B449824B5E5BA209A9122MW5PR11MB5908namp_--