From patchwork Wed May 22 10:04:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90671 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8969538654B0 for ; Wed, 22 May 2024 10:07:36 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2059.outbound.protection.outlook.com [40.107.15.59]) by sourceware.org (Postfix) with ESMTPS id 2819E3858416 for ; Wed, 22 May 2024 10:05:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2819E3858416 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2819E3858416 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.15.59 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372324; cv=pass; b=eEaHYfRXyuRq+Ok+2s1u5CSjLHG+kqykuTMBTnDHsnxAEQsrA3t/h0SZ7Gs95fFBiB6zgHTVRQQTXSXijWfbCeCn3b3f+QiV0aoTaMUpSNI3eCub9LS2mcmYBR/5sz/wXdcY0awLRdQI3nHeeJ0JiG0YeZvyOxDX0vTsoGdbTT4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372324; c=relaxed/simple; bh=HMxl7/b0oggcUm2IcA09wT/ZbceiF0nhPi39jy4FG6g=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=RJTbnb/wAO5GobYiq/04nxbDTMU6qHFypBsBMOommaw+ioaTQlUq9+1nDeYSBrHZ7NVvxQ7LH5yq8vaDvGBPBgfCU5ZpajXTqW32D1gXCaH+NQQvwUsi1CMNdMlBW8aAtbq3wn90sAXEg3omTJm2yQmrpaqoKWAAOiPH37dC0r8= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=l22hPOScKnyD7aJUDgQVDrdrE0gsC8Vwqh7+eqsq8IwBOyaCGQbj6rPy9nyaysbqVbOWAHLdSSNlqpSYEW0BUqVcd6u4kJrWjJUK4yziVOGcRWNI0+ZdyNUb+DiSt6iQLyfO+alCDXRoRXC6SI76eI/X3WliQdCUcWu6smbU4lGS8wnFL3kXmPovn7Lqv/CgfOnlHC4NM7PwTZwzYvVDKBxUmbMto1boFHJW4LRNZjUWO4kftz5R0R6qgSp2ExnVDj6DlD0CNkTZLhuIlnpIsNY4SaOesghOzkbuAjyqJkXBbkiyVIw7vUX0oFrYyIg9txGyX0zfp9rCi4z39xWrwQ== ARC-Message-Signature: i=2; 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=kkOb17s583sEZiVNsiz6UnpTIPFI5MDR46heJfyyxeg=; b=KtKOM+tj1uDoUeTu8C1SNExP4QUCvPIEv/LJukj84NI7u3K+ESxavaW/+r39sPrMZxsXpL4pn0x3VB1cOZup4SCeq6/qiz5/w7iE/Pc78JuNYvvw9mFyDr5eC4CSWqySe1PTgblu1o4mjjnUdtlWDVvlPi9spe25zPlhPCwYDT9I6HponFxccBVmx/GyazTCR8w/20o+dXUpdETT4qzDR19gklA8u4OnoAXkmh6XeBCwltOKwL4qXSeX4wQk0z7NRrbTEl+qe6QrfoblG9ijaZN8nHObuEBXd63TFg/xuoVzzsBUPL6LUVFaaec8rfOt6HhhmLOfiTOr5DY55AsyyA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kkOb17s583sEZiVNsiz6UnpTIPFI5MDR46heJfyyxeg=; b=gSc3qrU76HIXCX35C5MGBP/3bHDFNLJmWNNaM19JWgR/77UXNIRc8XWgUz+P5u4FvGITJIUps2gbRXXP7SmFPgNPkv8ybpPwJ7UCSdXRkhSySDJT82ZmtcUN9rk3CFYdV4sCEPjXuMufZzNR5bljiQpBuhem2I4UWJB+xgNy4j8= Received: from AM6P191CA0073.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::14) by DU0PR08MB8811.eurprd08.prod.outlook.com (2603:10a6:10:478::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:05:08 +0000 Received: from AMS0EPF000001B1.eurprd05.prod.outlook.com (2603:10a6:209:8a:cafe::95) by AM6P191CA0073.outlook.office365.com (2603:10a6:209:8a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36 via Frontend Transport; Wed, 22 May 2024 10:05:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AMS0EPF000001B1.mail.protection.outlook.com (10.167.16.165) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:08 +0000 Received: ("Tessian outbound e5fb9b7e6155:v327"); Wed, 22 May 2024 10:05:08 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 12b1029b2ba2aaf9 X-CR-MTA-TID: 64aa7808 Received: from deef28eb299f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 933E1662-66C1-4FF9-98FE-64C8CC8E750E.1; Wed, 22 May 2024 10:05:01 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id deef28eb299f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:05:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hu1o0D4b0BVCIDiiLuxsNeW+OyAjTc3dz/OEOM9cCrE1oGeleRFmZxU0/3ezrOiMxxTjAIfOs4YA5YpTmxoD1YGENxfVuj57l0ElJ6DAgd/Z2x456swhM1EotTmFciIJp+7eaWxj/Se+W4i4vynGjkQvASkDj2gPCacmPIcgr2LwHTKQDzKo0saZBNxHldzeQQfIIR6TmzQinMl2KU7+uA0P4STeGPz4ga+K2GxNzQX4DMYQlITon7cX85+6NIBSInTZVyC+5/CX8Rvg08xJXBZmozV8UKjtAx8eAp0SegI0hF5aVp94Q4SEZF/QnJj3IXiCfHmI631qZmrJRSSiHg== 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=kkOb17s583sEZiVNsiz6UnpTIPFI5MDR46heJfyyxeg=; b=TEkm8iszYk0TR5ZHvQJX5j4SkM2LOOqjU0aBU1nIJ82Sz+rDhG10ftzk9+uHWUa2c6z+FopSx9LglgCfNcaw92pjyLb+GhqG1k9d7v0iQusPZ29jkUloZCmpFKyLGz6BKMHkSBBE8j+z6BgiP6ZIOsv5tQJhGXGEkiJ44PjsLEvcB7Jhh+jWzwYA/1DhtFvKRMhDAfajrZ1CbwFpQ93bk+8EsQPFe6uXZM8buXqjcPfDIINBFITykImSCV0LNxXVFVHcCVP1DaGfJqnqwXCedMFU0/Cn0cLDl3ioANCP+8tg9CBH3ylizeo+3UzexRYM34jkjVpPUp8AqjDonL6uRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kkOb17s583sEZiVNsiz6UnpTIPFI5MDR46heJfyyxeg=; b=gSc3qrU76HIXCX35C5MGBP/3bHDFNLJmWNNaM19JWgR/77UXNIRc8XWgUz+P5u4FvGITJIUps2gbRXXP7SmFPgNPkv8ybpPwJ7UCSdXRkhSySDJT82ZmtcUN9rk3CFYdV4sCEPjXuMufZzNR5bljiQpBuhem2I4UWJB+xgNy4j8= Received: from DU7PR01CA0044.eurprd01.prod.exchangelabs.com (2603:10a6:10:50e::28) by DB5PR08MB10022.eurprd08.prod.outlook.com (2603:10a6:10:4a7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:04:55 +0000 Received: from DU6PEPF0000B61C.eurprd02.prod.outlook.com (2603:10a6:10:50e:cafe::d8) by DU7PR01CA0044.outlook.office365.com (2603:10a6:10:50e::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19 via Frontend Transport; Wed, 22 May 2024 10:04:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DU6PEPF0000B61C.mail.protection.outlook.com (10.167.8.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:04:55 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:51 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:50 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:04:50 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH 1/7][Binutils] aarch64: Enable mandatory feature bits for v9.4-A. Date: Wed, 22 May 2024 11:04:29 +0100 Message-ID: <20240522100439.1050296-2-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU6PEPF0000B61C:EE_|DB5PR08MB10022:EE_|AMS0EPF000001B1:EE_|DU0PR08MB8811:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a599581-69fa-49d0-d627-08dc7a46a92a X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|1800799015|376005|82310400017|36860700004; X-Microsoft-Antispam-Message-Info-Original: g0Eb6wvDEgFS9YSzehBoXSX2AmN7WRcypwhtlQrS/MFpNpuAhwUIHDt778DYCJTrTSSNDh/o4GisnA698HmyU3JeT2PNaKUzfv+HdUe6xBpzqK0NHefYBMXvLV583NGKSADdNU9J7+o6W0L90J/XmiCm0th5h+LMvisYsLdDwz5JkBhGmepqIcUnencfWsvftaWXHmCm24N9d1rrY0GTECmL1cNu7mFi/sqmmW4tnXMoCDVFHOMaPs0xEQurmle/+7TyAsZKRMAiKBTX/XZP9iqp9Xr7rJ7UlYR3jWwEfIXdhCpGGlqIIs9wjuLGqZ+8CmUqyquQqbfykUIeCFibF7Roq0tz3HauexIhlI09wOTzIMVEeT0kuTSyrjsPlNEoe8fg6T7PQcb531LcrWU9Y6AKJwL8cy3PqtJBp65UFtcargBm7o5SlgTvzlpgdrGYX2LDWRFO7yBLR6Hd2b114c/u3IKpd31N9oEIO+6VEo14PrqmmayGDLRE8TZilfjY4balArpbKEUktes2IpjLmuyXS9BEtYbo18x2UeTatTPJhXUSVejee2E267R2+JAexpTZVRSfWEIIOf0XV1n2l1HT0Y6j7UOX5k65a8BTIiCQwPgK1znyNS3Nc0hxsOMhmIstAfXKN9fGWfxe1fvArUxEZpFBGvDnGxkJVrRmV3RcQNSmrf7nzK99cUGvjXNNVmqL/X2yweibjArgcwHxvZxmMc4Yb+51oa3en30pikeVmX80b01v7SAINPfNYU9dtXqew5swYX3oePTRJ82iEBgGkIU1R4ec4VxxmehxmkQawcn5B/BJCPXwFYGGECPPUzmG152gPL2cbGcU6R4iTlEHlZ9wLcqnxcD+XVn9rr2Rzw594f9j9GxnFz5iWKWf0UwC55Gebg6H48wZa0liWgyBpEuhdVogxF5gR/xcuXJa1i5J8oLuoadrLK5UyKWQOm+kUYTmVPEzhgoTZyPx+2bfH8nk8iXzjlomO4Xpsy+C4IKwUS2V6OJbx6T73Xqn6bV/DAMr1+Rdse+KKFmKUVJmeKpMZ1pUeq7Rl+AfD/1bXGWPzYcYKuycnHNBNhkWXlz3pGxizEbAj9DQUTCBXCxCyBYSbGk/sbKR+02B3S1/PwXP3zO1SCz7Re6aV6cAro1HTDms5J1Mam/h9RwNr5edI1q94ihLGwSUFwIlVRi84auIMxsS7EXr4agGs/Sxp3JURWHzlN3a7QxjKOB6/W26XWQQIciPDM6hHnRGOU2p1T3Zr8WItjtmAq8Xy9hh20s3HxZaq3ZXjPIqJtRil41eczFoVPGUA1Bc6zMIdzpewrxXrgnLD/i1aP4lRqWLaknVddGMW/fEDrvV+h8vOpGmX9IZpkQ63vgspe0r7/2CA77n+cp6vBbjM4bINVXn X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(1800799015)(376005)(82310400017)(36860700004); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB10022 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF000001B1.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 96fda765-1a1b-43a6-bf3f-08dc7a46a14a X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|35042699013|82310400017|36860700004|376005; X-Microsoft-Antispam-Message-Info: =?utf-8?q?KgEBe1sjzcOSATVSqNM8o7JMs1xbGs5?= =?utf-8?q?Es4E1AUFMs1Dq1955vSJ+KN6pI5f5T61vvrH8vUOg6Zf+vdLKslwlZV6+qFNFLmGM?= =?utf-8?q?yKBABq4/+AnzLmlJCVNIQ/Ph98gA5ZMJF1MYmZbm7OpwOT3YYLcHZrwN6MEQ0g8ky?= =?utf-8?q?Fa6Ovt+0xrpqzLJS1gus2RIrz8VxswpZiMJ0wrnA3iIWDbSZEN7fLhIOvMUHh8tpv?= =?utf-8?q?YGajUPpVwNF0y754sVZfz6VwV8iR2ikOeXfN57PGVRjCG0wHMfT20arkY8jsTctC5?= =?utf-8?q?HxZNdqIrg6KsVPFQ3Ao1X+Q53XW0Ej8sHOK1VPREzpZGLo/C6YIur2DUXqzGwHaco?= =?utf-8?q?7q6Yu0LunV71CHUU/vzskhvL5ObwQ1K/wbCOl80XsORzAr34MJuakO4hjrQaxDSQh?= =?utf-8?q?rUtPKhnoXOrLIA6XGJBJGz89ciIIf+UoC8CmsC+UOCN+pizm4l4xAO2PXf4xUPB4T?= =?utf-8?q?HWS0fd2S8O2lCMbLfRrxhv+p1I3vanvL3r4Z2iENHMLY39TQFkK5fT86ASfyzGkbI?= =?utf-8?q?56KXTJjP3c9szr+4vD6m+e1O041TpoVqAWUPLr38JnyXwFMXVjvqmM0Zi4P5r+62w?= =?utf-8?q?vjlJQ/A1mNd3hPLukAAdWAJN/gyMb58de6C7mpTL2ZVntbarxf6Df/dXcE5yxQM1D?= =?utf-8?q?wohb10QrDokhEQncBfokEDeg+S740koZ1j59b3A8mRZ8dgWS4PLcBviRDHx1nnOeG?= =?utf-8?q?kVy2WoxKa0CGx9foUULyi/yqkxPKmY/3Vrqkw2OrmlA1DFDLFCtKhOuC5sc9M/ius?= =?utf-8?q?7lgqBCa4CwwcpfhPistuPJzj8qdg0WayGfX7z8FuFNW5B3KijQgnJ68KavA3uLJRr?= =?utf-8?q?+TLFQDoVyVj2y5l4ETYkwHdK6eG1GSQ9RHjJs//KP9rYx46I6zB7yotSwBTSsuvFg?= =?utf-8?q?eKF72x2/THHX761SE8ltyPXx/aYok/TT8q71E6WVv9y9Ep1/1C1WOHQCCNiw/XTln?= =?utf-8?q?jJfTNOt3aq7R8Ko7ltpUcMIRiLLNktwC0LIKNNvZzWrjPzOeBwisuuEClaBXErXKY?= =?utf-8?q?y8kYmdSOSdol4HhkrCTWkAYx4M4/WiDkUcJ4X+c1SXnIVi0DGhftaBJ3bGRS7Shnd?= =?utf-8?q?TLn7X+PDLHcjaNZOQYYJihULnVNmVbv95X3QH4Uo1lnNIr1ofQ1JilWnN7KZAw/S0?= =?utf-8?q?HknqR1Fr3UIvkGE8Vb+zeDZXQHYZocDwHUlS4VU665DMWM8TuO6BQ4UONHMOccX1M?= =?utf-8?q?zpwZXWhO4FOg7/JI2TPu14mXA7cdDDrvmIWR/YpyvmlwttrmyhJFqg5xa32kfP/ah?= =?utf-8?q?34/Nw1ZvrN39A2aPhLGM74pytn+7HZ3OH6e9b6mVJOYJeSqJnuLmtiCOp2x4Ygo17?= =?utf-8?q?UGC3fr4jWmFS?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(1800799015)(35042699013)(82310400017)(36860700004)(376005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:08.3598 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9a599581-69fa-49d0-d627-08dc7a46a92a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF000001B1.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8811 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Hi, This patch fixes the mandatory feature bits in v9.4-a architectures, by enabling FEAT_SVE2p1 for Armv9.4-A architecture by default. Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils master? Regards, Srinath. --- gas/testsuite/gas/aarch64/sve2p1-1-bad.d | 2 +- gas/testsuite/gas/aarch64/sve2p1-1.d | 2 +- gas/testsuite/gas/aarch64/sve2p1-2-bad.d | 4 ++++ gas/testsuite/gas/aarch64/sve2p1-2-bad.l | 2 ++ gas/testsuite/gas/aarch64/sve2p1-nosve2.s | 1 + include/opcode/aarch64.h | 3 ++- 6 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2-bad.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2-bad.l create mode 100644 gas/testsuite/gas/aarch64/sve2p1-nosve2.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-bad.d b/gas/testsuite/gas/aarch64/sve2p1-1-bad.d index a2ca49ef487..c28cdc76c4c 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1-bad.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1-bad.d @@ -1,4 +1,4 @@ #name: Illegal test of SVE2.1 min max instructions. -#as: -march=armv9.4-a +#as: -march=armv9.3-a #source: sve2p1-1.s #error_output: sve2p1-1-bad.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.d b/gas/testsuite/gas/aarch64/sve2p1-1.d index b93920cd02b..f562985b569 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1.d @@ -1,5 +1,5 @@ #name: Test of SVE2.1 instructions -#as: -march=armv9.4-a+sve2p1 +#as: -march=armv9.4-a #objdump: -dr [^:]+: file format .* diff --git a/gas/testsuite/gas/aarch64/sve2p1-2-bad.d b/gas/testsuite/gas/aarch64/sve2p1-2-bad.d new file mode 100644 index 00000000000..4d58f4b0bd6 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2-bad.d @@ -0,0 +1,4 @@ +#name: Illegal test of SVE2.1 instructions. +#as: -march=armv9.4-a+nosve2 +#source: sve2p1-nosve2.s +#error_output: sve2p1-2-bad.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-2-bad.l b/gas/testsuite/gas/aarch64/sve2p1-2-bad.l new file mode 100644 index 00000000000..1e16026f47c --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2-bad.l @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*: Error: selected processor does not support `addqv v0.16b,p0,z16.b' diff --git a/gas/testsuite/gas/aarch64/sve2p1-nosve2.s b/gas/testsuite/gas/aarch64/sve2p1-nosve2.s new file mode 100644 index 00000000000..7f457ea26e4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-nosve2.s @@ -0,0 +1 @@ +addqv v0.16b, p0, z16.b diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index ef4a3ffdcd3..8a58763ef78 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -325,7 +325,8 @@ enum aarch64_feature_bit { #define AARCH64_ARCH_V9_1A_FEATURES(X) AARCH64_ARCH_V8_6A_FEATURES (X) #define AARCH64_ARCH_V9_2A_FEATURES(X) AARCH64_ARCH_V8_7A_FEATURES (X) #define AARCH64_ARCH_V9_3A_FEATURES(X) AARCH64_ARCH_V8_8A_FEATURES (X) -#define AARCH64_ARCH_V9_4A_FEATURES(X) AARCH64_ARCH_V8_9A_FEATURES (X) +#define AARCH64_ARCH_V9_4A_FEATURES(X) (AARCH64_ARCH_V8_9A_FEATURES (X) \ + | AARCH64_FEATBIT (X, SVE2p1)) /* Architectures are the sum of the base and extensions. */ #define AARCH64_ARCH_V8A(X) (AARCH64_FEATBIT (X, V8) \ From patchwork Wed May 22 10:04:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90673 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 067FE3870887 for ; Wed, 22 May 2024 10:07:42 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2076.outbound.protection.outlook.com [40.107.20.76]) by sourceware.org (Postfix) with ESMTPS id 1A1C4386587A for ; Wed, 22 May 2024 10:05:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1A1C4386587A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1A1C4386587A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.20.76 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372328; cv=pass; b=UJPsL/Bh5kjCd2FuGOJFFVTGUOVgiUZVKI7KZqLtn2f31jTwMA9okdkqcdmCsStUZaFeSDZCqgrR2bKx2xhjBMMfVAOuOUlTu+PiS28ivWmU5amIWeTmkvDmcl5FB2NugRLet+FtTqPQ4Xwd5AsAKqoY/YvKSencQTyhsQmgjVQ= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372328; c=relaxed/simple; bh=eU+ER18H2rYXrmuPO4lR9ViLb22jEgGOm6OAc9kI6Qk=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=v7rx001B/qw7rJuoMOCeBw4fTQvOwEOmJNQm3QsVlXHsbkvq016ZQ/rsG/mtWovjzr0I8Px8ON6fHs1n8oXo4w8VH27h0FHWLDHVd/Hx+5K0+d4uqEK63uWF0KufP7rvK2W28X7Nbcha+b+KhGh1Op3A0mexMr5UA8Rdxc8Y/Z0= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=drfE/3mIbBTHRYvYhwGp+JrudhOEYrK8Y29fHkNgYlZnihdR/xY6ztDNik9cgmKabRO8Yi0pgsMnts9u/qViDiO9b4awOoLdXwGSn0WAECgqRbNicCHtbfxS9nitOWghcbW7CiGaYaLwK4taS3T+ltluMaLyeICuTv2NCqVCVW98uYm2CKd3Y6Ms/11THoowm1sbYnTOq1PeNp2JTwRPfXgr7rADwCe4zXGm9GH38wfbow/XAl/OOLhYvFbVPHPFRQwJhgwkcH2CiyZMLcJH8opkqNA0unM4w0xJK8+x7dIcaN8Bt7WoYJELTCUgYW6ITJsFq12ONe40R1Mo2bhoFA== ARC-Message-Signature: i=2; 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=420JMiATZf2cc+ftj0uP0q23FVJatYxFOdwpbo/F9n0=; b=PIxt/i3pp4vHa1kk6XsdqQrkh2Cvv5vLmo0gdLufXWnZ1uGQz78n15QWWiTeKgvgeVoWhHKc5I62mRf+UHfv7OOfpU89yEJwf8ChiqL8YcmfWzZxgzYf6HtTPpSsnKlb4wPOXiP+ZNLq9J1/2NCrKj1ogTpxKAMKRfuVuhU2thCWAA7xfXFLtqAtSSQxXrZDpD5D7cz957rqW9a5g5ic92AqGzty9R/xPKdUZizSzaDMwje3XnwQgHLhK/1EVc5a/VMXW3AVcgMNvhd14F8dZHKCg/wvRV8CCvGKIs1k+4d1dbT0AUSzyNbhtepV1LmmsLK4F1wwb2ydA1xcEDFzxw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=420JMiATZf2cc+ftj0uP0q23FVJatYxFOdwpbo/F9n0=; b=A898k2QO1IUiWfrk9/HRKLaMNktN65hGNESICBiu/S4fqxXYXP9HgUxH+n9cldlbNPoKHQ+zdumf/sWB98F1fbqM5gXP/J+4UVHDWw7ASxRD8SrBUx2p21hC7uhmE/ddWBPKpEipaR5s2kAGPxLiTlmthhm+r5HvYmbsasVYCts= Received: from DU2PR04CA0174.eurprd04.prod.outlook.com (2603:10a6:10:2b0::29) by GV2PR08MB8463.eurprd08.prod.outlook.com (2603:10a6:150:b4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:05:08 +0000 Received: from DB1PEPF000509F4.eurprd02.prod.outlook.com (2603:10a6:10:2b0:cafe::a7) by DU2PR04CA0174.outlook.office365.com (2603:10a6:10:2b0::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36 via Frontend Transport; Wed, 22 May 2024 10:05:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB1PEPF000509F4.mail.protection.outlook.com (10.167.242.150) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:07 +0000 Received: ("Tessian outbound 88f9d942bd3d:v327"); Wed, 22 May 2024 10:05:07 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 9fd3849e3df47b58 X-CR-MTA-TID: 64aa7808 Received: from a14ec87d53ec.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8EDAE23A-EC62-4730-B9E8-4D41EFEC28A0.1; Wed, 22 May 2024 10:05:00 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a14ec87d53ec.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:05:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TRzkCwtk1lp4koZrWmqL/ND0EwTSqpIdCJMMeCJo7KR1p9E6ySazUZbbC8YKfp9ee4DIM+53siZCMlV5kHN10yO4BLXFX0FJqonW01gB2hMfaR28eP3slwXY/Y+JqpOmszhFGa3HRod9XcoLHACXR7EYMGMPB8jHxV3HWxenXOmAsOpQ6Sx08PGt3WBpfSjpC9CMKLOVI+Ny1Zq/PLBC8lJBWTFvaGdDHxcW63/CmFSscKyCfpvc5JWjLH7dK29s3V//OYq+8rHWCiyIRIy0BNT6VuwVhqotVwmHG6Q+5dWULBHRsxnNsi2Llmq3U7eJvF413aFPvwxbXTzU9kNnbg== 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=420JMiATZf2cc+ftj0uP0q23FVJatYxFOdwpbo/F9n0=; b=eSxlPe5fdvmqSCrsEiXUYx8Eeb9CbREtVMm0kfiEWgvscxew7GeIVMCCpQjQmfXggV97vOyLw81OVLZGNaxPg3AelHhk8NgG6lBbdJTtYJjMz/ft9j2wXGyX+ZFptcFEoXl/s2rtprIgHt4x2Q4IYabqzlVyVctagbLaEgs92fPDo+LZifuUxRfE6DqYCp9W79VZfw34glNGA7w7/+oxvI2DEEHGnk3rSjuMmJaCpQWOIFtVPGoJXhBumm6VEtCLVzVaRaFrHGaBV3Y56Bt0OoLjWk1CoAWdtISkuardF/xeOfX/UGLn3Q3WqJnpXxnkT1EyAjcLiWtFrQJweGocnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=420JMiATZf2cc+ftj0uP0q23FVJatYxFOdwpbo/F9n0=; b=A898k2QO1IUiWfrk9/HRKLaMNktN65hGNESICBiu/S4fqxXYXP9HgUxH+n9cldlbNPoKHQ+zdumf/sWB98F1fbqM5gXP/J+4UVHDWw7ASxRD8SrBUx2p21hC7uhmE/ddWBPKpEipaR5s2kAGPxLiTlmthhm+r5HvYmbsasVYCts= Received: from DU2P251CA0008.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::10) by DB3PR08MB9035.eurprd08.prod.outlook.com (2603:10a6:10:429::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35; Wed, 22 May 2024 10:04:57 +0000 Received: from DU6PEPF0000B61E.eurprd02.prod.outlook.com (2603:10a6:10:230:cafe::3) by DU2P251CA0008.outlook.office365.com (2603:10a6:10:230::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19 via Frontend Transport; Wed, 22 May 2024 10:04:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DU6PEPF0000B61E.mail.protection.outlook.com (10.167.8.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:04:57 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:51 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:04:51 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH v2 2/7][Binutils] aarch64: Fix sve2p1 dupq instruction operands. Date: Wed, 22 May 2024 11:04:30 +0100 Message-ID: <20240522100439.1050296-3-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU6PEPF0000B61E:EE_|DB3PR08MB9035:EE_|DB1PEPF000509F4:EE_|GV2PR08MB8463:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a6fc718-42f6-423e-ac71-08dc7a46a8e2 X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|1800799015|82310400017|36860700004|376005; X-Microsoft-Antispam-Message-Info-Original: SSJtvQU2O1WjR0WnwBxlyBUO/NPd2+d80hI2T6gfJzZmRbERfSsb4JQhjev0zXWcuKwsS6l5A0OeUjOpZdUqXXRXtFYEyO9uCQ6H85ehaxT/GqjD5INYS1GglHuodjEdmfsfomXyQnzJUimsMtwt9gcv3aHZf8cpD7qUaACjWtdwK36Jl5G8wGgmoCp5CwzSFyIwjS3GQiBNrX7rE0CjOCgJJDkK+eRxV8dtodpmp1gFqVgDO9cYXMWhK6KNGI6Lsna4HMgLU5IVQiHObbABJeixrmo8Db2DzSUMlLF8AbZZS9t7MPRSrAadh4uaX/KUySAhvQ+rC8W2WxAjYHYd+vhhTSk98nrhd9m4Ljy6YAeYULQIF9PG347J/QGWSWhYZ6OGYhfRLo46V140YbgofprdjG+4KOnOeeQ18BS04a62ndnSIL2kwBGXCObS3abV0aWcnR+pGl6zw3t2dRY5Q7RTLUKJ1s/0OWww8bD82fOTRflW5eVDlFn+1RmZFgbYcj6UOGyaHD/1KsAYzZE4t10SQpIiMfwwvERR6ABQaXZwyRLBfVe5/MooPeRE69wdngcnsyOED8lOSr9lbtvX6KF5WXLGFJ/Ci/bwXZ7vb3wX103L3rPK55MTGzeaL64ZTVaPKoXdkbCFtmCblgxNt/5/nZBGMmOU09CBUTMIblHfz5V4g0ci3SB2QTgGmeVPysC2UbNK05Vw0rc9unqkyLGHJT/zG3iGCJ0GoSJP/2VMkv6NzTDR6KVKcY73QkZNcB5rn5XRfLhcuK4VbFQ2Lh0HKwvY6h9+84Vi91n4JOakjw8rKGIHpIgm6PbfJ828hHTzHORsY05T9SDTtr7sUZkmYjqOCUQCxeXaebsaV0KCYVNUHQXcHl51pSyf0Bh32znTgIyfgjb9lKfDhVG1CjfPtBCdJqUedgg6ah212ApcLwJe5WkQ9TnYI44KsnmYaOmlZDMltWbsVfqe1AU//nX6sUAzeFjTHUHbg6EWOlC9dLV2ARklPmypA9QTl5ELQf/d/aVmynqN8NyLYw/+6Ek6Pmpum37B/9rO0/AETzDzCtO+1TAoaU/HPobnqPv6I/W/TZZfmjZhPysCQTf/tS0b9xVCNJ8vN18Ewky+l2YL+4ZfXPXan0rJKwSsmPqlIYfe8BFxFEj7ZF1Pd8Ace0EYJCoIViwFjpFN63ZlwcKrNy3RJD3R/fjdaW1B6naMuV0fiqtLTIcvtuPgm/zroaAE5lFoO71D93Jtn009bFLWEq8UgJH7sjVxLfM2vvTjY+tKh2Aqd1AE3ouCljtVPQJcZPNlXOyxg8G4BNHZKsoqQjJfegcCeyZWbluRfQ1y X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(1800799015)(82310400017)(36860700004)(376005); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9035 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509F4.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 495d4a66-f1cd-4a3e-f102-08dc7a46a296 X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|82310400017|36860700004|376005|35042699013; X-Microsoft-Antispam-Message-Info: =?utf-8?q?C0jkZ8xyYC3xaMwMXzICQimJw80OSHI?= =?utf-8?q?dWYa0ebiGckjVrtHhTK/1KGs+6kLVmik3prah5XHtQAbJaiTHcRYBTnlSCoBE59OP?= =?utf-8?q?+cFnjQ9d3khLv5l3aTF7rxpz+YzWjdNfPhSU/5oMcpvSCn9JqlbjM3G2/HhUWO7UQ?= =?utf-8?q?YzdCHzIT1PJcbjMpJZ2KRuz0SEx5dl4z2Z0MyXqAXiWOI48WDL7yX6XtQnojRN/7k?= =?utf-8?q?DJgVLBM1rjrYc6EMd5XPh3XxbuaTfHbQLyEFXq++ZxEf9U/2FYskD9o3ClE3ibDcC?= =?utf-8?q?2eXZCi3Hea80hR3lihtX8vC8NYISI7F6HEGkUjHXPwVN6zo0EZS2MimBLYgXESntm?= =?utf-8?q?Dci37EN7Hf4sT361iTyVSrMbhu/1hzqK5QgDhLeMNdBdbCWP4ulMyv5O07pHKFem/?= =?utf-8?q?cf/CzRDFn2M8rbJO30yuVHUO4hgEtZLgmD1MDIvYSun9/aiCmrJCMSUDQhGcK1q1z?= =?utf-8?q?H7nx29U0uIVGCFq+gSuFpRhhXr+WnXQj2zTnNAqTLy+0D4yOCqzsUA4sPN1qEMlTi?= =?utf-8?q?ViqjDrrCRFrEo/pufUmwBVEhLWtSU+/dmbvfsBa45/vBR3LE4ie4tEwXp/q/TET+F?= =?utf-8?q?XYNkvwi27NiCGHx5fz6vso+GZLX7+J+57EcK1CPbIA2FqFc3goa7Y5OHrLh4067En?= =?utf-8?q?uyWotGO5IhPjbLKKnSh6m2Mfmwpm/nDptBxGKMP8uf1RqP7Qrobknw+lriQXVjPAH?= =?utf-8?q?+hwpEUFY4ScC1zqY39uYn0SR6iszkLIzZuGJzZTpzcI8iDTjRQy4UGNPHBdT1W7Sx?= =?utf-8?q?3DA9oY59PsFkh0kL7b4Bn35jnE0+5he/2VYLoNUTZNicf7a0vJvH/Uun6eY8aPaSQ?= =?utf-8?q?cnRiGXwiXl3KfOX9QdrwSgauEQtYruFXrXu5zZmO1N6aHqztY7GCmfPfk3icoHaJl?= =?utf-8?q?8cmYIOpQ0CrYK+ACyKV7lMY8z6PCip1VKApiFPvtu8EfImimOfdhom0cVZMrWONWd?= =?utf-8?q?dN5wfosE8bMUIA6lVz/hYaS8ECvz1YBZDo+ziNVJX29jxHqM/7gFHViWqzShLU6u1?= =?utf-8?q?GhsfolsVMZnkMIL5kDZIR5vrt3AeGcb4+oJ7l0lyzJvc7bxM+Lj9Z+M7AQx2mpzSE?= =?utf-8?q?7SYkMJxXqmM2iUZYSAoiaor4uPly7+Rj1Hkie2GEV7XAGcrt4SrpbcMq7Ezb4NBt2?= =?utf-8?q?CCJBplALYsVDFIqulRGft5U0w2xqtBZmty2Cejazv2MTmzkzbkd7wZD4CGlxRVavw?= =?utf-8?q?rDiefIQZJZssRTYfTpJSYayMfDVWx0u8CjeqKqr9LCkMdkmUrdgIAoL3O06dkyCnt?= =?utf-8?q?XZa5hVrAtECjI?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(1800799015)(82310400017)(36860700004)(376005)(35042699013); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:07.9494 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5a6fc718-42f6-423e-ac71-08dc7a46a8e2 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509F4.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8463 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Hi, This patch fixes the syntax of sve2p1 "dupq" instruction by modifying the way 2nd operand does the encoding and decoding using the [] value. dupq makes use of already existing aarch64_ins_sve_index and aarch64_ext_sve_index inserter and extractor functions. The definitions of aarch64_ins_sve_index_imm (inserter) and aarch64_ext_sve_index_imm (extractor) is removed in this patch. This issues was reported here: https://sourceware.org/pipermail/binutils/2024-February/132408.html Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils master? Regards, Srinath. --- gas/testsuite/gas/aarch64/sve2p1-1-bad.l | 8 ---- gas/testsuite/gas/aarch64/sve2p1-1.d | 8 ---- gas/testsuite/gas/aarch64/sve2p1-1.s | 9 ---- gas/testsuite/gas/aarch64/sve2p1-2-invalid.d | 3 ++ gas/testsuite/gas/aarch64/sve2p1-2-invalid.l | 47 ++++++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-2-invalid.s | 10 +++++ gas/testsuite/gas/aarch64/sve2p1-2.d | 34 ++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-2.s | 28 ++++++++++++ include/opcode/aarch64.h | 2 +- opcodes/aarch64-asm.c | 19 +------- opcodes/aarch64-asm.h | 1 - opcodes/aarch64-dis.c | 36 ++------------- opcodes/aarch64-dis.h | 1 - opcodes/aarch64-tbl.h | 11 ++--- 14 files changed, 134 insertions(+), 83 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2-invalid.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2-invalid.l create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2-invalid.s create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-2.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l index 58f5b18ae82..4ea763f0e7d 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l +++ b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l @@ -35,14 +35,6 @@ .*: Error: selected processor does not support `uminqv v4.2d,p3,z2.d' .*: Error: selected processor does not support `uminqv v8.2d,p4,z1.d' .*: Error: selected processor does not support `uminqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `dupq z10.b,z20.b\[0\]' -.*: Error: selected processor does not support `dupq z10.b,z20.b\[15\]' -.*: Error: selected processor does not support `dupq z10.h,z20.h\[0\]' -.*: Error: selected processor does not support `dupq z10.h,z20.h\[7\]' -.*: Error: selected processor does not support `dupq z10.s,z20.s\[0\]' -.*: Error: selected processor does not support `dupq z10.s,z20.s\[3\]' -.*: Error: selected processor does not support `dupq z10.d,z20.d\[0\]' -.*: Error: selected processor does not support `dupq z10.d,z20.d\[1\]' .*: Error: selected processor does not support `eorqv v0.16b,p0,z16.b' .*: Error: selected processor does not support `eorqv v1.8h,p1,z8.h' .*: Error: selected processor does not support `eorqv v2.4s,p2,z4.s' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.d b/gas/testsuite/gas/aarch64/sve2p1-1.d index f562985b569..6afb051e67d 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1.d @@ -44,14 +44,6 @@ .*: 04cf2c44 uminqv v4.2d, p3, z2.d .*: 04cf3028 uminqv v8.2d, p4, z1.d .*: 048f3c10 uminqv v16.4s, p7, z0.s -.*: 0530268a dupq z10.b, z20.b\[0\] -.*: 053f268a dupq z10.b, z20.b\[15\] -.*: 0521268a dupq z10.h, z20.h\[0\] -.*: 052f268a dupq z10.h, z20.h\[7\] -.*: 0522268a dupq z10.s, z20.s\[0\] -.*: 052e268a dupq z10.s, z20.s\[3\] -.*: 0524268a dupq z10.d, z20.d\[0\] -.*: 052c268a dupq z10.d, z20.d\[1\] .*: 041d2200 eorqv v0.16b, p0, z16.b .*: 045d2501 eorqv v1.8h, p1, z8.h .*: 049d2882 eorqv v2.4s, p2, z4.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.s b/gas/testsuite/gas/aarch64/sve2p1-1.s index 753f27f5ef2..08c777b2c70 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.s +++ b/gas/testsuite/gas/aarch64/sve2p1-1.s @@ -39,15 +39,6 @@ uminqv v2.4s, p2, z4.s uminqv v4.2d, p3, z2.d uminqv v8.2d, p4, z1.d uminqv v16.4s, p7, z0.s -dupq z10.b, z20.b[0] -dupq z10.b, z20.b[15] -dupq z10.h, z20.h[0] -dupq z10.h, z20.h[7] -dupq z10.s, z20.s[0] -dupq z10.s, z20.s[3] -dupq z10.d, z20.d[0] -dupq z10.d, z20.d[1] - eorqv v0.16b, p0, z16.b eorqv v1.8h, p1, z8.h eorqv v2.4s, p2, z4.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-2-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-2-invalid.d new file mode 100644 index 00000000000..3953ca57ac8 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2-invalid.d @@ -0,0 +1,3 @@ +#name: Test of illegal SVE2.1 dupq instructions. +#as: -march=armv9.4-a +#error_output: sve2p1-2-invalid.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-2-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-2-invalid.l new file mode 100644 index 00000000000..26c24885d0b --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2-invalid.l @@ -0,0 +1,47 @@ +.*: Assembler messages: +.*: Error: register element index out of range 0 to 15 at operand 2 -- `dupq z0.b,z0.b\[16\]' +.*: Error: operand mismatch -- `dupq z0.h,z0.b\[16\]' +.*: Info: did you mean this\? +.*: Info: dupq z0.b, z0.b\[16\] +.*: Info: other valid variant\(s\): +.*: Info: dupq z0.h, z0.h\[16\] +.*: Info: dupq z0.s, z0.s\[16\] +.*: Info: dupq z0.d, z0.d\[16\] +.*: Error: operand mismatch -- `dupq z0.h,z0.s\[16\]' +.*: Info: did you mean this\? +.*: Info: dupq z0.h, z0.h\[16\] +.*: Info: other valid variant\(s\): +.*: Info: dupq z0.b, z0.b\[16\] +.*: Info: dupq z0.s, z0.s\[16\] +.*: Info: dupq z0.d, z0.d\[16\] +.*: Error: operand mismatch -- `dupq z0.s,z0.d\[16\]' +.*: Info: did you mean this\? +.*: Info: dupq z0.s, z0.s\[16\] +.*: Info: other valid variant\(s\): +.*: Info: dupq z0.b, z0.b\[16\] +.*: Info: dupq z0.h, z0.h\[16\] +.*: Info: dupq z0.d, z0.d\[16\] +.*: Error: register element index out of range 0 to 7 at operand 2 -- `dupq z0.h,z0.h\[8\]' +.*: Error: register element index out of range 0 to 3 at operand 2 -- `dupq z0.s,z0.s\[4\]' +.*: Error: register element index out of range 0 to 1 at operand 2 -- `dupq z0.d,z0.d\[2\]' +.*: Error: operand mismatch -- `dupq z0.q,z0.d\[16\]' +.*: Info: did you mean this\? +.*: Info: dupq z0.d, z0.d\[16\] +.*: Info: other valid variant\(s\): +.*: Info: dupq z0.b, z0.b\[16\] +.*: Info: dupq z0.h, z0.h\[16\] +.*: Info: dupq z0.s, z0.s\[16\] +.*: Error: operand mismatch -- `dupq z0.s,z0.q\[16\]' +.*: Info: did you mean this\? +.*: Info: dupq z0.s, z0.s\[16\] +.*: Info: other valid variant\(s\): +.*: Info: dupq z0.b, z0.b\[16\] +.*: Info: dupq z0.h, z0.h\[16\] +.*: Info: dupq z0.d, z0.d\[16\] +.*: Error: operand mismatch -- `dupq z10.q,z20.q\[0\]' +.*: Info: did you mean this\? +.*: Info: dupq z10.b, z20.b\[0\] +.*: Info: other valid variant\(s\): +.*: Info: dupq z10.h, z20.h\[0\] +.*: Info: dupq z10.s, z20.s\[0\] +.*: Info: dupq z10.d, z20.d\[0\] diff --git a/gas/testsuite/gas/aarch64/sve2p1-2-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-2-invalid.s new file mode 100644 index 00000000000..8f5fd528bc7 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2-invalid.s @@ -0,0 +1,10 @@ + dupq z0.b, z0.b[16] + dupq z0.h, z0.b[16] + dupq z0.h, z0.s[16] + dupq z0.s, z0.d[16] + dupq z0.h, z0.h[8] + dupq z0.s, z0.s[4] + dupq z0.d, z0.d[2] + dupq z0.q, z0.d[16] + dupq z0.s, z0.q[16] + dupq z10.q, z20.q[0] diff --git a/gas/testsuite/gas/aarch64/sve2p1-2.d b/gas/testsuite/gas/aarch64/sve2p1-2.d new file mode 100644 index 00000000000..cd9900da2b0 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2.d @@ -0,0 +1,34 @@ +#name: Test of SVE2.1 dupq instructions. +#as: -march=armv9.4-a +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: 05212400 dupq z0.b, z0.b\[0\] +.*: 0521241f dupq z31.b, z0.b\[0\] +.*: 052127e0 dupq z0.b, z31.b\[0\] +.*: 053f2400 dupq z0.b, z0.b\[15\] +.*: 053f27ff dupq z31.b, z31.b\[15\] +.*: 052925e7 dupq z7.b, z15.b\[4\] +.*: 05222400 dupq z0.h, z0.h\[0\] +.*: 0522241f dupq z31.h, z0.h\[0\] +.*: 052227e0 dupq z0.h, z31.h\[0\] +.*: 053e2400 dupq z0.h, z0.h\[7\] +.*: 053e27ff dupq z31.h, z31.h\[7\] +.*: 053225e7 dupq z7.h, z15.h\[4\] +.*: 05242400 dupq z0.s, z0.s\[0\] +.*: 0524241f dupq z31.s, z0.s\[0\] +.*: 052427e0 dupq z0.s, z31.s\[0\] +.*: 053c2400 dupq z0.s, z0.s\[3\] +.*: 053c27ff dupq z31.s, z31.s\[3\] +.*: 053425e7 dupq z7.s, z15.s\[2\] +.*: 05282400 dupq z0.d, z0.d\[0\] +.*: 0528241f dupq z31.d, z0.d\[0\] +.*: 052827e0 dupq z0.d, z31.d\[0\] +.*: 05382400 dupq z0.d, z0.d\[1\] +.*: 053827ff dupq z31.d, z31.d\[1\] +.*: 052825e7 dupq z7.d, z15.d\[0\] diff --git a/gas/testsuite/gas/aarch64/sve2p1-2.s b/gas/testsuite/gas/aarch64/sve2p1-2.s new file mode 100644 index 00000000000..4fc3cdc9e26 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-2.s @@ -0,0 +1,28 @@ + .text + dupq z0.b, z0.b[0] + dupq z31.b, z0.b[0] + dupq z0.b, z31.b[0] + dupq z0.b, z0.b[15] + dupq z31.b, z31.b[15] + dupq z7.b, z15.b[4] + + dupq z0.h, z0.h[0] + dupq z31.h, z0.h[0] + dupq z0.h, z31.h[0] + dupq z0.h, z0.h[7] + dupq z31.h, z31.h[7] + dupq z7.h, z15.h[4] + + dupq z0.s, z0.s[0] + dupq z31.s, z0.s[0] + dupq z0.s, z31.s[0] + dupq z0.s, z0.s[3] + dupq z31.s, z31.s[3] + dupq z7.s, z15.s[2] + + dupq z0.d, z0.d[0] + dupq z31.d, z0.d[0] + dupq z0.d, z31.d[0] + dupq z0.d, z0.d[1] + dupq z31.d, z31.d[1] + dupq z7.d, z15.d[0] diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 8a58763ef78..220ff68db88 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -740,8 +740,8 @@ enum aarch64_opnd AARCH64_OPND_SVE_Zm_imm4, /* SVE vector register with 4bit index. */ AARCH64_OPND_SVE_Zm4_INDEX, /* z0-z15[0-1] in Zm, bits [20,16]. */ AARCH64_OPND_SVE_Zn, /* SVE vector register in Zn. */ - AARCH64_OPND_SVE_Zn_5_INDEX, /* Indexed SVE vector register, for DUPQ. */ AARCH64_OPND_SVE_Zn_INDEX, /* Indexed SVE vector register, for DUP. */ + AARCH64_OPND_SVE_Zn_5_INDEX, /* Indexed SVE vector register, for DUPQ. */ AARCH64_OPND_SVE_ZnxN, /* SVE vector register list in Zn. */ AARCH64_OPND_SVE_Zt, /* SVE vector register in Zt. */ AARCH64_OPND_SVE_ZtxN, /* SVE vector register list in Zt. */ diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index 5a55ca2f86d..37d0d635cec 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -1270,23 +1270,8 @@ aarch64_ins_sve_index (const aarch64_operand *self, { unsigned int esize = aarch64_get_qualifier_esize (info->qualifier); insert_field (self->fields[0], code, info->reglane.regno, 0); - insert_fields (code, (info->reglane.index * 2 + 1) * esize, 0, - 2, FLD_imm5, FLD_SVE_tszh); - return true; -} - -/* Encode Zn.[], where is an immediate with range of 0 to one less - than the number of elements in 128 bit, which can encode il:tsz. */ -bool -aarch64_ins_sve_index_imm (const aarch64_operand *self, - const aarch64_opnd_info *info, aarch64_insn *code, - const aarch64_inst *inst ATTRIBUTE_UNUSED, - aarch64_operand_error *errors ATTRIBUTE_UNUSED) -{ - insert_field (self->fields[0], code, info->reglane.regno, 0); - unsigned int esize = aarch64_get_qualifier_esize (info->qualifier); - insert_fields (code, (info->reglane.index * 2 + 1) * esize, 0, - 2, self->fields[1],self->fields[2]); + insert_all_fields_after (self, 1, code, + (info->reglane.index * 2 + 1) * esize); return true; } diff --git a/opcodes/aarch64-asm.h b/opcodes/aarch64-asm.h index 88e389bfebd..964d2ddb55f 100644 --- a/opcodes/aarch64-asm.h +++ b/opcodes/aarch64-asm.h @@ -94,7 +94,6 @@ AARCH64_DECL_OPD_INSERTER (ins_sve_float_half_one); AARCH64_DECL_OPD_INSERTER (ins_sve_float_half_two); AARCH64_DECL_OPD_INSERTER (ins_sve_float_zero_one); AARCH64_DECL_OPD_INSERTER (ins_sve_index); -AARCH64_DECL_OPD_INSERTER (ins_sve_index_imm); AARCH64_DECL_OPD_INSERTER (ins_sve_limm_mov); AARCH64_DECL_OPD_INSERTER (ins_sve_quad_index); AARCH64_DECL_OPD_INSERTER (ins_sve_reglist); diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index e1c3f557874..075f0ce888b 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -2207,7 +2207,7 @@ aarch64_ext_sve_index (const aarch64_operand *self, int val; info->reglane.regno = extract_field (self->fields[0], code, 0); - val = extract_fields (code, 0, 2, FLD_SVE_tszh, FLD_imm5); + val = extract_all_fields_after (self, 1, code); if ((val & 31) == 0) return 0; while ((val & 1) == 0) @@ -2216,26 +2216,6 @@ aarch64_ext_sve_index (const aarch64_operand *self, return true; } -/* Decode Zn.[], where is an immediate with range of 0 to one less - than the number of elements in 128 bit, which can encode il:tsz. */ -bool -aarch64_ext_sve_index_imm (const aarch64_operand *self, - aarch64_opnd_info *info, aarch64_insn code, - const aarch64_inst *inst ATTRIBUTE_UNUSED, - aarch64_operand_error *errors ATTRIBUTE_UNUSED) -{ - int val; - - info->reglane.regno = extract_field (self->fields[0], code, 0); - val = extract_fields (code, 0, 2, self->fields[2], self->fields[1]); - if ((val & 15) == 0) - return 0; - while ((val & 1) == 0) - val /= 2; - info->reglane.index = val / 2; - return true; -} - /* Decode a logical immediate for the MOV alias of SVE DUPM. */ bool aarch64_ext_sve_limm_mov (const aarch64_operand *self, @@ -3420,7 +3400,8 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst) break; case sve_index: - i = extract_fields (inst->value, 0, 2, FLD_SVE_tszh, FLD_imm5); + i = extract_field (FLD_imm5, inst->value, 0); + if ((i & 31) == 0) return false; while ((i & 1) == 0) @@ -3430,17 +3411,6 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst) } break; - case sve_index1: - i = extract_fields (inst->value, 0, 2, FLD_SVE_tsz, FLD_SVE_i2h); - if ((i & 15) == 0) - return false; - while ((i & 1) == 0) - { - i >>= 1; - variant += 1; - } - break; - case sve_limm: /* Pick the smallest applicable element size. */ if ((inst->value & 0x20600) == 0x600) diff --git a/opcodes/aarch64-dis.h b/opcodes/aarch64-dis.h index 86494cc3093..76b95e9f90a 100644 --- a/opcodes/aarch64-dis.h +++ b/opcodes/aarch64-dis.h @@ -118,7 +118,6 @@ AARCH64_DECL_OPD_EXTRACTOR (ext_sve_float_half_one); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_float_half_two); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_float_zero_one); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_index); -AARCH64_DECL_OPD_EXTRACTOR (ext_sve_index_imm); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_limm_mov); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_quad_index); AARCH64_DECL_OPD_EXTRACTOR (ext_sve_reglist); diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 063343dceee..6ce42aed1e3 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -6478,7 +6478,7 @@ const struct aarch64_opcode aarch64_opcode_table[] = SVE2p1_INSNC("fminnmqv",0x6415a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), SVE2p1_INSNC("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index1, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0), + SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0), SVE2p1_INSN("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zd, SVE_Zm_imm4), OP_SVE_BBB, 0, 1), SVE2p1_INSNC("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_Zt, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_SZS_QD, 0, C_SCAN_MOVPRFX, 0), SVE2p1_INSNC("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt2, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), @@ -7039,11 +7039,12 @@ const struct aarch64_opcode aarch64_opcode_table[] = "an indexed SVE vector register") \ Y(SVE_REG, regno, "SVE_Zn", 0, F(FLD_SVE_Zn), \ "an SVE vector register") \ - Y(SVE_REG, sve_index_imm, "SVE_Zn_5_INDEX", 0, \ - F(FLD_SVE_Zn, FLD_SVE_i2h, FLD_SVE_tsz), \ - "a 5 bit idexed SVE vector register") \ - Y(SVE_REG, sve_index, "SVE_Zn_INDEX", 0, F(FLD_SVE_Zn), \ + Y(SVE_REG, sve_index, "SVE_Zn_INDEX", 0, \ + F(FLD_SVE_Zn, FLD_SVE_tszh, FLD_imm5), \ "an indexed SVE vector register") \ + Y(SVE_REG, sve_index, "SVE_Zn_5_INDEX", 0, \ + F(FLD_SVE_Zn, FLD_imm5), \ + "a 5 bit indexed SVE vector register") \ Y(SVE_REGLIST, sve_reglist, "SVE_ZnxN", 0, F(FLD_SVE_Zn), \ "a list of SVE vector registers") \ Y(SVE_REG, regno, "SVE_Zt", 0, F(FLD_SVE_Zt), \ From patchwork Wed May 22 10:04:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90670 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 149F738432E6 for ; Wed, 22 May 2024 10:07:27 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2040.outbound.protection.outlook.com [40.107.247.40]) by sourceware.org (Postfix) with ESMTPS id 9922A3865490 for ; Wed, 22 May 2024 10:05:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9922A3865490 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9922A3865490 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.247.40 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372319; cv=pass; b=PEb/zIMmN0uSOyBS1KLaZwYtl4OzGdvUyTHxuzXuLh9TH1Vx/YA+CCvwGcwpR3lbsLSSdFRAUdj3JM6DiG6iWWC5emonx8YhYlE4y4C379ABJBriMJ/znc65nRW4FM7K5y8ifZbJhBG5BOVBIKe5iRwVxHyZggyJdpooXbkMJQA= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372319; c=relaxed/simple; bh=mfr2nCLewHfZX9NBZ6FI6E3SkcaXYNg9NJHW6Q2ODo4=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=YzL/QS3aqZBk2p6t2ZKZpcnnXK64DGe8576PJOgb2xaSQLD4pyyxAybUyp8LqKjh1A20+QLdHJQx9r95N3spUhFQdj1la5cWU7WTR+WdEribasZEN9LJKMld0J1+vlsCM3QUDBg3mQ5H966R6YyBmAIV47Ctvg4wBB8bqSf94Cg= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=ibHNb8N9qBjgP7ikA+bzU3E/DvCloNKOcaHN/49YncY+JyTS9WK7hwD3CJnAzEoTwrl4J+YzUHEzcL/YWrMmkSSf11IHgS1usiN1brNf9/jNJ+sfvPk8dj5jNVesFjUP7qQTu4CW32Gfhq6SncwhNC/wPEKeoUy/Ryv3pOlR4TRDpkMkMIjXqHs98Y8nRL7m++JZDmP+gsLMb0jNKFrFIsaqEclypLrME99L/ImJE0UJ/iNMWw96HkDTUn0HT1Tntwi4+6P/UYXLErLiMD72sf8R2BQnZbEXzRRRW9MUxkpPu5QDmJwv/DuQjG7yzPC+myXMZZbNMttOXuNe00TTXA== ARC-Message-Signature: i=2; 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=8IOhtDLjNELVvEBc66Mqm1aDYp0IZhXc3xTbq42YLHY=; b=apJEsRb81oUAxVy6mOSWFRYvAM5AIdrjBHQ5WxNmVTvTMLJAhU3S8X2dAEr8NGJn33AR0sPa//sx2zzZ8fdZAGwadpjWYAs51NJRA7or2VuIETXyMrZ3dkHGTwMzJM8S2tqB67WEGSHZ8IWq0bBXreQjV+udGq01cqg6AK3fBB8r2WCAu8O8b762BDJt/rFKhC7I5PGjLIIqRarng81+HyJKD+rOGNg0RXlq91TvQJElbY/fpkeMRPq8YoBebbNeV9Ai22DVja5EgWZ+qO2T1af80TFYDBR25QB53GcWp2dcjMRSfXKK9E8dRCMtKvx7g45gK/iSoFnqZWjFnIvJSw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8IOhtDLjNELVvEBc66Mqm1aDYp0IZhXc3xTbq42YLHY=; b=WmvGKxtzPK0aQBKQXAEfXi6nSvGNV3qCbC8tV0XMt9xy6Q7ZvVi3htjv6LJenAeEFMB8py4Rael/tjLvta+HyYC4+iOfWkf6zt+e8uIsL2L2B/ka6Wxy5rA3ZIS4AbrudtTltnigx2d+D6Kmf7vJPGvwQN3xmc8g1F/uwDsyj/k= Received: from DUZPR01CA0089.eurprd01.prod.exchangelabs.com (2603:10a6:10:46a::12) by VI1PR08MB5405.eurprd08.prod.outlook.com (2603:10a6:803:12f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:05:10 +0000 Received: from DU6PEPF00009528.eurprd02.prod.outlook.com (2603:10a6:10:46a:cafe::c5) by DUZPR01CA0089.outlook.office365.com (2603:10a6:10:46a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36 via Frontend Transport; Wed, 22 May 2024 10:05:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DU6PEPF00009528.mail.protection.outlook.com (10.167.8.9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:10 +0000 Received: ("Tessian outbound e5fb9b7e6155:v327"); Wed, 22 May 2024 10:05:10 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 006c1290b36ddb6d X-CR-MTA-TID: 64aa7808 Received: from 2bf2ccf5508c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2A7EF781-AF68-4B79-9D3C-BCD6CA31D2FD.1; Wed, 22 May 2024 10:04:59 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2bf2ccf5508c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:04:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fb6bpdCMhcSa9Tb5f3yOHNroeO8og2H5ymfiGDdm9uHqWweOudjh3ospVFwmX86/t7mvxPa1A4UBItQfVALxE1LGjUCoPbl4dvK+Q+8auBM0Y7sMRq5BOfElSUzcRnNAmGYKVTb2JeHohBLPu+lFyrNS1EAX+7v+mRRzxYGoDTFZKytKbh+GVaSPi8nlDuFamXdpIxONfEh0e8JeiziDudz6VEA9nuYC5fZ1RNp4+GzpCUg39zRaw5nuevbK4J/xsi0rBMFdYT7KiPmaNHrPnpzw8ZUMd2IFztCfsvudjcBAPQ1UQrddqOxzorWCGlyTiduqcXACInxlSGGb+8TLrQ== 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=8IOhtDLjNELVvEBc66Mqm1aDYp0IZhXc3xTbq42YLHY=; b=fM9GxtxfkEQDcDaNJbcwzfje9ysSaECATisykhVE8Tba3/2eKAVNop6wA5smkMlC3xI5jGZvXicyhRVF5DSaTBUxYUPVNrgM2uebsZLNhN5cMy+cHOF9KxesC+yV4S03QlHB6s675zNyOdpY9AwP5bMN15M+lO7btAlGwCdQGVLOL+TYpMA/Jn3iamD79dmzntOcSFiCMpY/VLS1ixLo9z6vaqASk3/G5KyjAYUwq2HIqXNjn6Guuzo3cZWGES543VNTy+CD6OnCRLrOQoVG6PFFralDhl47s4/MhS1jOYMnzcno6NyR7HAClm2Psnp68G69A4J3RFPu5kW9sQObZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8IOhtDLjNELVvEBc66Mqm1aDYp0IZhXc3xTbq42YLHY=; b=WmvGKxtzPK0aQBKQXAEfXi6nSvGNV3qCbC8tV0XMt9xy6Q7ZvVi3htjv6LJenAeEFMB8py4Rael/tjLvta+HyYC4+iOfWkf6zt+e8uIsL2L2B/ka6Wxy5rA3ZIS4AbrudtTltnigx2d+D6Kmf7vJPGvwQN3xmc8g1F/uwDsyj/k= Received: from DU2PR04CA0028.eurprd04.prod.outlook.com (2603:10a6:10:3b::33) by PAXPR08MB6446.eurprd08.prod.outlook.com (2603:10a6:102:12d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19; Wed, 22 May 2024 10:04:55 +0000 Received: from DB5PEPF00014B9C.eurprd02.prod.outlook.com (2603:10a6:10:3b:cafe::8) by DU2PR04CA0028.outlook.office365.com (2603:10a6:10:3b::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35 via Frontend Transport; Wed, 22 May 2024 10:04:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DB5PEPF00014B9C.mail.protection.outlook.com (10.167.8.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:04:55 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:54 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:53 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:04:53 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH 3/7][Binutils] aarch64: Fix sve2p1 extq instruction operands. Date: Wed, 22 May 2024 11:04:32 +0100 Message-ID: <20240522100439.1050296-5-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B9C:EE_|PAXPR08MB6446:EE_|DU6PEPF00009528:EE_|VI1PR08MB5405:EE_ X-MS-Office365-Filtering-Correlation-Id: 4080a75b-66f9-4560-c5f5-08dc7a46aa43 X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|36860700004|82310400017|1800799015|376005; X-Microsoft-Antispam-Message-Info-Original: YSns+xDKlPG8PeT0kf2w48Raw98TFSyCI9uxQ7kCYH87d7wq31JhPtNwVZDE7tmFRAJnVDU60ziEpYegY3zqbOFqLUIUPNN0/qxrGHwyVQlHIcydV+vlTyiUib4hw7x4M1MRzWYncgRA2WlTXUnfukCHUN1hexFcUnUBl6mhEbZpGMcU8Zx5QAVuFri/7SzPfENkZKDFjB3c97zI/2bV7TiclRPTTH/Da7NDoLKbt9zbT/ul0/F0geooDoKIWJQ9fdClv+Unc13VIlb7vx+sbgzJUtU+sN/rry5nWXDau7KWiodwhwB50Kr4+d9mflVagL/f/3pum36tS6YxXwwTAP9OvoKs55gOz7OoDDuze40TXx2KkEbEmBJKLzx36DoVo4mwZm1emlNlsCmH9TvrYrKksYL8yVYT3OkFzCxDwHdfBVpWz4QhMvtKo8dMy/fkNah5TRowOkrhlFzmdYP6yaaeZAjOirzXna069Q/55yxIXoyIWYOsptX8QdFCAlP3WuoOw/gFwRMDc8nwYd+I0oqg0UNEtX2xcedFe16Jdt3UiI83DZ9PJUwvxgwRGGFtw1A04IQ85pWhkeQUAs1x3MMWROnQ4WIoNRPew5E7vhw5NpowcIYY/pxv9KS5dlDSR1ZIsBZmuAW4ALD2K1U2jt1uhBZ3SzvGiIE6fa/iiRpmMNxbLSNjankUdPHoAoHI3I1eqsDflmv0diAhYbKLut8H3BX9D9lwz/otiwxtB/YGz9ssHmFWYLJKQByzboQaMNoBvc3MR0kyqImFDT8mpmQK7s6nIOfMDeDVFu1pFl3xcd9PPKLe1b3o0/PxL/k4tPm5HYGtqbjgG6IIpuyLZFMicfS9k+flCTdGyzW4sxwITCnGkh4msXjzSCFck10OrYSUWLxvK1LIVm8eP9KizmPsRQIZlaesJYUA6+enlJ8ng54eLR9nc5YSjiMyV3AykyaDiFRhHktQ1Fzk3G2zX+67NrLgvDxCYxzMTvBjybFUnoVHgYT+eRZW6NDRLnfcvuXMHcyYSULQYpZdmFiCf896gZq4Ri4OGLxtjNFUPa1s3pUXcith3E2df3pEfYvnWuQoGlgaH6bIjklnJMrHM2JcZqij44YmYK3e+u0NVfIeotqnlrhIwS+iFO/n+IMKx28VNsND9f3JIFvn1zRCdm64b3KTPyYS+B6VmVbz2EqckmEUaQqJT09lkF91/6O06HJwD/6C6E4sjO/84pgxNG+lysBbMAYzHtKW4H2hYjcEbcSrPHhdTQw6J9SmI4H8K/mm45AZGGLvrI5lpgE1Y57855jyrSg6sZSqh9MyRsEjVNvpSZOVdqUMae97VsNz X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(36860700004)(82310400017)(1800799015)(376005); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6446 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF00009528.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: d227c1b3-cf43-436f-f60f-08dc7a46a16d X-Microsoft-Antispam: BCL:0; ARA:13230031|376005|36860700004|82310400017|35042699013|1800799015; X-Microsoft-Antispam-Message-Info: =?utf-8?q?8nNtrM9QDyXwuT0o/BW+vtWan11XeAt?= =?utf-8?q?x51ndDr6l2ZLBfDup965h/1R0ZPc2hMuxLqc2O74BaYb95rUC1TCDWqZ9/0orKitX?= =?utf-8?q?QSqRgCpl0/XY2knQDI38lelsmDF3tgcHaQfh9aazYRh7RIc5g0jgEfSieHKqLUhRg?= =?utf-8?q?xC3XGyQRB4660JFa0Ss6B6GruNZ/hsDgyi2vJTmnGxT02VQspGHmbvkOXPjpG2AiI?= =?utf-8?q?xkdJL7mW+kAuuIdFgkPEY1z9fx2VEWgePusAY7/xldoE8xl+7eeHMGQNAe2OsQO9i?= =?utf-8?q?sfTVkKily374XYXJKiAre61FaaeNm6SqtHgcI8hUoKcwRxruG7ORfj6ZThXOSzAlL?= =?utf-8?q?x2ATFgZPbp3HfyAzzMpgTZW8JVqq+6stJ/Qfy2uAkgRzYGGEseEztkSc7qDqP7JY3?= =?utf-8?q?6u8qShe+wT0AVlrDhCd/ZwcpgmPk7s/K3tyPdBl8qCIJgTEYMLvCsyhAuj0y4xtKG?= =?utf-8?q?CMee15FxGZzJWTAMnFb2x4BOIx6X/lqEyz8+2p1GEu8RaLc2hPkPOFtRpYdmELGm7?= =?utf-8?q?oBgzav7M2T9BRqVbfToQIWEnnKh55QV82opswtMJu/3b+c0jeGGG2xZWrzRf5KgSo?= =?utf-8?q?710ZlRSfB/qAaHYbFhVVbTSmzfQnh/kRNM+PC7+mWN/eui32TrlrPuYQWRVI8DZ0d?= =?utf-8?q?BKxuB3Ryv6lScteSfJgi7DQipEuW0LIbrosVbtoI0bPKSiVYtGEWpLcj2QlEIO2Zp?= =?utf-8?q?AampNdtTvPyGSvHbFyvQCQNhaj70cT7Fm1QuYRjlpK3rZ8FodeEQYnqbPCs3mktU7?= =?utf-8?q?llPirO52zSogq6rgi4s0qoREV+xJ/WYfvyjYsBdyxmjmbtr4BEglLS73PfmLRrhRd?= =?utf-8?q?Refuko2EGri370Pdd6xhzsNRaMNAP4pxF8yGHGZpP5xQOcHxshPF6yr1+JYB+DRG+?= =?utf-8?q?Y0seKo9jc8Ic0ytAzGwPwQKGRhJ1agjY0W3jO1n9QDxUsMFo9dz33pyQsOriWr4Th?= =?utf-8?q?FHiPULXfmAJFt+x2qxhOXVDfucL1T3aRycbaYxh00bDu9FZPziA7lRaO5/zuHe8Tz?= =?utf-8?q?8nJGwfHX7ALXCp3VgnMVQIfakw1BIc77iT9BNQJX78xH60lBSDzNDvOn1ldzRFeou?= =?utf-8?q?fHaaHj34qrurbMem6ZBu1zJdIn30M6838U2VWYwDR+3egbwtILxOtEzFmkl+d46wt?= =?utf-8?q?5YpjsW1bipefxzpxEoxf4oj51wSdt/nZxnVdiRZj5vSeBeoY+Pj5KAO/GEbQnCBkq?= =?utf-8?q?0dv2dRYadeQCaxXEG4/oRepDZzUbHXDcfSY3lKxlqHHKZwQesuASswA5iYfa/nc/k?= =?utf-8?q?UEQ6wMeWF2DMl?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(376005)(36860700004)(82310400017)(35042699013)(1800799015); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:10.2635 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4080a75b-66f9-4560-c5f5-08dc7a46aa43 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF00009528.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5405 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Hi, This patch fixes the syntax of sve2p1 "extq" instruction by modifying the operands count to 4. A new operand AARCH64_OPND_SVE_UIMM4 is defined to handle the 4th argument an 4-bit unsigned immediate of extq instruction. The instruction encoding is updated to use constraint C_SCAN_MOVPRFX, to enable "extq" instruction to immediately precede in program order by a MOVPRFX instruction. This issues was reported here: https://sourceware.org/pipermail/binutils/2024-February/132408.html Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils master? Regards, Srinath. --- gas/config/tc-aarch64.c | 1 + gas/testsuite/gas/aarch64/sve2p1-1-bad.l | 6 ------ gas/testsuite/gas/aarch64/sve2p1-1.d | 6 ------ gas/testsuite/gas/aarch64/sve2p1-1.s | 6 ------ gas/testsuite/gas/aarch64/sve2p1-3-invalid.d | 3 +++ gas/testsuite/gas/aarch64/sve2p1-3-invalid.l | 17 +++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-3-invalid.s | 16 ++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-3.d | 20 ++++++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-3.s | 12 ++++++++++++ include/opcode/aarch64.h | 1 + opcodes/aarch64-opc.c | 5 ++++- opcodes/aarch64-tbl.h | 4 +++- 12 files changed, 77 insertions(+), 20 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3-invalid.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3-invalid.l create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3-invalid.s create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3.s diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 3f838cfd9a0..7029675a822 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -6938,6 +6938,7 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SVE_SIMM6: case AARCH64_OPND_SVE_SIMM8: case AARCH64_OPND_SVE_UIMM3: + case AARCH64_OPND_SVE_UIMM4: case AARCH64_OPND_SVE_UIMM7: case AARCH64_OPND_SVE_UIMM8: case AARCH64_OPND_SVE_UIMM8_53: diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l index 4ea763f0e7d..718700e2ca2 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l +++ b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l @@ -41,12 +41,6 @@ .*: Error: selected processor does not support `eorqv v4.2d,p3,z2.d' .*: Error: selected processor does not support `eorqv v8.2d,p4,z1.d' .*: Error: selected processor does not support `eorqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `extq z0.b,z0.b,z10.b\[15\]' -.*: Error: selected processor does not support `extq z1.b,z1.b,z15.b\[7\]' -.*: Error: selected processor does not support `extq z2.b,z2.b,z5.b\[3\]' -.*: Error: selected processor does not support `extq z4.b,z4.b,z12.b\[1\]' -.*: Error: selected processor does not support `extq z8.b,z8.b,z7.b\[4\]' -.*: Error: selected processor does not support `extq z16.b,z16.b,z1.b\[8\]' .*: Error: selected processor does not support `faddqv v1.8h,p1,z8.h' .*: Error: selected processor does not support `faddqv v2.4s,p2,z4.s' .*: Error: selected processor does not support `faddqv v4.2d,p3,z2.d' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.d b/gas/testsuite/gas/aarch64/sve2p1-1.d index 6afb051e67d..1c2e928685c 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1.d @@ -50,12 +50,6 @@ .*: 04dd2c44 eorqv v4.2d, p3, z2.d .*: 04dd3028 eorqv v8.2d, p4, z1.d .*: 049d3c10 eorqv v16.4s, p7, z0.s -.*: 056a27c0 extq z0.b, z0.b, z10.b\[15\] -.*: 056f25c1 extq z1.b, z1.b, z15.b\[7\] -.*: 056524c2 extq z2.b, z2.b, z5.b\[3\] -.*: 056c2444 extq z4.b, z4.b, z12.b\[1\] -.*: 05672508 extq z8.b, z8.b, z7.b\[4\] -.*: 05612610 extq z16.b, z16.b, z1.b\[8\] .*: 6450a501 faddqv v1.8h, p1, z8.h .*: 6490a882 faddqv v2.4s, p2, z4.s .*: 64d0ac44 faddqv v4.2d, p3, z2.d diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.s b/gas/testsuite/gas/aarch64/sve2p1-1.s index 08c777b2c70..5484557fb98 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.s +++ b/gas/testsuite/gas/aarch64/sve2p1-1.s @@ -46,12 +46,6 @@ eorqv v4.2d, p3, z2.d eorqv v8.2d, p4, z1.d eorqv v16.4s, p7, z0.s -extq z0.b, z0.b, z10.b[15] -extq z1.b, z1.b, z15.b[7] -extq z2.b, z2.b, z5.b[3] -extq z4.b, z4.b, z12.b[1] -extq z8.b, z8.b, z7.b[4] -extq z16.b, z16.b, z1.b[8] faddqv v1.8h, p1, z8.h faddqv v2.4s, p2, z4.s faddqv v4.2d, p3, z2.d diff --git a/gas/testsuite/gas/aarch64/sve2p1-3-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-3-invalid.d new file mode 100644 index 00000000000..ff6ecb2027a --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3-invalid.d @@ -0,0 +1,3 @@ +#name: Test of illegal SVE2.1 extq instructions. +#as: -march=armv9.4-a +#error_output: sve2p1-3-invalid.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-3-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-3-invalid.l new file mode 100644 index 00000000000..ca8f4cda456 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3-invalid.l @@ -0,0 +1,17 @@ +.*: Assembler messages: +.*: Error: operand mismatch -- `extq z0.b,z0.h,z0.b,#0' +.*: Info: did you mean this\? +.*: Info: extq z0.b, z0.b, z0.b, #0 +.*: Error: operand 2 must be the same register as operand 1 -- `extq z31.b,z15.b,z0.b,#0' +.*: Error: operand mismatch -- `extq z0.b,z0.b,z31.h,#0' +.*: Info: did you mean this\? +.*: Info: extq z0.b, z0.b, z31.b, #0 +.*: Error: immediate value out of range 0 to 15 at operand 4 -- `extq z0.b,z0.b,z0.b,#16' +.*: Error: operand mismatch -- `extq z0.h,z0.h,z0.h,#15' +.*: Info: did you mean this\? +.*: Info: extq z0.b, z0.b, z0.b, #15 +.*: Warning: output register of preceding `movprfx' not used in current instruction at operand 1 -- `extq z3.b,z3.b,z0.b,#0' +.*: Error: operand 2 must be the same register as operand 1 -- `extq z31.b,z2.b,z0.b,#15' +.*: Warning: instruction opens new dependency sequence without ending previous one -- `movprfx z31.b,p1/m,z10.b' +.*: Warning: predicated instruction expected after `movprfx' -- `extq z31.b,z31.b,z0.b,#15' +.*: Warning: output register of preceding `movprfx' used as input at operand 3 -- `extq z0.b,z0.b,z0.b,#0' diff --git a/gas/testsuite/gas/aarch64/sve2p1-3-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-3-invalid.s new file mode 100644 index 00000000000..a6211ee24a0 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3-invalid.s @@ -0,0 +1,16 @@ +extq z0.b, z0.h, z0.b, #0 +extq z31.b, z15.b, z0.b, #0 +extq z0.b, z0.b, z31.h, #0 +extq z0.b, z0.b, z0.b, #16 +extq z0.h, z0.h, z0.h, #15 +movprfx z1, z5 +extq z3.b, z3.b, z0.b, #0 + +movprfx z31, z10 +extq z31.b, z2.b, z0.b, #15 + +movprfx z31.b, p1/m, z10.b +extq z31.b, z31.b, z0.b, #15 + +movprfx z0, z2 +extq z0.b, z0.b, z0.b, #0 diff --git a/gas/testsuite/gas/aarch64/sve2p1-3.d b/gas/testsuite/gas/aarch64/sve2p1-3.d new file mode 100644 index 00000000000..bacb1b65bbe --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3.d @@ -0,0 +1,20 @@ +#name: Test of SVE2.1 extq instructions. +#as: -march=armv9.4-a +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: 05602400 extq z0.b, z0.b, z0.b, #0 +.*: 0560241f extq z31.b, z31.b, z0.b, #0 +.*: 056027e0 extq z0.b, z0.b, z31.b, #0 +.*: 056f2400 extq z0.b, z0.b, z0.b, #15 +.*: 056f27ff extq z31.b, z31.b, z31.b, #15 +.*: 056727ef extq z15.b, z15.b, z31.b, #7 +.*: 0420bca3 movprfx z3, z5 +.*: 05602403 extq z3.b, z3.b, z0.b, #0 +.*: 0420bd5f movprfx z31, z10 +.*: 056f241f extq z31.b, z31.b, z0.b, #15 diff --git a/gas/testsuite/gas/aarch64/sve2p1-3.s b/gas/testsuite/gas/aarch64/sve2p1-3.s new file mode 100644 index 00000000000..38864b791fa --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3.s @@ -0,0 +1,12 @@ +extq z0.b, z0.b, z0.b, #0 +extq z31.b, z31.b, z0.b, #0 +extq z0.b, z0.b, z31.b, #0 +extq z0.b, z0.b, z0.b, #15 +extq z31.b, z31.b, z31.b, #15 +extq z15.b, z15.b, z31.b, #7 + +movprfx z3, z5 +extq z3.b, z3.b, z0.b, #0 + +movprfx z31, z10 +extq z31.b, z31.b, z0.b, #15 diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 220ff68db88..f97a288d446 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -715,6 +715,7 @@ enum aarch64_opnd AARCH64_OPND_SVE_UIMM7, /* SVE unsigned 7-bit immediate. */ AARCH64_OPND_SVE_UIMM8, /* SVE unsigned 8-bit immediate. */ AARCH64_OPND_SVE_UIMM8_53, /* SVE split unsigned 8-bit immediate. */ + AARCH64_OPND_SVE_UIMM4, /* SVE unsigned 4-bit immediate. */ AARCH64_OPND_SVE_VZn, /* Scalar SIMD&FP register in Zn field. */ AARCH64_OPND_SVE_Vd, /* Scalar SIMD&FP register in Vd. */ AARCH64_OPND_SVE_Vm, /* Scalar SIMD&FP register in Vm. */ diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 032ab17e250..c4dd4ff9f49 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -2697,6 +2697,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, case AARCH64_OPND_SVE_UIMM3: case AARCH64_OPND_SVE_UIMM7: case AARCH64_OPND_SVE_UIMM8: + case AARCH64_OPND_SVE_UIMM4: case AARCH64_OPND_SVE_UIMM8_53: case AARCH64_OPND_CSSC_UIMM8: size = get_operand_fields_width (get_operand_from_code (type)); @@ -4351,6 +4352,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, case AARCH64_OPND_SVE_UIMM3: case AARCH64_OPND_SVE_UIMM7: case AARCH64_OPND_SVE_UIMM8: + case AARCH64_OPND_SVE_UIMM4: case AARCH64_OPND_SVE_UIMM8_53: case AARCH64_OPND_IMM_ROT1: case AARCH64_OPND_IMM_ROT2: @@ -5473,7 +5475,8 @@ verify_constraints (const struct aarch64_inst *inst, instruction for better error messages. */ if (!opcode->avariant || (!AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE) - && !AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE2))) + && !AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE2) + && !AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE2p1))) { mismatch_detail->kind = AARCH64_OPDE_SYNTAX_ERROR; mismatch_detail->error = _("SVE instruction expected after " diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 6ce42aed1e3..b6766e07e58 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -6479,7 +6479,7 @@ const struct aarch64_opcode aarch64_opcode_table[] = SVE2p1_INSNC("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0), - SVE2p1_INSN("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zd, SVE_Zm_imm4), OP_SVE_BBB, 0, 1), + SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1), SVE2p1_INSNC("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_Zt, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_SZS_QD, 0, C_SCAN_MOVPRFX, 0), SVE2p1_INSNC("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt2, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), SVE2p1_INSNC("ld3q",0xa510e000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt3, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), @@ -6986,6 +6986,8 @@ const struct aarch64_opcode aarch64_opcode_table[] = "an 8-bit unsigned immediate") \ Y(IMMEDIATE, imm, "SVE_UIMM8_53", 0, F(FLD_imm5,FLD_imm3_10), \ "an 8-bit unsigned immediate") \ + Y(IMMEDIATE, imm, "SVE_UIMM4", 0, F(FLD_SVE_imm4), \ + "a 4-bit unsigned immediate") \ Y(SIMD_REG, regno, "SVE_VZn", 0, F(FLD_SVE_Zn), "a SIMD register") \ Y(SIMD_REG, regno, "SVE_Vd", 0, F(FLD_SVE_Vd), "a SIMD register") \ Y(SIMD_REG, regno, "SVE_Vm", 0, F(FLD_SVE_Vm), "a SIMD register") \ From patchwork Wed May 22 10:04:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90672 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2F411387084C for ; Wed, 22 May 2024 10:07:39 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2087.outbound.protection.outlook.com [40.107.7.87]) by sourceware.org (Postfix) with ESMTPS id 6F791384F4BA for ; Wed, 22 May 2024 10:05:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6F791384F4BA Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6F791384F4BA Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.7.87 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372320; cv=pass; b=GRR6aQm7tIz6nbme3XzlTzhiqJ9ChnJc/fJ/WSkAK1u49qUFQ1uFn2xqwxbVd0iKjPyCmi9k8UVhrpeHIQeKPQl8BaWbZQGUHPAxBhdDVbxxTBC3sjDv6PfHIro17CpYgJjHFTbwZB3UG2InUB326fOlVb94P2ZQOzVQxp1tC0g= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372320; c=relaxed/simple; bh=EJdUJT/vuMB8hlJD5cdU6Ums8VlgQuJ3TVFhE40L6Gc=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=q20kGtGpDqateFrRxvj0zGj89crEtEBvqlRZjI8vXwyxpkenOVF4Yy0VdICZvhJZpzdnnme8QEgTJg6LXaabk+as/heAlqNIddn36bq3xEN1J2iTiJKYHand7TcsFjLtV3A2v9omIKYH4V7BzPX10lWFeNkoyAtar5C6xjfsZFM= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=ATIoLQGJEZakwKpVyNeyghus/KwGxYctnw9eJwUxv2ME3A7OfniBvn8wANK9w5m7KLdRP72KHuNJnJ5U5utQ1jYc+FnQFRlx/8bgL7pHrqBwCXSfGYw2fcM5tzsUhIslP/CNH5iqFZpLi+7J3QEhywFWoWoRWU016M4lIsXc0RZ3gz3q1qNe1c9qAkyb6Fd5rvT71ZCufOFu2gFYt5ygoysqrrLrF/iDksXKo15kciZeoUj3z10DfO7d8yiqqjipzSIVpmZA0d9CAW5AweKZ+McDEMu413qdbs10M7ZhVDsM4usdcz401RC5uBndM1cZbDSCl2o9Cgjg/C7Z2toPsw== ARC-Message-Signature: i=2; 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=RYBno0WDOTWkoQ4kgIGUL1TQo9tjGtjE9LTVAeLS3A4=; b=HI7UjeZEoLr9Vun1UGw2YhT9uRR778RYDK82wl4VX83vj50WmlLuaNHe52IO+1UCSx00lZP5TiMQCTNfoWvRHHUC1Yqp3RsBfR4U8LtdksKo5yWG7Rjb2TCiG1Rn0OMdECs7FybO8FIUuyf8DmdQcceclH0YoXXrcnALCkvyX1qXyuKDBp9nr2a2kvEN1Sf+bgZhyOwlGdB8fJMdqEcoiqQNv1ZY2EYPPV19LFRfwrso9oxSkU+WZOTOS+teAZd25honD9UHs2v4BhGci19783pg4HBVKG//YRJ+PYARwnhEbgRvIVQxZ4zAiGQ3fFT1vBqcMxOuMXUJEVpWShOmKA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RYBno0WDOTWkoQ4kgIGUL1TQo9tjGtjE9LTVAeLS3A4=; b=Gveyu8RxIDmpdFdU9NU7n0z0n6kyaPzSdlbzvhRJ3zMFqJ5aqTaNAVaGX7orGillJEu5G9nKbi0BNAHpFbdqa1gGktndwg5+NkeDRyQsNuUJ0IJpRPHb1tls1iIKdrCChkvxwa4kwY3aHXcU28s8SsWC4bjYCtBDcH2vesvZhjI= Received: from DU2PR04CA0357.eurprd04.prod.outlook.com (2603:10a6:10:2b4::32) by VI0PR08MB10712.eurprd08.prod.outlook.com (2603:10a6:800:210::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35; Wed, 22 May 2024 10:05:08 +0000 Received: from DB1PEPF000509FA.eurprd03.prod.outlook.com (2603:10a6:10:2b4:cafe::e9) by DU2PR04CA0357.outlook.office365.com (2603:10a6:10:2b4::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36 via Frontend Transport; Wed, 22 May 2024 10:05:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB1PEPF000509FA.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:08 +0000 Received: ("Tessian outbound 2fd40f2ccfd7:v327"); Wed, 22 May 2024 10:05:08 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3c62cbba778c9e2e X-CR-MTA-TID: 64aa7808 Received: from 26f6a3bef26a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D4C47D67-72FD-4007-A40E-E334B1A6AB5B.1; Wed, 22 May 2024 10:05:00 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 26f6a3bef26a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:05:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GH+h1XHUbN7z5ysRgTkqjErnjRYNwLARenNjAYMf+iFYcsu/i6qyx4f8d67OO1GkR8TZtR05idBOCqZwWBqT607K780xRQ5u5s7yhADkbX7gf4M4p0tnnBDVdijL4dF7bPj04S9PpNAjwipAQwIJoKj/d2jhHtla4QclFSlH5SQQo1hc4HiTa6oXGI1SBwt/j0BaV8LS7gyjte1Z6g1vpN8r0uzQ6uYwxfviHKnu2ZjGai32Av8RO8PHABpbJu+eRTlsqOYfSbtAH6NLrDEimGvnpXqCiQjO7a/19vb0S2dkpHyvcjg0FnqdRZvcW4uTBIj1UVcKkXtCeC7CyKKfMw== 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=RYBno0WDOTWkoQ4kgIGUL1TQo9tjGtjE9LTVAeLS3A4=; b=QITXjGgGT/F2O9AXKVZxIJUTBumltUGSPcCT4YaRP+8B8Z90dRN/+06GaOl2WAOmpF45S9Qs1409pIqrRhL0cVLWmQZQeN6MIji+MV3TshfSlHmz0jelhyo1wwgdFo4pdMrOmjdDLqY5EOVNS0Pux6Gr1RrZkPw86J3D0klBWS9/M6RmZmY4nTo9clYzUBlEqayQgAbcrg4pEmLLi4+b4lTVMOmIaANS+7IFnOpIoJShjhhDDYw5U9rh1DRpMmzmn/W3wDvh/dFHnnopYfynjxpQXEW9XA5OPsiVwkz7mDicdpXXNLtJcawursHlSWfOoCEuo/eVN1jzAYilXbWBcA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RYBno0WDOTWkoQ4kgIGUL1TQo9tjGtjE9LTVAeLS3A4=; b=Gveyu8RxIDmpdFdU9NU7n0z0n6kyaPzSdlbzvhRJ3zMFqJ5aqTaNAVaGX7orGillJEu5G9nKbi0BNAHpFbdqa1gGktndwg5+NkeDRyQsNuUJ0IJpRPHb1tls1iIKdrCChkvxwa4kwY3aHXcU28s8SsWC4bjYCtBDcH2vesvZhjI= Received: from DU2PR04CA0029.eurprd04.prod.outlook.com (2603:10a6:10:3b::34) by DBBPR08MB6235.eurprd08.prod.outlook.com (2603:10a6:10:201::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:04:56 +0000 Received: from DB5PEPF00014B9C.eurprd02.prod.outlook.com (2603:10a6:10:3b:cafe::ce) by DU2PR04CA0029.outlook.office365.com (2603:10a6:10:3b::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19 via Frontend Transport; Wed, 22 May 2024 10:04:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DB5PEPF00014B9C.mail.protection.outlook.com (10.167.8.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:04:56 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:55 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:04:55 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH v2 4/7][Binutils] aarch64: Fix sve2p1 ld[1-4]/st[1-4]q instruction operands. Date: Wed, 22 May 2024 11:04:34 +0100 Message-ID: <20240522100439.1050296-7-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B9C:EE_|DBBPR08MB6235:EE_|DB1PEPF000509FA:EE_|VI0PR08MB10712:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b2d8ede-db03-4355-7335-08dc7a46a91a X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|1800799015|36860700004|376005|82310400017; X-Microsoft-Antispam-Message-Info-Original: Sx32U7RDFz+DBjTOy5w6wBxO9EZO6IY6BMUmdk4jKzblCyLuO2EHDH/ypgTMq1cwfWL/OYNqMe1ltqN9UWxcFyBvyRn7Tlm5fFAWYi6MReKlr2JEwBuQgHlPYyzuA2L/0nfcnHHlxtnhNyjLCsbjJ3Jq3f1M7S67Xsn5wgEaQVwJymSr3mK9MOFAxj98Str93z8PATmSrw5wqqTo64mOCUdZLWP0tdr5wCTp+xBcUiZMjsoQqj88n8LvAxrgBBwdnCWanw7zzIeiAL/lyVjRsKIJJBChcdFkLnIUvKF/r+YNaZtfpTtjT1Wsvktjk3KzEIUaY/dXAdNBBEVK/MlNGZgThURTlIf3W0luDF9jbbYrgsDScSgPh/1tHSkxMaq136PNKFK+OMQySvdVoK8sWiniGYRmP4Fr8Cnal/s1oPBeTdG954zD/JWI22YKaDNHvqk1FfxV7coEBXN+CLiz8Z4JtLIBIhGvTZRHFyP2bcal3k7KazUit4xdN2SjCxBfJtH5AnU7+F7KzFHagKMfdkXx2IYveamRQcyBzYi2urxfiH9ossMetZDhqTCZHrFeZZR6rqHatAVb9LwuRQm14jvQ6YaUW+Zo46PvNl009uU+GuY5YKjZoiyCshOdHvRYZ6PmV0dIkPCQvxmAGzXMlv6p7zCxEWOxF70TK8KYQQ+NtBuPeBs9CQAc6c0X7jNJzI+kTuoJ5MTye5tikLavviNHITzu5KASCxI3sJ7f0nhGPkuUh335q3iUj+jhGU3jwmIMcH0jtocsqz6yargqYJQycSXavX/rVyHuFJ9ndtsCfaNUo0AgktonD8Nikn5cQbpCV4AfUWc8S7cqmD259wvhuMubCX6m2RZfFne1mYZSXQtpZvAxHUuO/NfNS06ofKXPMl+qK6Oj/1eVtsheNthlGcpowzhCncYnPGQr2nUQxM4ypM/8eJdke8EafyBX3PxEapTh/XaIZDM8YQOnqz+P7KZ9LQIckIbUj/XUoyVy8yoof+uyr/Z8OVQZ0kbDwDe5Akh7lv9mOPdfCw94naJVTNy3ot4LvAqLU0JRHcOopMaHLA567wgqFzLMW4iimCXumzGxdy+h2rdIoTwnUADr1N9cewJ4PpZVoGPBCdO4ehsslcyQCA9fIaCS3X/Z98FnKmZNNn0yVGVL9u2EvJsAhaiPcgN3hYFHXTwzY6VYp8kQ5KvkC9lKqzPSU70AA1n0OgYVmiF9qllz88yZbklEHkUTX49y+wZvANI6OL2NSIhdsZV+hWf+kzmrKlcafzoMvTr6dXaxmuiv8lbsycoqJn8ZMXxGGT1uU6KEMubBVdBB+KCfDBoUGb1+x9iS X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(1800799015)(36860700004)(376005)(82310400017); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6235 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509FA.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 73f9c73e-1713-4937-2b65-08dc7a46a1e5 X-Microsoft-Antispam: BCL:0; ARA:13230031|36860700004|1800799015|376005|35042699013|82310400017; X-Microsoft-Antispam-Message-Info: =?utf-8?q?RYeREdRCt/KPbBkkrT4NLKcgjj77VK8?= =?utf-8?q?Eyp+scN137VAEO5r9qKNrdSoBFu7SKuJTgtSgwDDPCKbYGTK+JBBMx/w3D2iF2D8n?= =?utf-8?q?9XVIpq/FaweTh1Uw0QFvPEzgH+Crk34a3b8EtK8tdMkqNgmDLTrod4jzGocj6rWso?= =?utf-8?q?Us58AzM6bfSjPtcORuht0oXI4ciHBT44PiwAbdBezdajeZ1nhU4qSd9C2+9mNNYCt?= =?utf-8?q?AOIapOmTTUWUqEvV+KfZOgkJuM9NQb7JPksBI2iIgJyUSdrCb0dchd/B/aCSLXTRv?= =?utf-8?q?N2iHwoxdmFEkC3bwed4ir8U5XjC9RfnKnEEaPhsgGe3uw0EfCQ9knLoNAeeg/0GAg?= =?utf-8?q?5yw0pWUIHLLu0xatNBUcSJyKPIhFtNEkSrUpOfYYV6fLhujFJ3d0pFvzzpM/JADrR?= =?utf-8?q?QrqafeDsXqoBI9Valc4VMQO6RuFYql/mcSyAnLZQYk2GTjyNVOMSYislkEmyfynny?= =?utf-8?q?NbsePmGRH9H9OqXf4t5xGk0UlItWPzLl9odJRUwuIP98+ANhgjPyaSOFlfU18lgMq?= =?utf-8?q?3LIcE/b1rHZ5pCsrPpIzmFJEnSId/NoVWxAwWa5lP1SmTIiumjDwQCwr2Q7q3blqX?= =?utf-8?q?wqsxTfNh5IrAZDAb4xKJ2+gqViCxqFVwbpt8uO7AZ3YAJfBeu21coQ7mqSj+TWnNv?= =?utf-8?q?GIo/XqWrpxHLwaKq99DMENlp2zO+g22geI0hDu9bJC0R8zsVN72Ipk7GW91szIMnT?= =?utf-8?q?bJn0uUWQ+EAArnxwDlsoxaLgiHPVOaOhOSG60YD40EYB4DoYGBC6LUysOzFVnnht6?= =?utf-8?q?VFnw9QsrPx6oaorUiXq9NvOzMGv6w6CsdpPMnlPVgaq2GTGEbCNnDr3yp5veyokCM?= =?utf-8?q?GAP4IGvjrxlnbqiBaynkY6N9Qj0HC9nlcR1Cc0Z3BznBGAGLcQXb38sl+hbXAnVlQ?= =?utf-8?q?9+PNzxLETp3scDFTtrQSQ4RM9uYSucvdG7QsmJ5IeXeUZGHn/Z9emXnzRE7fjbaHm?= =?utf-8?q?fndLwZgRchziB3kRU20K7r0g5tlZ1apmUtaUNo+h6bBnQOBO0KOyoedD86G6aMoPm?= =?utf-8?q?GOV1ZrHgLYMODwcCLotU2V95JMkMnQB9viqOw1NfBiByfL2kD6eEWtVaVIlcAVFR2?= =?utf-8?q?8HzHUePukFUtQZt3JcnHDAXsrlJN+j2/mVSYhyD0SzObWMOJuOvbIyPXi81FooHkr?= =?utf-8?q?bfFVYkmsj3t260m+1OnzcSbTVR2ruQiB7Kw9RI3V5nALtaja8PZUyxrzTEYxy570H?= =?utf-8?q?wCI5CLuEvy6imYxYJt5QHvB9BHY41Ri0deyDa6YvFAFhdZWj3wPbbcZBEG9+Dh+6W?= =?utf-8?q?yrp1zuB0BMYct?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(36860700004)(1800799015)(376005)(35042699013)(82310400017); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:08.2993 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5b2d8ede-db03-4355-7335-08dc7a46a91a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FA.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10712 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Hi, This patch fixes encoding and syntax for sve2p1 instructions as mentioned below, for the issues reported here. https://sourceware.org/pipermail/binutils/2024-February/132408.html 1) ld1q and st1q first register operand to accept enclosed figure braces. 2) ld2q, ld3q, ld4q, st2q, st3q, and st4q instructions to accept wrapping sequence of vector registers. 3) Fixes the encoding for bits 13 and 14 for ld2q's scalar plus scalar encoding. 4) ld3q/st3q and ld4q/st4q scalar plus immediate forms accepts multiple of 3 and 4 respectively. For the instructions ld[2-4]q/st[2-4]q, tests for wrapping sequence of vector registers are added along with short-form of operands for non-wrapping sequence. I have added test using following logic: ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, #0, MUL VL] //raw insn encoding (all zeroes) ld2q {Z31.Q, Z0.Q}, p0/Z, [x0, #0, MUL VL] // encoding of ld2q {Z0.Q, Z1.Q}, p7/Z, [x0, #0, MUL VL] // encoding of ld2q {Z0.Q, Z1.Q}, p0/Z, [x30, #0, MUL VL] // encoding of ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, #-16, MUL VL] // encoding of (low value) ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, #14, MUL VL] // encoding of (high value) ld2q {Z31.Q, Z0.Q}, p7/Z, [x30, #-16, MUL VL] // encoding of all fields (all ones) ld2q {Z30.Q, Z31.Q}, p1/Z, [x3, #-2, MUL VL] // random encoding. For all the above form of instructions the hyphenated form is preferred for disassembly if there are more than two registers in the list, and the register numbers are monotonically increasing in increments of one. Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath. --- gas/config/tc-aarch64.c | 3 - gas/testsuite/gas/aarch64/sme-5-illegal.l | 8 +- gas/testsuite/gas/aarch64/sme-6-illegal.l | 8 +- gas/testsuite/gas/aarch64/sve2p1-1-bad.l | 14 -- gas/testsuite/gas/aarch64/sve2p1-1.d | 14 -- gas/testsuite/gas/aarch64/sve2p1-1.s | 15 -- gas/testsuite/gas/aarch64/sve2p1-4-invalid.d | 3 + gas/testsuite/gas/aarch64/sve2p1-4-invalid.l | 116 +++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-4-invalid.s | 119 +++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-4.d | 144 ++++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-4.s | 147 +++++++++++++++++++ include/opcode/aarch64.h | 3 - opcodes/aarch64-opc.c | 11 +- opcodes/aarch64-tbl.h | 43 +++--- 14 files changed, 556 insertions(+), 92 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/sve2p1-4-invalid.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-4-invalid.l create mode 100644 gas/testsuite/gas/aarch64/sve2p1-4-invalid.s create mode 100644 gas/testsuite/gas/aarch64/sve2p1-4.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-4.s diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 7029675a822..a3b87d166d4 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -6794,9 +6794,6 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SVE_ZtxN: case AARCH64_OPND_SME_Zdnx2: case AARCH64_OPND_SME_Zdnx4: - case AARCH64_OPND_SME_Zt2: - case AARCH64_OPND_SME_Zt3: - case AARCH64_OPND_SME_Zt4: case AARCH64_OPND_SME_Zmx2: case AARCH64_OPND_SME_Zmx4: case AARCH64_OPND_SME_Znx2: diff --git a/gas/testsuite/gas/aarch64/sme-5-illegal.l b/gas/testsuite/gas/aarch64/sme-5-illegal.l index c4bfc1f8b5a..b0736e0fcd6 100644 --- a/gas/testsuite/gas/aarch64/sme-5-illegal.l +++ b/gas/testsuite/gas/aarch64/sme-5-illegal.l @@ -35,10 +35,10 @@ [^:]*:[0-9]+: Error: immediate offset out of range 0 to 1 at operand 1 -- `ld1d {za7h.d\[w15,2\]},p7/z,\[sp\]' [^:]*:[0-9]+: Error: immediate offset out of range 0 to 1 at operand 1 -- `ld1d {za7v.d\[w15,2\]},p7/z,\[x0,x17,lsl#3\]' [^:]*:[0-9]+: Error: immediate offset out of range 0 to 1 at operand 1 -- `ld1d {za7h.d\[w15,2\]},p7/z,\[sp,x17,lsl#3\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `ld1q {za16v.q\[w12\]},p0/z,\[x0\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `ld1q {za16h.q\[w12\]},p0/z,\[sp\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `ld1q {za16v.q\[w12\]},p0/z,\[x0,x0,lsl#4\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `ld1q {za16h.q\[w12\]},p0/z,\[sp,x0,lsl#4\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `ld1q {za16v.q\[w12\]},p0/z,\[x0\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `ld1q {za16h.q\[w12\]},p0/z,\[sp\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `ld1q {za16v.q\[w12\]},p0/z,\[x0,x0,lsl#4\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `ld1q {za16h.q\[w12\]},p0/z,\[sp,x0,lsl#4\]' [^:]*:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `ld1q {za15v.q\[w15,1\]},p7/z,\[x17\]' [^:]*:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `ld1q {za15h.q\[w15,1\]},p7/z,\[sp\]' [^:]*:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `ld1q {za15v.q\[w15,1\]},p7/z,\[x0,x17,lsl#4\]' diff --git a/gas/testsuite/gas/aarch64/sme-6-illegal.l b/gas/testsuite/gas/aarch64/sme-6-illegal.l index b98b76faaed..10c2a51204b 100644 --- a/gas/testsuite/gas/aarch64/sme-6-illegal.l +++ b/gas/testsuite/gas/aarch64/sme-6-illegal.l @@ -35,10 +35,10 @@ [^:]*:[0-9]+: Error: immediate offset out of range 0 to 1 at operand 1 -- `st1d {za7h.d\[w15,2\]},p7,\[sp\]' [^:]*:[0-9]+: Error: immediate offset out of range 0 to 1 at operand 1 -- `st1d {za7v.d\[w15,2\]},p7,\[x0,x17,lsl#3\]' [^:]*:[0-9]+: Error: immediate offset out of range 0 to 1 at operand 1 -- `st1d {za7h.d\[w15,2\]},p7,\[sp,x17,lsl#3\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `st1q {za16v.q\[w12\]},p0,\[x0\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `st1q {za16h.q\[w12\]},p0,\[sp\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `st1q {za16v.q\[w12\]},p0,\[x0,x0,lsl#4\]' -[^:]*:[0-9]+: Error: expected a ZA tile slice at operand 1 -- `st1q {za16h.q\[w12\]},p0,\[sp,x0,lsl#4\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `st1q {za16v.q\[w12\]},p0,\[x0\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `st1q {za16h.q\[w12\]},p0,\[sp\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `st1q {za16v.q\[w12\]},p0,\[x0,x0,lsl#4\]' +[^:]*:[0-9]+: Error: expected an SVE vector register or ZA tile slice at operand 1 -- `st1q {za16h.q\[w12\]},p0,\[sp,x0,lsl#4\]' [^:]*:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `st1q {za15v.q\[w15,1\]},p7,\[x17\]' [^:]*:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `st1q {za15h.q\[w15,1\]},p7,\[sp\]' [^:]*:[0-9]+: Error: immediate offset must be 0 at operand 1 -- `st1q {za15v.q\[w15,1\]},p7,\[x0,x17,lsl#4\]' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l index 718700e2ca2..1b6a9683b65 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l +++ b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l @@ -66,17 +66,3 @@ .*: Error: selected processor does not support `fminqv v4.2d,p3,z2.d' .*: Error: selected processor does not support `fminqv v8.2d,p4,z1.d' .*: Error: selected processor does not support `fminqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `ld1q Z0.Q,p4/Z,\[Z16.D,x0\]' -.*: Error: selected processor does not support `ld2q {Z0.Q,Z1.Q},p4/Z,\[x0,#-4,MUL VL\]' -.*: Error: selected processor does not support `ld3q .* -.*: Error: selected processor does not support `ld4q .* -.*: Error: selected processor does not support `ld2q {Z0.Q,Z1.Q},p4/Z,\[x0,x2,lsl#4\]' -.*: Error: selected processor does not support `ld3q {Z0.Q,Z1.Q,Z2.Q},p4/Z,\[x0,x4,lsl#4\]' -.*: Error: selected processor does not support `ld4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p4/Z,\[x0,x6,lsl#4\]' -.*: Error: selected processor does not support `st1q Z0.Q,p4,\[Z16.D,x0\]' -.*: Error: selected processor does not support `st2q {Z0.Q,Z1.Q},p4,\[x0,#-4,MUL VL\]' -.*: Error: selected processor does not support `st3q .* -.*: Error: selected processor does not support `st4q .* -.*: Error: selected processor does not support `st2q {Z0.Q,Z1.Q},p4,\[x0,x2,lsl#4\]' -.*: Error: selected processor does not support `st3q {Z0.Q,Z1.Q,Z2.Q},p4,\[x0,x4,lsl#4\]' -.*: Error: selected processor does not support `st4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p4,\[x0,x6,lsl#4\]' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.d b/gas/testsuite/gas/aarch64/sve2p1-1.d index 1c2e928685c..8277a1386f2 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1.d @@ -75,17 +75,3 @@ .*: 64d7ac44 fminqv v4.2d, p3, z2.d .*: 64d7b028 fminqv v8.2d, p4, z1.d .*: 6497bc10 fminqv v16.4s, p7, z0.s -.*: c400b200 ld1q z0.q, p4/z, \[z16.d, x0\] -.*: a49ef000 ld2q {z0.q, z1.q}, p4/z, \[x0, #-4, mul vl\] -.*: a51ef000 ld3q {z0.q, z1.q, z2.q}, p4/z, \[x0, #-6, mul vl\] -.*: a59ef000 ld4q {z0.q, z1.q, z2.q, z3.q}, p4/z, \[x0, #-8, mul vl\] -.*: a4a29000 ld2q {z0.q, z1.q}, p4/z, \[x0, x2, lsl #4\] -.*: a5249000 ld3q {z0.q, z1.q, z2.q}, p4/z, \[x0, x4, lsl #4\] -.*: a5a69000 ld4q {z0.q, z1.q, z2.q, z3.q}, p4/z, \[x0, x6, lsl #4\] -.*: e4203200 st1q z0.q, p4, \[z16.d, x0\] -.*: e44e1000 st2q {z0.q, z1.q}, p4, \[x0, #-4, mul vl\] -.*: e48e1000 st3q {z0.q, z1.q, z2.q}, p4, \[x0, #-6, mul vl\] -.*: e4ce1000 st4q {z0.q, z1.q, z2.q, z3.q}, p4, \[x0, #-8, mul vl\] -.*: e4621000 st2q {z0.q, z1.q}, p4, \[x0, x2, lsl #4\] -.*: e4a41000 st3q {z0.q, z1.q, z2.q}, p4, \[x0, x4, lsl #4\] -.*: e4e61000 st4q {z0.q, z1.q, z2.q, z3.q}, p4, \[x0, x6, lsl #4\] diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.s b/gas/testsuite/gas/aarch64/sve2p1-1.s index 5484557fb98..1e7c2ceceba 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.s +++ b/gas/testsuite/gas/aarch64/sve2p1-1.s @@ -75,18 +75,3 @@ fminqv v2.4s, p2, z4.s fminqv v4.2d, p3, z2.d fminqv v8.2d, p4, z1.d fminqv v16.4s, p7, z0.s -ld1q Z0.Q, p4/Z, [Z16.D, x0] -ld2q {Z0.Q, Z1.Q}, p4/Z, [x0, #-4, MUL VL] -ld3q {Z0.Q, Z1.Q, Z2.Q}, p4/Z, [x0, #-6, MUL VL] -ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p4/Z, [x0, #-8, MUL VL] -ld2q {Z0.Q, Z1.Q}, p4/Z, [x0, x2, lsl #4] -ld3q {Z0.Q, Z1.Q, Z2.Q}, p4/Z, [x0, x4, lsl #4] -ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p4/Z, [x0, x6, lsl #4] - -st1q Z0.Q, p4, [Z16.D, x0] -st2q {Z0.Q, Z1.Q}, p4, [x0, #-4, MUL VL] -st3q {Z0.Q, Z1.Q, Z2.Q}, p4, [x0, #-6, MUL VL] -st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p4, [x0, #-8, MUL VL] -st2q {Z0.Q, Z1.Q}, p4, [x0, x2, lsl #4] -st3q {Z0.Q, Z1.Q, Z2.Q}, p4, [x0, x4, lsl #4] -st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p4, [x0, x6, lsl #4] diff --git a/gas/testsuite/gas/aarch64/sve2p1-4-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-4-invalid.d new file mode 100644 index 00000000000..2363a12484d --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-4-invalid.d @@ -0,0 +1,3 @@ +#name: Test of illegal SVE2.1 ld[1-4]q/st[1-4]q instructions. +#as: -march=armv9.4-a +#error_output: sve2p1-4-invalid.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-4-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-4-invalid.l new file mode 100644 index 00000000000..1c713a1325f --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-4-invalid.l @@ -0,0 +1,116 @@ +.*: Assembler messages: +.*: Error: p0-p7 expected at operand 2 -- `ld1q {Z0.Q},P8/Z,\[Z0.D,x0\]' +.*: Error: invalid base register at operand 3 -- `ld1q {Z0.Q},P0/Z,\[Z31.Q,x0\]' +.*: Error: invalid addressing mode at operand 3 -- `ld1q {Z0.Q},P0/Z,\[Z0.D,x31\]' +.*: Error: operand mismatch -- `ld1q {Z31.D},P7/Z,\[Z31.D,x30\]' +.*: Info: did you mean this\? +.*: Info: ld1q {z31.q}, p7/z, \[z31.d, x30\] +.*: Error: invalid offset register at operand 3 -- `ld1q Z0.Q,P0/Z,\[Z0.D,sp\]' +.*: Error: operand mismatch -- `ld1q Z0.Q,P0/Z,\[Z0.S,x15\]' +.*: Info: did you mean this\? +.*: Info: ld1q {z0.q}, p0/z, \[z0.d, x15\] +.*: Error: invalid use of 32-bit register offset at operand 3 -- `ld1q Z0.Q,P0/Z,\[Z0.D,w10\]' +.*: Error: the register list must have a stride of 1 at operand 1 -- `ld2q {Z0.Q,Z2.Q},p0/Z,\[x0,#-2,MUL VL\]' +.*: Error: invalid register list at operand 1 -- `ld2q {Z31.Q,Z31.Q},p0/Z,\[x0,#-2,MUL VL\]' +.*: Error: p0-p7 expected at operand 2 -- `ld2q {Z0.Q,Z1.Q},p8/Z,\[x0,#-2,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[x31,#-2,MUL VL\]' +.*: Error: immediate value must be a multiple of 2 at operand 3 -- `ld2q {Z30.Q,Z31.Q},p7/Z,\[x30,#-3,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[x31,#-20,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[xzr,#-20,MUL VL\]' +.*: Error: invalid register list at operand 1 -- `ld3q {Z0.Q,Z1.Q,Z3.Q},p0/Z,\[x0,#-3,MUL VL\]' +.*: Error: operand mismatch -- `ld3q {Z29.Q,Z30.Q,Z31.Q},p8/M,\[x0,#-3,MUL VL\]' +.*: Info: did you mean this\? +.*: Info: ld3q {z29.q-z31.q}, p8/z, \[x0, #-3, mul vl\] +.*: Error: immediate value must be a multiple of 3 at operand 3 -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p7/Z,\[x0,#-2,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p0/Z,\[x31,#-3,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld3q {Z29.Q,Z30.Q,Z31.D},p7/Z,\[x30,#-3,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld3q {Z29.Q,Z30.Q,Z31.D},p7/Z,\[x30,#-30,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld3q {Z29.Q,Z30.Q,Z31.D},p7/Z,\[xzr,#-30,MUL VL\]' +.*: Error: expected a list of 4 registers at operand 1 -- `ld4q {Z0.Q,Z1.Q,Z2.Q},p0/Z,\[x0,#-4,MUL VL\]' +.*: Error: p0-p7 expected at operand 2 -- `ld4q {Z28.Q,Z29.Q,Z30.Q,Z31.Q},p9/Z,\[x0,#-4,MUL VL\]' +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `ld4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p7/Z,\[x0,#-3,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `ld4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p0/Z,\[x31,#-4,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld4q {Z28.Q,Z29.Q,Z30.D,Z31.Q},p7/Z,\[x30,#-4,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld4q {Z28.Q,Z29.Q,Z30.D,Z31.Q},p7/Z,\[x30,#-100,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld4q {Z28.Q,Z29.Q,Z30.D,Z31.Q},p7/Z,\[xzr,#-100,MUL VL\]' +.*: Error: invalid addressing mode at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[x0,x0,LSL#3\]' +.*: Error: invalid addressing mode at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[sp,x0,LSL#3\]' +.*: Error: invalid offset register at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[x0,sp,LSL#3\]' +.*: Error: invalid register list at operand 1 -- `ld2q {Z31.Q,Z31.Q},p0/Z,\[x0,x0,LSL#4\]' +.*: Error: p0-p7 expected at operand 2 -- `ld2q {Z0.Q,Z1.Q},p8/Z,\[x0,x0,LSL#4\]' +.*: Error: invalid base register at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[x31,x0,LSL#4\]' +.*: Error: only 'MUL VL' is permitted at operand 3 -- `ld2q {Z0.Q,Z1.Q},p0/Z,\[x0,x31,LSL#4\]' +.*: Error: invalid base register at operand 3 -- `ld2q {Z30.Q,Z31.Q},p7/Z,\[x31,x31,LSL#4\]' +.*: Error: shift expression expected at operand 3 -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p0/Z,\[x0,x0,#4\]' +.*: Error: shift expression expected at operand 3 -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p0/Z,\[sp,x0,#4\]' +.*: Error: invalid offset register at operand 3 -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p0/Z,\[x0,sp,#4\]' +.*: Error: invalid addressing mode at operand 3 -- `ld3q {Z29.Q,Z30.Q,Z31.Q},p0/Z,\[x0,x0,LSL#2\]' +.*: Error: operand mismatch -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p7/M,\[x0,x0,LSL#4\]' +.*: Info: did you mean this\? +.*: Info: ld3q {z0.q-z2.q}, p7/z, \[x0, x0, lsl #4\] +.*: Error: p0-p7 expected at operand 2 -- `ld3q {Z0.Q,Z1.Q,Z2.Q},p8/Z,\[x30,x0,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `ld3q {Z4.Q,Z1.Q,Z2.Q},p0/Z,\[x31,x30,LSL#4\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld3q {Z29.D,Z30.Q,Z31.Q},p7/Z,\[x31,x30,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `ld4q {Z1.Q,Z1.Q,Z2.Q,Z3.Q},p0/Z,\[x0,x0,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `ld4q {Z1.Q,Z1.Q,Z2.Q,Z3.Q},p0/Z,\[sp,x0,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `ld4q {Z1.Q,Z1.Q,Z2.Q,Z3.Q},p0/Z,\[x0,sp,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `ld4q {Z30.Q,Z29.Q,Z30.Q,Z31.Q},p8/Z,\[x0,x0,LSL#4\]' +.*: Error: invalid addressing mode at operand 3 -- `ld4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p7/Z,\[x0,x0,LSL#2\]' +.*: Error: invalid base register at operand 3 -- `ld4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p0/Z,\[x31,x0,LSL#4\]' +.*: Error: type mismatch in vector register list at operand 1 -- `ld4q {Z0.Q,Z1.Q,Z2.D,Z3.Q},p0/Z,\[x1,x30,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `ld4q {Z2.Q,Z29.Q,Z30.Q,Z31.Q},p7/Z,\[x30,x30,LSL#4\]' +.*: Error: p0-p7 expected at operand 2 -- `st1q {Z0.Q},P8,\[Z0.D,x0\]' +.*: Error: invalid base register at operand 3 -- `st1q {Z0.Q},P0,\[Z31.Q,x0\]' +.*: Error: invalid addressing mode at operand 3 -- `st1q {Z0.Q},P0,\[Z0.D,x31\]' +.*: Error: operand mismatch -- `st1q {Z31.D},P7,\[Z31.D,x30\]' +.*: Info: did you mean this\? +.*: Info: st1q {z31.q}, p7, \[z31.d, x30\] +.*: Error: invalid offset register at operand 3 -- `st1q Z0.Q,P0,\[Z0.D,sp\]' +.*: Error: operand mismatch -- `st1q Z0.Q,P0,\[Z0.S,x15\]' +.*: Info: did you mean this\? +.*: Info: st1q {z0.q}, p0, \[z0.d, x15\] +.*: Error: invalid use of 32-bit register offset at operand 3 -- `st1q Z0.Q,P0,\[Z0.D,w10\]' +.*: Error: the register list must have a stride of 1 at operand 1 -- `st2q {Z0.Q,Z2.Q},p0,\[x0,#-2,MUL VL\]' +.*: Error: invalid register list at operand 1 -- `st2q {Z31.Q,Z31.Q},p0,\[x0,#-2,MUL VL\]' +.*: Error: p0-p7 expected at operand 2 -- `st2q {Z0.Q,Z1.Q},p8,\[x0,#-2,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[x31,#-2,MUL VL\]' +.*: Error: immediate value must be a multiple of 2 at operand 3 -- `st2q {Z30.Q,Z31.Q},p7,\[x30,#-3,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[x31,#-20,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[xzr,#-20,MUL VL\]' +.*: Error: invalid register list at operand 1 -- `st3q {Z0.Q,Z1.Q,Z3.Q},p0,\[x0,#-3,MUL VL\]' +.*: Error: p0-p7 expected at operand 2 -- `st3q {Z29.Q,Z30.Q,Z31.Q},p8,\[x0,#-3,MUL VL\]' +.*: Error: immediate value must be a multiple of 3 at operand 3 -- `st3q {Z0.Q,Z1.Q,Z2.Q},p7,\[x0,#-2,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `st3q {Z0.Q,Z1.Q,Z2.Q},p0,\[x31,#-3,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st3q {Z29.Q,Z30.Q,Z31.D},p7,\[x30,#-3,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st3q {Z29.Q,Z30.Q,Z31.D},p7,\[x30,#-30,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st3q {Z29.Q,Z30.Q,Z31.D},p7,\[xzr,#-30,MUL VL\]' +.*: Error: expected a list of 4 registers at operand 1 -- `st4q {Z0.Q,Z1.Q,Z2.Q},p0,\[x0,#-4,MUL VL\]' +.*: Error: p0-p7 expected at operand 2 -- `st4q {Z28.Q,Z29.Q,Z30.Q,Z31.Q},p9,\[x0,#-4,MUL VL\]' +.*: Error: immediate value must be a multiple of 4 at operand 3 -- `st4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p7,\[x0,#-3,MUL VL\]' +.*: Error: invalid base register at operand 3 -- `st4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p0,\[x31,#-4,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st4q {Z28.Q,Z29.Q,Z30.D,Z31.Q},p7,\[x30,#-4,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st4q {Z28.Q,Z29.Q,Z30.D,Z31.Q},p7,\[x30,#-100,MUL VL\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st4q {Z28.Q,Z29.Q,Z30.D,Z31.Q},p7,\[xzr,#-100,MUL VL\]' +.*: Error: invalid addressing mode at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[x0,x0,LSL#3\]' +.*: Error: invalid addressing mode at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[sp,x0,LSL#3\]' +.*: Error: invalid offset register at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[x0,sp,LSL#3\]' +.*: Error: invalid register list at operand 1 -- `st2q {Z31.Q,Z31.Q},p0,\[x0,x0,LSL#4\]' +.*: Error: p0-p7 expected at operand 2 -- `st2q {Z0.Q,Z1.Q},p8,\[x0,x0,LSL#4\]' +.*: Error: invalid base register at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[x31,x0,LSL#4\]' +.*: Error: only 'MUL VL' is permitted at operand 3 -- `st2q {Z0.Q,Z1.Q},p0,\[x0,x31,LSL#4\]' +.*: Error: invalid base register at operand 3 -- `st2q {Z30.Q,Z31.Q},p7,\[x31,x31,LSL#4\]' +.*: Error: shift expression expected at operand 3 -- `st3q {Z0.Q,Z1.Q,Z2.Q},p0,\[x0,x0,#4\]' +.*: Error: shift expression expected at operand 3 -- `st3q {Z0.Q,Z1.Q,Z2.Q},p0,\[sp,x0,#4\]' +.*: Error: invalid offset register at operand 3 -- `st3q {Z0.Q,Z1.Q,Z2.Q},p0,\[x0,sp,#4\]' +.*: Error: invalid addressing mode at operand 3 -- `st3q {Z29.Q,Z30.Q,Z31.Q},p0,\[x0,x0,LSL#2\]' +.*: Error: p0-p7 expected at operand 2 -- `st3q {Z0.Q,Z1.Q,Z2.Q},p8,\[x30,x0,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `st3q {Z4.Q,Z1.Q,Z2.Q},p0,\[x31,x30,LSL#4\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st3q {Z29.D,Z30.Q,Z31.Q},p7,\[x31,x30,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `st4q {Z1.Q,Z1.Q,Z2.Q,Z3.Q},p0,\[x0,x0,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `st4q {Z1.Q,Z1.Q,Z2.Q,Z3.Q},p0,\[sp,x0,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `st4q {Z1.Q,Z1.Q,Z2.Q,Z3.Q},p0,\[x0,sp,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `st4q {Z30.Q,Z29.Q,Z30.Q,Z31.Q},p8,\[x0,x0,LSL#4\]' +.*: Error: invalid addressing mode at operand 3 -- `st4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p7,\[x0,x0,LSL#2\]' +.*: Error: invalid base register at operand 3 -- `st4q {Z0.Q,Z1.Q,Z2.Q,Z3.Q},p0,\[x31,x0,LSL#4\]' +.*: Error: type mismatch in vector register list at operand 1 -- `st4q {Z0.Q,Z1.Q,Z2.D,Z3.Q},p0,\[x1,x30,LSL#4\]' +.*: Error: invalid register list at operand 1 -- `st4q {Z2.Q,Z29.Q,Z30.Q,Z31.Q},p7,\[x30,x30,LSL#4\]' diff --git a/gas/testsuite/gas/aarch64/sve2p1-4-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-4-invalid.s new file mode 100644 index 00000000000..a95c18e88ec --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-4-invalid.s @@ -0,0 +1,119 @@ +ld1q Z0.Q , P0/Z, [Z0.D, x0] +ld1q { Z0.Q }, P8/Z, [Z0.D, x0] +ld1q { Z0.Q }, P0/Z, [Z31.Q, x0] +ld1q { Z0.Q }, P0/Z, [Z0.D, x31] +ld1q { Z31.D }, P7/Z, [Z31.D, x30] +ld1q Z0.Q , P0/Z, [Z0.D, sp] +ld1q Z0.Q , P0/Z, [Z0.S, x15] +ld1q Z0.Q , P0/Z, [Z0.D, w10] + +ld2q {Z0.Q, Z2.Q}, p0/Z, [x0, #-2, MUL VL] +ld2q {Z31.Q, Z31.Q}, p0/Z, [x0, #-2, MUL VL] +ld2q {Z0.Q, Z1.Q}, p8/Z, [x0, #-2, MUL VL] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x31, #-2, MUL VL] +ld2q {Z30.Q, Z31.Q}, p7/Z, [x30, #-3, MUL VL] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x31, #-20, MUL VL] +ld2q {Z0.Q, Z1.Q}, p0/Z, [xzr, #-20, MUL VL] + +ld3q {Z0.Q, Z1.Q, Z3.Q}, p0/Z, [x0, #-3, MUL VL] +ld3q {Z29.Q, Z30.Q, Z31.Q}, p8/M, [x0, #-3, MUL VL] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p7/Z, [x0, #-2, MUL VL] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x31, #-3, MUL VL] +ld3q {Z29.Q, Z30.Q, Z31.D}, p7/Z, [x30, #-3, MUL VL] +ld3q {Z29.Q, Z30.Q, Z31.D}, p7/Z, [x30, #-30, MUL VL] +ld3q {Z29.Q, Z30.Q, Z31.D}, p7/Z, [xzr, #-30, MUL VL] + +ld4q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, #-4, MUL VL] +ld4q {Z28.Q, Z29.Q, Z30.Q,Z31.Q}, p9/Z, [x0, #-4, MUL VL] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7/Z, [x0, #-3, MUL VL] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x31, #-4, MUL VL] +ld4q {Z28.Q, Z29.Q, Z30.D, Z31.Q}, p7/Z, [x30, #-4, MUL VL] +ld4q {Z28.Q, Z29.Q, Z30.D, Z31.Q}, p7/Z, [x30, #-100, MUL VL] +ld4q {Z28.Q, Z29.Q, Z30.D, Z31.Q}, p7/Z, [xzr, #-100, MUL VL] + +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, x0, LSL #3] +ld2q {Z0.Q, Z1.Q}, p0/Z, [sp, x0, LSL #3] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, sp, LSL #3] +ld2q {Z31.Q, Z31.Q}, p0/Z, [x0, x0, LSL #4] +ld2q {Z0.Q, Z1.Q}, p8/Z, [x0, x0, LSL #4] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x31, x0, LSL #4] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, x31, LSL #4] +ld2q {Z30.Q, Z31.Q}, p7/Z, [x31, x31, LSL #4] + +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, x0, #4] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [sp, x0, #4] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, sp, #4] +ld3q {Z29.Q, Z30.Q, Z31.Q}, p0/Z, [x0, x0, LSL #2] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p7/M, [x0, x0, LSL #4] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p8/Z, [x30, x0, LSL #4] +ld3q {Z4.Q, Z1.Q, Z2.Q}, p0/Z, [x31, x30, LSL #4] +ld3q {Z29.D, Z30.Q, Z31.Q}, p7/Z, [x31, x30, LSL #4] + +ld4q {Z1.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, x0, LSL #4] +ld4q {Z1.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [sp, x0, LSL #4] +ld4q {Z1.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, sp, LSL #4] +ld4q {Z30.Q, Z29.Q, Z30.Q,Z31.Q}, p8/Z, [x0, x0, LSL #4] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7/Z, [x0, x0, LSL #2] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x31, x0, LSL #4] +ld4q {Z0.Q, Z1.Q, Z2.D, Z3.Q}, p0/Z, [x1, x30, LSL #4] +ld4q {Z2.Q, Z29.Q, Z30.Q, Z31.Q}, p7/Z, [x30, x30, LSL #4] + +st1q Z0.Q , P0, [Z0.D, x0] +st1q { Z0.Q }, P8, [Z0.D, x0] +st1q { Z0.Q }, P0, [Z31.Q, x0] +st1q { Z0.Q }, P0, [Z0.D, x31] +st1q { Z31.D }, P7, [Z31.D, x30] +st1q Z0.Q , P0, [Z0.D, sp] +st1q Z0.Q , P0, [Z0.S, x15] +st1q Z0.Q , P0, [Z0.D, w10] + +st2q {Z0.Q, Z2.Q}, p0, [x0, #-2, MUL VL] +st2q {Z31.Q, Z31.Q}, p0, [x0, #-2, MUL VL] +st2q {Z0.Q, Z1.Q}, p8, [x0, #-2, MUL VL] +st2q {Z0.Q, Z1.Q}, p0, [x31, #-2, MUL VL] +st2q {Z30.Q, Z31.Q}, p7, [x30, #-3, MUL VL] +st2q {Z0.Q, Z1.Q}, p0, [x31, #-20, MUL VL] +st2q {Z0.Q, Z1.Q}, p0, [xzr, #-20, MUL VL] + +st3q {Z0.Q, Z1.Q, Z3.Q}, p0, [x0, #-3, MUL VL] +st3q {Z29.Q, Z30.Q, Z31.Q}, p8, [x0, #-3, MUL VL] +st3q {Z0.Q, Z1.Q, Z2.Q}, p7, [x0, #-2, MUL VL] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x31, #-3, MUL VL] +st3q {Z29.Q, Z30.Q, Z31.D}, p7, [x30, #-3, MUL VL] +st3q {Z29.Q, Z30.Q, Z31.D}, p7, [x30, #-30, MUL VL] +st3q {Z29.Q, Z30.Q, Z31.D}, p7, [xzr, #-30, MUL VL] + +st4q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, #-4, MUL VL] +st4q {Z28.Q, Z29.Q, Z30.Q,Z31.Q}, p9, [x0, #-4, MUL VL] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7, [x0, #-3, MUL VL] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x31, #-4, MUL VL] +st4q {Z28.Q, Z29.Q, Z30.D, Z31.Q}, p7, [x30, #-4, MUL VL] +st4q {Z28.Q, Z29.Q, Z30.D, Z31.Q}, p7, [x30, #-100, MUL VL] +st4q {Z28.Q, Z29.Q, Z30.D, Z31.Q}, p7, [xzr, #-100, MUL VL] + +st2q {Z0.Q, Z1.Q}, p0, [x0, x0, LSL #3] +st2q {Z0.Q, Z1.Q}, p0, [sp, x0, LSL #3] +st2q {Z0.Q, Z1.Q}, p0, [x0, sp, LSL #3] +st2q {Z31.Q, Z31.Q}, p0, [x0, x0, LSL #4] +st2q {Z0.Q, Z1.Q}, p8, [x0, x0, LSL #4] +st2q {Z0.Q, Z1.Q}, p0, [x31, x0, LSL #4] +st2q {Z0.Q, Z1.Q}, p0, [x0, x31, LSL #4] +st2q {Z30.Q, Z31.Q}, p7, [x31, x31, LSL #4] + +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, x0, #4] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [sp, x0, #4] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, sp, #4] +st3q {Z29.Q, Z30.Q, Z31.Q}, p0, [x0, x0, LSL #2] +st3q {Z0.Q, Z1.Q, Z2.Q}, p7, [x0, x0, LSL #4] +st3q {Z0.Q, Z1.Q, Z2.Q}, p8, [x30, x0, LSL #4] +st3q {Z4.Q, Z1.Q, Z2.Q}, p0, [x31, x30, LSL #4] +st3q {Z29.D, Z30.Q, Z31.Q}, p7, [x31, x30, LSL #4] + +st4q {Z1.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, x0, LSL #4] +st4q {Z1.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [sp, x0, LSL #4] +st4q {Z1.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, sp, LSL #4] +st4q {Z30.Q, Z29.Q, Z30.Q,Z31.Q}, p8, [x0, x0, LSL #4] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7, [x0, x0, LSL #2] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x31, x0, LSL #4] +st4q {Z0.Q, Z1.Q, Z2.D, Z3.Q}, p0, [x1, x30, LSL #4] +st4q {Z2.Q, Z29.Q, Z30.Q, Z31.Q}, p7, [x30, x30, LSL #4] diff --git a/gas/testsuite/gas/aarch64/sve2p1-4.d b/gas/testsuite/gas/aarch64/sve2p1-4.d new file mode 100644 index 00000000000..e166b2d8240 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-4.d @@ -0,0 +1,144 @@ +#name: Test of SVE2.1 ld[1-4]q/st[1-4]q instructions. +#as: -march=armv9.4-a +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: c400a000 ld1q {z0.q}, p0/z, \[z0.d, x0\] +.*: c400a01f ld1q {z31.q}, p0/z, \[z0.d, x0\] +.*: c400bc00 ld1q {z0.q}, p7/z, \[z0.d, x0\] +.*: c400a3e0 ld1q {z0.q}, p0/z, \[z31.d, x0\] +.*: c41ea000 ld1q {z0.q}, p0/z, \[z0.d, x30\] +.*: c41fa000 ld1q {z0.q}, p0/z, \[z0.d, xzr\] +.*: c41ebfff ld1q {z31.q}, p7/z, \[z31.d, x30\] +.*: c404acef ld1q {z15.q}, p3/z, \[z7.d, x4\] +.*: a490e000 ld2q {z0.q-z1.q}, p0/z, \[x0\] +.*: a490e01f ld2q {z31.q-z0.q}, p0/z, \[x0\] +.*: a490fc00 ld2q {z0.q-z1.q}, p7/z, \[x0\] +.*: a490e3c0 ld2q {z0.q-z1.q}, p0/z, \[x30\] +.*: a498e000 ld2q {z0.q-z1.q}, p0/z, \[x0, #-16, mul vl\] +.*: a497e000 ld2q {z0.q-z1.q}, p0/z, \[x0, #14, mul vl\] +.*: a498ffdf ld2q {z31.q-z0.q}, p7/z, \[x30, #-16, mul vl\] +.*: a49be7e1 ld2q {z1.q-z2.q}, p1/z, \[sp, #-10, mul vl\] +.*: a49fe47e ld2q {z30.q-z31.q}, p1/z, \[x3, #-2, mul vl\] +.*: a510e000 ld3q {z0.q-z2.q}, p0/z, \[x0\] +.*: a510e01f ld3q {z31.q-z1.q}, p0/z, \[x0\] +.*: a510fc00 ld3q {z0.q-z2.q}, p7/z, \[x0\] +.*: a510e3c0 ld3q {z0.q-z2.q}, p0/z, \[x30\] +.*: a518e000 ld3q {z0.q-z2.q}, p0/z, \[x0, #-24, mul vl\] +.*: a517e000 ld3q {z0.q-z2.q}, p0/z, \[x0, #21, mul vl\] +.*: a518ffdf ld3q {z31.q-z1.q}, p7/z, \[x30, #-24, mul vl\] +.*: a51fffdd ld3q {z29.q-z31.q}, p7/z, \[x30, #-3, mul vl\] +.*: a51fffdd ld3q {z29.q-z31.q}, p7/z, \[x30, #-3, mul vl\] +.*: a51ce7e1 ld3q {z1.q-z3.q}, p1/z, \[sp, #-12, mul vl\] +.*: a51fffdd ld3q {z29.q-z31.q}, p7/z, \[x30, #-3, mul vl\] +.*: a590e000 ld4q {z0.q-z3.q}, p0/z, \[x0\] +.*: a590e01f ld4q {z31.q-z2.q}, p0/z, \[x0\] +.*: a590fc00 ld4q {z0.q-z3.q}, p7/z, \[x0\] +.*: a590e3c0 ld4q {z0.q-z3.q}, p0/z, \[x30\] +.*: a598e000 ld4q {z0.q-z3.q}, p0/z, \[x0, #-32, mul vl\] +.*: a597e000 ld4q {z0.q-z3.q}, p0/z, \[x0, #28, mul vl\] +.*: a598ffdf ld4q {z31.q-z2.q}, p7/z, \[x30, #-32, mul vl\] +.*: a59fffdc ld4q {z28.q-z31.q}, p7/z, \[x30, #-4, mul vl\] +.*: a59fffdc ld4q {z28.q-z31.q}, p7/z, \[x30, #-4, mul vl\] +.*: a59cf3e1 ld4q {z1.q-z4.q}, p4/z, \[sp, #-16, mul vl\] +.*: a59fffdc ld4q {z28.q-z31.q}, p7/z, \[x30, #-4, mul vl\] +.*: a4a08000 ld2q {z0.q-z1.q}, p0/z, \[x0, x0, lsl #4\] +.*: a4a0801f ld2q {z31.q-z0.q}, p0/z, \[x0, x0, lsl #4\] +.*: a4a09c00 ld2q {z0.q-z1.q}, p7/z, \[x0, x0, lsl #4\] +.*: a4a083c0 ld2q {z0.q-z1.q}, p0/z, \[x30, x0, lsl #4\] +.*: a4be8000 ld2q {z0.q-z1.q}, p0/z, \[x0, x30, lsl #4\] +.*: a4be9fdf ld2q {z31.q-z0.q}, p7/z, \[x30, x30, lsl #4\] +.*: a4b4914f ld2q {z15.q-z16.q}, p4/z, \[x10, x20, lsl #4\] +.*: a4b48ff4 ld2q {z20.q-z21.q}, p3/z, \[sp, x20, lsl #4\] +.*: a5208000 ld3q {z0.q-z2.q}, p0/z, \[x0, x0, lsl #4\] +.*: a520801f ld3q {z31.q-z1.q}, p0/z, \[x0, x0, lsl #4\] +.*: a5209c00 ld3q {z0.q-z2.q}, p7/z, \[x0, x0, lsl #4\] +.*: a52083c0 ld3q {z0.q-z2.q}, p0/z, \[x30, x0, lsl #4\] +.*: a53e8000 ld3q {z0.q-z2.q}, p0/z, \[x0, x30, lsl #4\] +.*: a53e9fdf ld3q {z31.q-z1.q}, p7/z, \[x30, x30, lsl #4\] +.*: a534894a ld3q {z10.q-z12.q}, p2/z, \[x10, x20, lsl #4\] +.*: a534894a ld3q {z10.q-z12.q}, p2/z, \[x10, x20, lsl #4\] +.*: a534894a ld3q {z10.q-z12.q}, p2/z, \[x10, x20, lsl #4\] +.*: a53497ef ld3q {z15.q-z17.q}, p5/z, \[sp, x20, lsl #4\] +.*: a5a08000 ld4q {z0.q-z3.q}, p0/z, \[x0, x0, lsl #4\] +.*: a5a0801f ld4q {z31.q-z2.q}, p0/z, \[x0, x0, lsl #4\] +.*: a5a09c00 ld4q {z0.q-z3.q}, p7/z, \[x0, x0, lsl #4\] +.*: a5a083c0 ld4q {z0.q-z3.q}, p0/z, \[x30, x0, lsl #4\] +.*: a5be8000 ld4q {z0.q-z3.q}, p0/z, \[x0, x30, lsl #4\] +.*: a5be9fdf ld4q {z31.q-z2.q}, p7/z, \[x30, x30, lsl #4\] +.*: a5a4886a ld4q {z10.q-z13.q}, p2/z, \[x3, x4, lsl #4\] +.*: a5a4886a ld4q {z10.q-z13.q}, p2/z, \[x3, x4, lsl #4\] +.*: a5a4886a ld4q {z10.q-z13.q}, p2/z, \[x3, x4, lsl #4\] +.*: a5a48bea ld4q {z10.q-z13.q}, p2/z, \[sp, x4, lsl #4\] +.*: e4202000 st1q {z0.q}, p0, \[z0.d, x0\] +.*: e420201f st1q {z31.q}, p0, \[z0.d, x0\] +.*: e4203c00 st1q {z0.q}, p7, \[z0.d, x0\] +.*: e42023e0 st1q {z0.q}, p0, \[z31.d, x0\] +.*: e43e2000 st1q {z0.q}, p0, \[z0.d, x30\] +.*: e43f2000 st1q {z0.q}, p0, \[z0.d, xzr\] +.*: e43e3fff st1q {z31.q}, p7, \[z31.d, x30\] +.*: e4242cef st1q {z15.q}, p3, \[z7.d, x4\] +.*: e4400000 st2q {z0.q-z1.q}, p0, \[x0\] +.*: e440001f st2q {z31.q-z0.q}, p0, \[x0\] +.*: e4401c00 st2q {z0.q-z1.q}, p7, \[x0\] +.*: e44003c0 st2q {z0.q-z1.q}, p0, \[x30\] +.*: e4480000 st2q {z0.q-z1.q}, p0, \[x0, #-16, mul vl\] +.*: e4470000 st2q {z0.q-z1.q}, p0, \[x0, #14, mul vl\] +.*: e4481fdf st2q {z31.q-z0.q}, p7, \[x30, #-16, mul vl\] +.*: e44b07e1 st2q {z1.q-z2.q}, p1, \[sp, #-10, mul vl\] +.*: e44f047e st2q {z30.q-z31.q}, p1, \[x3, #-2, mul vl\] +.*: e4800000 st3q {z0.q-z2.q}, p0, \[x0\] +.*: e480001f st3q {z31.q-z1.q}, p0, \[x0\] +.*: e4801c00 st3q {z0.q-z2.q}, p7, \[x0\] +.*: e48003c0 st3q {z0.q-z2.q}, p0, \[x30\] +.*: e4880000 st3q {z0.q-z2.q}, p0, \[x0, #-24, mul vl\] +.*: e4870000 st3q {z0.q-z2.q}, p0, \[x0, #21, mul vl\] +.*: e4881fdf st3q {z31.q-z1.q}, p7, \[x30, #-24, mul vl\] +.*: e48f1fdd st3q {z29.q-z31.q}, p7, \[x30, #-3, mul vl\] +.*: e48f1fdd st3q {z29.q-z31.q}, p7, \[x30, #-3, mul vl\] +.*: e48c07e1 st3q {z1.q-z3.q}, p1, \[sp, #-12, mul vl\] +.*: e48f1fdd st3q {z29.q-z31.q}, p7, \[x30, #-3, mul vl\] +.*: e4c00000 st4q {z0.q-z3.q}, p0, \[x0\] +.*: e4c0001f st4q {z31.q-z2.q}, p0, \[x0\] +.*: e4c01c00 st4q {z0.q-z3.q}, p7, \[x0\] +.*: e4c003c0 st4q {z0.q-z3.q}, p0, \[x30\] +.*: e4c80000 st4q {z0.q-z3.q}, p0, \[x0, #-32, mul vl\] +.*: e4c70000 st4q {z0.q-z3.q}, p0, \[x0, #28, mul vl\] +.*: e4c81fdf st4q {z31.q-z2.q}, p7, \[x30, #-32, mul vl\] +.*: e4cf1fdc st4q {z28.q-z31.q}, p7, \[x30, #-4, mul vl\] +.*: e4cf1fdc st4q {z28.q-z31.q}, p7, \[x30, #-4, mul vl\] +.*: e4cc13e1 st4q {z1.q-z4.q}, p4, \[sp, #-16, mul vl\] +.*: e4cf1fdc st4q {z28.q-z31.q}, p7, \[x30, #-4, mul vl\] +.*: e4600000 st2q {z0.q-z1.q}, p0, \[x0, x0, lsl #4\] +.*: e460001f st2q {z31.q-z0.q}, p0, \[x0, x0, lsl #4\] +.*: e4601c00 st2q {z0.q-z1.q}, p7, \[x0, x0, lsl #4\] +.*: e46003c0 st2q {z0.q-z1.q}, p0, \[x30, x0, lsl #4\] +.*: e47e0000 st2q {z0.q-z1.q}, p0, \[x0, x30, lsl #4\] +.*: e47e1fdf st2q {z31.q-z0.q}, p7, \[x30, x30, lsl #4\] +.*: e474114f st2q {z15.q-z16.q}, p4, \[x10, x20, lsl #4\] +.*: e4740ff4 st2q {z20.q-z21.q}, p3, \[sp, x20, lsl #4\] +.*: e4a00000 st3q {z0.q-z2.q}, p0, \[x0, x0, lsl #4\] +.*: e4a0001f st3q {z31.q-z1.q}, p0, \[x0, x0, lsl #4\] +.*: e4a01c00 st3q {z0.q-z2.q}, p7, \[x0, x0, lsl #4\] +.*: e4a003c0 st3q {z0.q-z2.q}, p0, \[x30, x0, lsl #4\] +.*: e4be0000 st3q {z0.q-z2.q}, p0, \[x0, x30, lsl #4\] +.*: e4be1fdf st3q {z31.q-z1.q}, p7, \[x30, x30, lsl #4\] +.*: e4b4094a st3q {z10.q-z12.q}, p2, \[x10, x20, lsl #4\] +.*: e4b4094a st3q {z10.q-z12.q}, p2, \[x10, x20, lsl #4\] +.*: e4b4094a st3q {z10.q-z12.q}, p2, \[x10, x20, lsl #4\] +.*: e4b417ef st3q {z15.q-z17.q}, p5, \[sp, x20, lsl #4\] +.*: e4e00000 st4q {z0.q-z3.q}, p0, \[x0, x0, lsl #4\] +.*: e4e0001f st4q {z31.q-z2.q}, p0, \[x0, x0, lsl #4\] +.*: e4e01c00 st4q {z0.q-z3.q}, p7, \[x0, x0, lsl #4\] +.*: e4e003c0 st4q {z0.q-z3.q}, p0, \[x30, x0, lsl #4\] +.*: e4fe0000 st4q {z0.q-z3.q}, p0, \[x0, x30, lsl #4\] +.*: e4fe1fdf st4q {z31.q-z2.q}, p7, \[x30, x30, lsl #4\] +.*: e4e4086a st4q {z10.q-z13.q}, p2, \[x3, x4, lsl #4\] +.*: e4e4086a st4q {z10.q-z13.q}, p2, \[x3, x4, lsl #4\] +.*: e4e4086a st4q {z10.q-z13.q}, p2, \[x3, x4, lsl #4\] +.*: e4e40bea st4q {z10.q-z13.q}, p2, \[sp, x4, lsl #4\] diff --git a/gas/testsuite/gas/aarch64/sve2p1-4.s b/gas/testsuite/gas/aarch64/sve2p1-4.s new file mode 100644 index 00000000000..000544625e9 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-4.s @@ -0,0 +1,147 @@ +ld1q { Z0.Q }, P0/Z, [Z0.D, x0] +ld1q { Z31.Q }, P0/Z, [Z0.D, x0] +ld1q { Z0.Q }, P7/Z, [Z0.D, x0] +ld1q { Z0.Q }, P0/Z, [Z31.D, x0] +ld1q { Z0.Q }, P0/Z, [Z0.D, x30] +ld1q { Z0.Q }, P0/Z, [Z0.D, xzr] +ld1q { Z31.Q }, P7/Z, [Z31.D, x30] +ld1q { Z15.Q }, P3/Z, [Z7.D, x4] + +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, #0, MUL VL] +ld2q {Z31.Q, Z0.Q}, p0/Z, [x0, #0, MUL VL] +ld2q {Z0.Q, Z1.Q}, p7/Z, [x0, #0, MUL VL] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x30, #0, MUL VL] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, #-16, MUL VL] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, #14, MUL VL] +ld2q {Z31.Q, Z0.Q}, p7/Z, [x30, #-16, MUL VL] +ld2q {Z1.Q, Z2.Q}, p1/Z, [sp, #-10, MUL VL] +ld2q {Z30.Q, Z31.Q}, p1/Z, [x3, #-2, MUL VL] + +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, #0, MUL VL] +ld3q {Z31.Q, Z0.Q, Z1.Q}, p0/Z, [x0, #0, MUL VL] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p7/Z, [x0, #0, MUL VL] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x30, #0, MUL VL] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, #-24, MUL VL] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, #21, MUL VL] +ld3q {Z31.Q, Z0.Q, Z1.Q}, p7/Z, [x30, #-24, MUL VL] +ld3q {Z29.Q, Z30.Q, Z31.Q}, p7/Z, [x30, #-3, MUL VL] +ld3q {Z29.Q - Z30.Q - Z31.Q}, p7/Z, [x30, #-3, MUL VL] +ld3q {Z1.Q, Z2.Q, z3.Q}, p1/Z, [sp, #-12, MUL VL] +ld3q {Z29.Q - Z31.Q}, p7/Z, [x30, #-3, MUL VL] + +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, #0, MUL VL] +ld4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, #0, MUL VL] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7/Z, [x0, #0, MUL VL] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x30, #0, MUL VL] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, #-32, MUL VL] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, #28, MUL VL] +ld4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p7/Z, [x30, #-32, MUL VL] +ld4q {Z28.Q, Z29.Q, Z30.Q, Z31.Q}, p7/Z, [x30, #-4, MUL VL] +ld4q {Z28.Q - Z29.Q - Z30.Q - Z31.Q}, p7/Z, [x30, #-4, MUL VL] +ld4q {Z1.Q, Z2.Q, z3.Q, Z4.Q}, p4/Z, [sp, #-16, MUL VL] +ld4q {Z28.Q - Z31.Q}, p7/Z, [x30, #-4, MUL VL] + +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, x0, LSL #4] +ld2q {Z31.Q, Z0.Q}, p0/Z, [x0, x0, LSL #4] +ld2q {Z0.Q, Z1.Q}, p7/Z, [x0, x0, LSL #4] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x30, x0, LSL #4] +ld2q {Z0.Q, Z1.Q}, p0/Z, [x0, x30, LSL #4] +ld2q {Z31.Q, Z0.Q}, p7/Z, [x30, x30, LSL #4] +ld2q {Z15.Q, Z16.Q}, p4/Z, [x10, x20, LSL #4] +ld2q {Z20.Q, Z21.Q}, p3/Z, [sp, x20, LSL #4] + +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, x0, LSL #4] +ld3q {Z31.Q, Z0.Q, Z1.Q}, p0/Z, [x0, x0, LSL #4] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p7/Z, [x0, x0, LSL #4] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x30, x0, LSL #4] +ld3q {Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, x30, LSL #4] +ld3q {Z31.Q, Z0.Q, Z1.Q}, p7/Z, [x30, x30, LSL #4] +ld3q {Z10.Q, Z11.Q, Z12.Q}, p2/Z, [x10, x20, LSL #4] +ld3q {Z10.Q - Z11.Q - Z12.Q}, p2/Z, [x10, x20, LSL #4] +ld3q {Z10.Q - Z12.Q}, p2/Z, [x10, x20, LSL #4] +ld3q {Z15.Q - Z17.Q}, p5/Z, [sp, x20, LSL #4] + +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, x0, LSL #4] +ld4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p0/Z, [x0, x0, LSL #4] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7/Z, [x0, x0, LSL #4] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x30, x0, LSL #4] +ld4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0/Z, [x0, x30, LSL #4] +ld4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p7/Z, [x30, x30, LSL #4] +ld4q {Z10.Q, Z11.Q, Z12.Q, Z13.Q}, p2/Z, [x3, x4, LSL #4] +ld4q {Z10.Q - Z11.Q - Z12.Q - Z13.Q}, p2/Z, [x3, x4, LSL #4] +ld4q {Z10.Q - Z13.Q}, p2/Z, [x3, x4, LSL #4] +ld4q {Z10.Q, Z11.Q, Z12.Q, Z13.Q}, p2/Z, [sp, x4, LSL #4] + +st1q { Z0.Q }, P0, [Z0.D, x0] +st1q { Z31.Q }, P0, [Z0.D, x0] +st1q { Z0.Q }, P7, [Z0.D, x0] +st1q { Z0.Q }, P0, [Z31.D, x0] +st1q { Z0.Q }, P0, [Z0.D, x30] +st1q { Z0.Q }, P0, [Z0.D, xzr] +st1q { Z31.Q }, P7, [Z31.D, x30] +st1q { Z15.Q }, P3, [Z7.D, x4] + +st2q {Z0.Q, Z1.Q}, p0, [x0, #0, MUL VL] +st2q {Z31.Q, Z0.Q}, p0, [x0, #0, MUL VL] +st2q {Z0.Q, Z1.Q}, p7, [x0, #0, MUL VL] +st2q {Z0.Q, Z1.Q}, p0, [x30, #0, MUL VL] +st2q {Z0.Q, Z1.Q}, p0, [x0, #-16, MUL VL] +st2q {Z0.Q, Z1.Q}, p0, [x0, #14, MUL VL] +st2q {Z31.Q, Z0.Q}, p7, [x30, #-16, MUL VL] +st2q {Z1.Q, Z2.Q}, p1, [sp, #-10, MUL VL] +st2q {Z30.Q, Z31.Q}, p1, [x3, #-2, MUL VL] + +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, #0, MUL VL] +st3q {Z31.Q, Z0.Q, Z1.Q}, p0, [x0, #0, MUL VL] +st3q {Z0.Q, Z1.Q, Z2.Q}, p7, [x0, #0, MUL VL] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x30, #0, MUL VL] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, #-24, MUL VL] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, #21, MUL VL] +st3q {Z31.Q, Z0.Q, Z1.Q}, p7, [x30, #-24, MUL VL] +st3q {Z29.Q, Z30.Q, Z31.Q}, p7, [x30, #-3, MUL VL] +st3q {Z29.Q - Z30.Q - Z31.Q}, p7, [x30, #-3, MUL VL] +st3q {Z1.Q, Z2.Q, z3.Q}, p1, [sp, #-12, MUL VL] +st3q {Z29.Q - Z31.Q}, p7, [x30, #-3, MUL VL] + +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, #0, MUL VL] +st4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p0, [x0, #0, MUL VL] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7, [x0, #0, MUL VL] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x30, #0, MUL VL] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, #-32, MUL VL] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, #28, MUL VL] +st4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p7, [x30, #-32, MUL VL] +st4q {Z28.Q, Z29.Q, Z30.Q, Z31.Q}, p7, [x30, #-4, MUL VL] +st4q {Z28.Q - Z29.Q - Z30.Q - Z31.Q}, p7, [x30, #-4, MUL VL] +st4q {Z1.Q, Z2.Q, z3.Q, Z4.Q}, p4, [sp, #-16, MUL VL] +st4q {Z28.Q - Z31.Q}, p7, [x30, #-4, MUL VL] + +st2q {Z0.Q, Z1.Q}, p0, [x0, x0, LSL #4] +st2q {Z31.Q, Z0.Q}, p0, [x0, x0, LSL #4] +st2q {Z0.Q, Z1.Q}, p7, [x0, x0, LSL #4] +st2q {Z0.Q, Z1.Q}, p0, [x30, x0, LSL #4] +st2q {Z0.Q, Z1.Q}, p0, [x0, x30, LSL #4] +st2q {Z31.Q, Z0.Q}, p7, [x30, x30, LSL #4] +st2q {Z15.Q, Z16.Q}, p4, [x10, x20, LSL #4] +st2q {Z20.Q, Z21.Q}, p3, [sp, x20, LSL #4] + +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, x0, LSL #4] +st3q {Z31.Q, Z0.Q, Z1.Q}, p0, [x0, x0, LSL #4] +st3q {Z0.Q, Z1.Q, Z2.Q}, p7, [x0, x0, LSL #4] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x30, x0, LSL #4] +st3q {Z0.Q, Z1.Q, Z2.Q}, p0, [x0, x30, LSL #4] +st3q {Z31.Q, Z0.Q, Z1.Q}, p7, [x30, x30, LSL #4] +st3q {Z10.Q, Z11.Q, Z12.Q}, p2, [x10, x20, LSL #4] +st3q {Z10.Q - Z11.Q - Z12.Q}, p2, [x10, x20, LSL #4] +st3q {Z10.Q - Z12.Q}, p2, [x10, x20, LSL #4] +st3q {Z15.Q - Z17.Q}, p5, [sp, x20, LSL #4] + +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, x0, LSL #4] +st4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p0, [x0, x0, LSL #4] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p7, [x0, x0, LSL #4] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x30, x0, LSL #4] +st4q {Z0.Q, Z1.Q, Z2.Q, Z3.Q}, p0, [x0, x30, LSL #4] +st4q {Z31.Q, Z0.Q, Z1.Q, Z2.Q}, p7, [x30, x30, LSL #4] +st4q {Z10.Q, Z11.Q, Z12.Q, Z13.Q}, p2, [x3, x4, LSL #4] +st4q {Z10.Q - Z11.Q - Z12.Q - Z13.Q}, p2, [x3, x4, LSL #4] +st4q {Z10.Q - Z13.Q}, p2, [x3, x4, LSL #4] +st4q {Z10.Q, Z11.Q, Z12.Q, Z13.Q}, p2, [sp, x4, LSL #4] diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index f97a288d446..1196cde00b7 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -808,9 +808,6 @@ enum aarch64_opnd AARCH64_OPND_MOPS_WB_Rn, /* Rn!, in bits [5, 9]. */ AARCH64_OPND_CSSC_SIMM8, /* CSSC signed 8-bit immediate. */ AARCH64_OPND_CSSC_UIMM8, /* CSSC unsigned 8-bit immediate. */ - AARCH64_OPND_SME_Zt2, /* Qobule SVE vector register list. */ - AARCH64_OPND_SME_Zt3, /* Trible SVE vector register list. */ - AARCH64_OPND_SME_Zt4, /* Quad SVE vector register list. */ AARCH64_OPND_RCPC3_ADDR_OPT_POSTIND, /* []{, #}. */ AARCH64_OPND_RCPC3_ADDR_OPT_PREIND_WB, /* [] or [, #]!. */ AARCH64_OPND_RCPC3_ADDR_POSTIND, /* [], #. */ diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index c4dd4ff9f49..0bcfa78c1a8 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -1894,9 +1894,6 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, case AARCH64_OPND_SME_Zmx4: case AARCH64_OPND_SME_Znx2: case AARCH64_OPND_SME_Znx4: - case AARCH64_OPND_SME_Zt2: - case AARCH64_OPND_SME_Zt3: - case AARCH64_OPND_SME_Zt4: num = get_operand_specific_data (&aarch64_operands[type]); if (!check_reglist (opnd, mismatch_detail, idx, num, 1)) return 0; @@ -3704,10 +3701,7 @@ print_register_list (char *buf, size_t size, const aarch64_opnd_info *opnd, /* The hyphenated form is preferred for disassembly if there is more than one register in the list, and the register numbers are monotonically increasing in increments of one. */ - if (stride == 1 && num_regs > 1 - && ((opnd->type != AARCH64_OPND_SME_Zt2) - && (opnd->type != AARCH64_OPND_SME_Zt3) - && (opnd->type != AARCH64_OPND_SME_Zt4))) + if (stride == 1 && num_regs > 1) snprintf (buf, size, "{%s-%s}%s", style_reg (styler, "%s%d.%s", prefix, first_reg, qlf_name), style_reg (styler, "%s%d.%s", prefix, last_reg, qlf_name), tb); @@ -4166,9 +4160,6 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, case AARCH64_OPND_SME_Znx4: case AARCH64_OPND_SME_Ztx2_STRIDED: case AARCH64_OPND_SME_Ztx4_STRIDED: - case AARCH64_OPND_SME_Zt2: - case AARCH64_OPND_SME_Zt3: - case AARCH64_OPND_SME_Zt4: print_register_list (buf, size, opnd, "z", styler); break; diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index b6766e07e58..e9a39b3602a 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -1795,11 +1795,11 @@ { \ QLF3(S_S,P_Z,S_S), \ } -#define OP_SVE_SZS_QD \ +#define OP_SVE_QZD \ { \ QLF3(S_Q,P_Z,S_D), \ } -#define OP_SVE_SUS_QD \ +#define OP_SVE_QUD \ { \ QLF3(S_Q,NIL,S_D), \ } @@ -6480,21 +6480,23 @@ const struct aarch64_opcode aarch64_opcode_table[] = SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0), SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1), - SVE2p1_INSNC("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_Zt, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_SZS_QD, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt2, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("ld3q",0xa510e000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt3, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("ld4q",0xa590e000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt4, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("ld2q",0xa4a08000, 0xffe0e000, sve_misc, 0, OP3 (SME_Zt2, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("ld3q",0xa5208000, 0xffe0e000, sve_misc, 0, OP3 (SME_Zt3, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("ld4q",0xa5a08000, 0xffe0e000, sve_misc, 0, OP3 (SME_Zt4, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st1q",0xe4202000, 0xffe0e000, sve_misc, 0, OP3 (SVE_Zt, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_SUS_QD, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st2q",0xe4400000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt2, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QUU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st3q",0xe4800000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt3, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QUU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st4q",0xe4c00000, 0xfff0e000, sve_misc, 0, OP3 (SME_Zt4, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QUU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st2q",0xe4600000, 0xffe0e000, sve_misc, 0, OP3 (SME_Zt2, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st3q",0xe4a00000, 0xffe0e000, sve_misc, 0, OP3 (SME_Zt3, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, 0, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("st4q",0xe4e00000, 0xffe0e000, sve_misc, 0, OP3 (SME_Zt4, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, 0, C_SCAN_MOVPRFX, 0), + SVE2p1_INSN("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QZD, F_OD (1), 0), + SVE2p1_INSN("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, F_OD (2), 0), + SVE2p1_INSN("ld3q",0xa510e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QZU, F_OD (3), 0), + SVE2p1_INSN("ld4q",0xa590e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QZU, F_OD (4), 0), + SVE2p1_INSN("ld2q",0xa4a08000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, F_OD (2), 0), + SVE2p1_INSN("ld3q",0xa5208000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, F_OD (3), 0), + SVE2p1_INSN("ld4q",0xa5a08000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, F_OD (4), 0), + + SVE2p1_INSN("st1q",0xe4202000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QUD, F_OD (1), 0), + SVE2p1_INSN("st2q",0xe4400000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QUU, F_OD (2), 0), + SVE2p1_INSN("st3q",0xe4800000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x3xVL), OP_SVE_QUU, F_OD (3), 0), + SVE2p1_INSN("st4q",0xe4c00000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_QUU, F_OD (4), 0), + SVE2p1_INSN("st2q",0xe4600000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, F_OD (2), 0), + SVE2p1_INSN("st3q",0xe4a00000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, F_OD (3), 0), + SVE2p1_INSN("st4q",0xe4e00000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, F_OD (4), 0), + FP8_INSN("bf1cvtl", 0x2ea17800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2FP8B8H, 0), FP8_INSN("bf1cvtl2", 0x6ea17800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V28H16B, 0), FP8_INSN("bf2cvtl", 0x2ee17800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2FP8B8H, 0), @@ -7192,15 +7194,6 @@ const struct aarch64_opcode aarch64_opcode_table[] = "an 8-bit signed immediate") \ Y(IMMEDIATE, imm, "CSSC_UIMM8", 0, F(FLD_CSSC_imm8), \ "an 8-bit unsigned immediate") \ - X(SVE_REGLIST, ins_sve_reglist, ext_sve_reglist_zt, "SME_Zt2", \ - 2 << OPD_F_OD_LSB, F(FLD_SVE_Zt), \ - "a list of 2 SVE vector registers") \ - X(SVE_REGLIST, ins_sve_reglist, ext_sve_reglist_zt, "SME_Zt3", \ - 3 << OPD_F_OD_LSB, F(FLD_SVE_Zt), \ - "a list of 3 SVE vector registers") \ - X(SVE_REGLIST, ins_sve_reglist, ext_sve_reglist_zt, "SME_Zt4", \ - 4 << OPD_F_OD_LSB, F(FLD_SVE_Zt), \ - "a list of 4 SVE vector registers") \ X(ADDRESS, ins_rcpc3_addr_opt_offset, ext_rcpc3_addr_opt_offset, \ "RCPC3_ADDR_OPT_POSTIND", 0, F(FLD_opc2), \ "an address with post-incrementing by ammount of loaded bytes") \ From patchwork Wed May 22 10:04:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90667 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D86C7386546B for ; Wed, 22 May 2024 10:06:01 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2069.outbound.protection.outlook.com [40.107.22.69]) by sourceware.org (Postfix) with ESMTPS id ADBC2384F4B9 for ; Wed, 22 May 2024 10:05:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ADBC2384F4B9 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org ADBC2384F4B9 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.22.69 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372317; cv=pass; b=LfOYyu07yTChJ/FLeDbNuEF/E8c8lHz/OV35XKNG95ZDbiBAFeyTr4+VkjqVUFrWB7QmVPGshcvlCXyT7pCe4ulyLDt9kNXC6rUtZs0u5Y21va0rxVTT/LAUJSKuQMhGnZK+E0un6RjkP5rjPCmJxNmsu33ye9+j4V0+NC2xr/c= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372317; c=relaxed/simple; bh=KX9MGRZeSw6BFrmrvuDvFSkMYS4TSnuhnNqDmWCEj1Y=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=gObLzv0EGGdCKHUZtzwOeWjDC7yEBdqvotO2Hi7dIeU+/2iK0iNIPCkVOzq1NvxfxBMMjZkUukHUCwIE2aJMs4bptbcjCd/uu86sOXp/j2ohgpYFj4L3ErDQxRgO6F3lYw0YNa84AjIEGHTiCI/QYL03uvDkjpNLlmun1nbA2rg= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=XkraCSKO85BcSkcQjK9+L4ZcTFFnf8tNwidY715ddBiFQRDjKYgIdm76vgRaWqmHB7432tnNJTM0JX+34WG7H9W9RmqHs7nbcTDxgq1G0Wi9FGBiIMa8hiXfCx0/8S5YzSblY7KMn1Dz+f1OnsOmAwcxKOGG2Y2eWhby+fnky8GjnwK+p3CjrpMinWoRImWu+CMZ2qsU3FgY/dcTdnl8Pk85Huu6b/vcM+r4to6zE3P4WtKxlCXO/NjJM1rc5NjmFq02EYYGZ/q6xhRQ/gkZrQG2I8lZHtl/Tvs8Z1OQwCuvrq9G7OkXI/LWKnUMedA43/HItmVWvbYro0x3uSVaRQ== ARC-Message-Signature: i=2; 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=ecy+aZV0GYAmeyJXrHgNL586t+MMCxbyHGo1vHroMGY=; b=Vj8XOGGQo2VImRmn9NJn8fe/yDAWuHn9j4P38Elo5l6SEw7LrWxq0M94SGjAobBiElljpa9LYLau/BwG5YKNWKIaRhxFjkOShZt4HUubPNd4sdOzHF4TQM8SziUdgzgJp2iaBziGXL3nWnVbA/JW40kPTagssGLTKqHvnKIc/VleINdgKInxdN85dNIhaqOmTncIXLF0cKhz9KBlTTsEWcwEvyalrcf1SFbF84D0nsUEFlzQFY2Z1KnUClake0N7iE4Zoy0IOccEX2hhXn1zMMnRryj9e9+t5O7Pnn0UiOoeZnUQUV7PfMkFo2QTPuxskwk5Vd9nf9vo9xPsOMWnLA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ecy+aZV0GYAmeyJXrHgNL586t+MMCxbyHGo1vHroMGY=; b=p/sFS++WMX81vRQf26gyTnA/s3ExFD0XH0WQtGbN9ZVMao6AmhqGyb8OauDXeYrOpPkszhW3uWlhu3Wix6CAaqi04tCIU9xRbXjBQqDG7Sf+Ijs0Ou1Mbiq2mlTQllUgKv/AwpZeEetUbMtxzNfhxwkVXV1bMSdiRKtttxHkan0= Received: from AS4P250CA0004.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::12) by GV2PR08MB9398.eurprd08.prod.outlook.com (2603:10a6:150:df::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:05:07 +0000 Received: from AM2PEPF0001C70A.eurprd05.prod.outlook.com (2603:10a6:20b:5df:cafe::92) by AS4P250CA0004.outlook.office365.com (2603:10a6:20b:5df::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36 via Frontend Transport; Wed, 22 May 2024 10:05:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM2PEPF0001C70A.mail.protection.outlook.com (10.167.16.198) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:07 +0000 Received: ("Tessian outbound 83249f0f5576:v327"); Wed, 22 May 2024 10:05:07 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c7317e29e5159daf X-CR-MTA-TID: 64aa7808 Received: from ac56744396d5.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1DF652C1-F71B-4D7E-9B1E-C24FC2EF63A1.1; Wed, 22 May 2024 10:05:01 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ac56744396d5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:05:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=npWZNYqIbdXS7X9aivtQRQrvKKqCV/VRxb5zq0WP8dFNL3OEY+vBSTGf64kPaztcLTOKRHblN4aLn1dSMswZE5g0ZH2wrXh65tTdMvx8NUqYm2gKhnb2nEhiT+upfbGuTaSHhvN3rhWtTqjfuVb6gNe5DOR5nyBQDAbcF1O2RBH3EPE7go19+cb2LZBKqLGgdd6C5+kabyDe6wezDvdg4aubGDPROopGJb0qQ6u4k6dvSerTNEl9tG/CmnEx6AY5SZVscvI7QbyilvsCn+ncp/MbwQw7Hq6BOl4ui8+RpJHPnLEl0clw1pn1Z97nIKusvJsHdIw9f0dvVc9zbva22Q== 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=ecy+aZV0GYAmeyJXrHgNL586t+MMCxbyHGo1vHroMGY=; b=kOA/Gcmf2E+WBH3mVw+Av75fr9a0D9XjQfJN59O6suEB1plmpVJKyTaxPl74SSWwTnxbj16HSSD6kPlTO4RhyXeeQ+wWBLbVpDDW6t9/yO9bKk6nb/SlvJ83n02Y9aMQ4yOsMTDAGn7sdK2IlzWcSFBH7/bj5AfZh/DADgoep8VLOrlOh6bD8RdZzCYUjOMmu/T6BdSaUNV20aAGyH2ilrtL5b4RF+Wk6k+YRWRxKr+9eYJEz5sUQZnrwg8ecWtXgN2AM7OryBeWun4GbSwcTyC/By3XbExdJKP2n5C1xyp8E/vNCAcNIoBmTBPfmebV0Bjhv6bBOGQrNzbJfbwgUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ecy+aZV0GYAmeyJXrHgNL586t+MMCxbyHGo1vHroMGY=; b=p/sFS++WMX81vRQf26gyTnA/s3ExFD0XH0WQtGbN9ZVMao6AmhqGyb8OauDXeYrOpPkszhW3uWlhu3Wix6CAaqi04tCIU9xRbXjBQqDG7Sf+Ijs0Ou1Mbiq2mlTQllUgKv/AwpZeEetUbMtxzNfhxwkVXV1bMSdiRKtttxHkan0= Received: from DU6P191CA0033.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53f::8) by VE1PR08MB5645.eurprd08.prod.outlook.com (2603:10a6:800:1a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 10:04:58 +0000 Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com (2603:10a6:10:53f:cafe::7f) by DU6P191CA0033.outlook.office365.com (2603:10a6:10:53f::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19 via Frontend Transport; Wed, 22 May 2024 10:04:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DB5PEPF00014B99.mail.protection.outlook.com (10.167.8.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:04:58 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:57 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:57 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:04:57 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH v1 5/7][BINUTILS] aarch64: Fix the wrong constraint used for sve2p1 instructions. Date: Wed, 22 May 2024 11:04:36 +0100 Message-ID: <20240522100439.1050296-9-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B99:EE_|VE1PR08MB5645:EE_|AM2PEPF0001C70A:EE_|GV2PR08MB9398:EE_ X-MS-Office365-Filtering-Correlation-Id: 6702ac13-9c45-48bc-51c6-08dc7a46a8dd X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|1800799015|36860700004|376005|82310400017; X-Microsoft-Antispam-Message-Info-Original: JGaLXRiFbd/NUsOdO6HzE3xIZSXRWDqoCvyNyWNwpXqCONzn7GRzHz18sMEP0DzFnva9W9z0z5yTBgNunHiqhX7Qcz4r/hGQ7yNU/s18LSDO9L3ds6GL9SvVaY5VlVYlAHZtskJAdNWSuZTN5HscQv3m6eVsV/LfplBWET+hF1UKtZgxhEwDFq6VPADEFBElk9pG8eeo5x8RnFGhKcDJUgV8hVAeF2ytW2OHLcUolHI5XN2WbV3LZ8dNFpmwKV6leBoF9q6UlaaZYbkMIikYXhT2u//xeuZOw3rOek+d7e8RpuFOD91D6MEB33H59TZkH4Y5yQx8Iwonp7lboCUL0utqcFsNIcSJHDAQFKxmrcv442g5upatsH74BssNhdZkCFZz2Umub+zA2h42TOrvaKL0KiZrDizRCDGlc7gsJE+6iHmR1FciRXTaTftPvWRkkiC/p6ePlkTGDqJ2td2osaHIL6P7GGH0D9kWrX0A5u27AyDkNJ6TW8bAQ2Qd0rTnJH10PA8YWGBUf/+4V4R9J9Jn+c7/xlMUvbdmPHhK35OiuSp/EDmJnh6uTt7ALNrvCCOZxTwLANmQdgZHwRsD9+zAsdFm7CUy7n8ys1yOSb3UyXEMReck+cuYCxjnqUhiqPvUEVJ4bEFJ02+rul9eQZ+SiDGHr1xF+RABbRuEzw7BZ/ujpGp2vXSqBeyYPrI0W6qlfW2IHRIwgRk2bvaD5lP4v43SUD2jVuUrxZZ8gmPrUERjykI1Iu4g1lj1M0FfkV/4gfUNrHOmkLxvtHq2ZLf9sBG5jspVAm0qTHw/lDN42zY3OA4Bvx9dchQfwCx04kefDc74xbcSz8PIFEFKIAfJ6wnzkEV9mmbdqOR3qK+qYJGUbzC9rFlU55wEzfuTqDJcrB9k0aoHG6dadBtiBwoYXa9UR/2+UTl6xqM1Kmx57comX2hN7dxlIkSIWmZfM9sFbGIM/VyaMYKmaNGalabX+FChn2lwM4zC9kFBcOOkot5G5ZADaryO4TbkqD2ihs26OKIzvswPinEacpA3XU6XuW5IUG6IoeNgUvweSoifdB4gNqcXGfDLH/Sb9jYtelQsETazu/fzTh+pdfdD02hNQ8bvVpN4HpHxz66hp1Xk3LH3sTTMgvOjS2s13KSIthNprWq7KavkdWBFqfJuIqC8aD1vpTBkai0f0j9gjbktJvjDED8IF0L5+XVP4kpLNEpcELjwRFuMVRJiXnSj3o4qDRvkgb8+ebRNCUP4esBSkYWmwf28FEuFJ8hvTO7/zBD5SCLECbAK6pPJKwwTe2cNSWcjYNAg8oNKI/Poh/vkIvRV/DKH5V29PLJCSN6kqpSVpQsR6ysXQRKDI/LzOCG4WKP82czgrqxc7bAfD7fwfck/XQXDArW4++/28RKM X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(1800799015)(36860700004)(376005)(82310400017); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5645 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C70A.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 6b575024-66af-442d-4279-08dc7a46a316 X-Microsoft-Antispam: BCL:0; ARA:13230031|36860700004|35042699013|376005|82310400017|1800799015; X-Microsoft-Antispam-Message-Info: =?utf-8?q?tMwMuJAwl7ivcsD0bY8j5PCW/jT5k7T?= =?utf-8?q?Sz5AV8ViZzgqrQRcOQnQgj/p09GS9QsEChwayYZa6k390tefX77sHDZg10lo+U+ZN?= =?utf-8?q?IXduAEQ2RXRZb+LMmAKuGT1ndAfOmq6Fk1J6yfQgHmX8xTrHrtFXOqf1SGFDMdjSM?= =?utf-8?q?aUjbFDHvL66EasWpEbQofDrwvSjeQJtO6B9Ae13n3fasmcQZV6wMcZnpcJN5qUGj1?= =?utf-8?q?cSPFRGCWLbBYUlopz1QJi3nAHH6Lr5Z169oyG92OqrZ9SnQ+c0sGmxm0nkHh0RXP5?= =?utf-8?q?n0lEdc+zhBzRmEJdQyp/oytZbm5BeK3N4MBmKisGpYxSwdct1pLlg3vjy2Z2dcGYA?= =?utf-8?q?P5eVF4xbqMEukxhUN4GZ34+sPnItoLDNvmNXrlpxumMxnv7owVHo+5PIADo7tAb8+?= =?utf-8?q?BAkU2wyHGSROoaacJH9d0hiE9z1Z146zer5F4YBAYfcfCa6WsMgy22Pz9WPMubkEm?= =?utf-8?q?cquCGXAG9hWDWheGHnqQqOW4N7LuYJhzNsLf65JSQMPaKOIpkIqRx8BGNn/ZLoQbo?= =?utf-8?q?5YObi1SoqmN0QENpnIAPuqbhOoH5Q0oJIoSvTkQUfCwrqD1B7ae1CANBTCgda3bWI?= =?utf-8?q?2V3jnQtu8v+AJwjCHV1v2wsADNgE/NvmlTrTRrdu4L8sTn7pNI55m1jldrX8PSF+p?= =?utf-8?q?qCTNQeu8Je0sip0A+5JW471q1S102XVcZ5bHseJLOwJJg4M/ry5ky1A730kCaDj9C?= =?utf-8?q?vp6rJJuyKaar03eO+oKDjUjoEy2z/WDkbTzMH4iZOmzhSQjivePDETcbONuZyZ5+e?= =?utf-8?q?xMNi/Ic1AUVfpu3RbZY+Pw4JN/+yB5jJaJH/IxC7YhHbt7XQWMBPlAwkDVLQ6v9OB?= =?utf-8?q?otL+kl+HwKwbgXy9z6ACwii2z8S5RHBbobhiqiwWSpquKHs4MVldTnbFu+ddUOrLJ?= =?utf-8?q?TUjHtPJeUXHERaE7NDlAKv3ZSBpQ15pKoRKQuuBNKufwre3tfvt5+80SPg97moWfN?= =?utf-8?q?I+hR/hvkM6NwdHM2VsNp/NPFQu2zF0nZzhiALp1Fc9QoIHkwBoejmND0o71HlmGjr?= =?utf-8?q?vxMf5k3nF1quh9yieQ4VMvsdE/gLvHD2yBjL1fe9tAYhF4TGDYn6cYQStLrtK2XvW?= =?utf-8?q?qlf6ZTP3a3oWbSZGciUv0zNWel5MYlASl0j4tTN07OuIpmNDqkmBlLVApUipfPotz?= =?utf-8?q?gJEelAUDhbjaLhmP0th855mnrVlEPaZ0qBD3Wi4H0zxK2yApBB+rj5WU1ybmvbcVY?= =?utf-8?q?MqocnoM+mbrGDxdDp0++iVGUn6rYC4o52bS28/vpy1uSphttogY48+hVP8xVUJRbD?= =?utf-8?q?tLmcgeZ1nbZEmHKRrQ2F0fLvy8PyImCGCCcXYHPvNnjNq+O0Xk1UYUxByqXWttKC9?= =?utf-8?q?f+8imgb8exVD?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(36860700004)(35042699013)(376005)(82310400017)(1800799015); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:07.8207 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6702ac13-9c45-48bc-51c6-08dc7a46a8dd X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM2PEPF0001C70A.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9398 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org HI, The current implementation for the following SVE2p1 instructions add a constraint in aarch64_opcode_table[] array, so that these instruction might be immediately preceded in program order by a MOVPRFX instruction. As per the spec these instruction does not immediately preceded in program order by a MOVPRFX instruction and to fix this issue, SVE2p1_INSNC macro is replaced with SVE2p1_INSN macro for the entries of these instructions in aarch64_opcode_table[] array. List of instructions updated: addqv, andqv, smaxqv, sminqv, umaxqv, uminqv, eorqv, faddqv, fmaxnmqv, fmaxqv, fminnmqv and fminqv Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath. --- gas/testsuite/gas/aarch64/sve2p1-1-invalid.d | 4 + gas/testsuite/gas/aarch64/sve2p1-1-invalid.l | 101 +++++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-1-invalid.s | 26 +++++ opcodes/aarch64-tbl.h | 25 +++-- 4 files changed, 143 insertions(+), 13 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/sve2p1-1-invalid.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-1-invalid.l create mode 100644 gas/testsuite/gas/aarch64/sve2p1-1-invalid.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-1-invalid.d new file mode 100644 index 00000000000..91066f751ac --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-1-invalid.d @@ -0,0 +1,4 @@ +#name: Illegal test of SVE2.1 min max instructions with movprfx. +#as: -march=armv9.4-a +#source: sve2p1-1-invalid.s +#warning_output: sve2p1-1-invalid.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-1-invalid.l new file mode 100644 index 00000000000..ecece134cf8 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-1-invalid.l @@ -0,0 +1,101 @@ +.*: Assembler messages: +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.16b,p0,z0.b' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `faddqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `faddqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `faddqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxnmqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxnmqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxnmqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminnmqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminnmqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminnmqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `addqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `andqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `smaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `sminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `umaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `uminqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `eorqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `faddqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `faddqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `faddqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxnmqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxnmqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxnmqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fmaxqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminnmqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminnmqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminnmqv v0.2d,p0,z0.d' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminqv v0.8h,p0,z0.h' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminqv v0.4s,p0,z0.s' +.*: Warning: SVE `movprfx' compatible instruction expected -- `fminqv v0.2d,p0,z0.d' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-1-invalid.s new file mode 100644 index 00000000000..1808027b56e --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-1-invalid.s @@ -0,0 +1,26 @@ + .irp op1 addqv, andqv, smaxqv, sminqv, umaxqv, uminqv, eorqv + movprfx z3, z5 + \op1 v0.16b, p0, z0.b + movprfx z3, z5 + \op1 v0.8h, p0, z0.h + movprfx z3, z5 + \op1 v0.4s, p0, z0.s + movprfx z3, z5 + \op1 v0.2d, p0, z0.d + .endr + .irp op1 addqv, andqv, smaxqv, sminqv, umaxqv, uminqv, eorqv, faddqv, fmaxnmqv, fmaxqv, fminnmqv, fminqv + movprfx z0.d, p0/m, z31.d + \op1 v0.8h, p0, z0.h + movprfx z0.d, p0/m, z31.d + \op1 v0.4s, p0, z0.s + movprfx z0.d, p0/m, z31.d + \op1 v0.2d, p0, z0.d + .endr + .irp op1 addqv, andqv, smaxqv, sminqv, umaxqv, uminqv, eorqv, faddqv, fmaxnmqv, fmaxqv, fminnmqv, fminqv + movprfx z0.d, p0/z, z31.d + \op1 v0.8h, p0, z0.h + movprfx z0.d, p0/z, z31.d + \op1 v0.4s, p0, z0.s + movprfx z0.d, p0/z, z31.d + \op1 v0.2d, p0, z0.d + .endr diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index e9a39b3602a..100ae0bb1aa 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -6464,19 +6464,18 @@ const struct aarch64_opcode aarch64_opcode_table[] = SME2p1_INSN ("movaz", 0xc0c60200, 0xffff1f01, sme2_movaz, 0, OP2 (SME_Zdnx2, SME_ZA_array_vrsd_1), OP_SVE_DD, 0, 0), /* SVE2p1 Instructions. */ - SVE2p1_INSNC("addqv",0x04052000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("andqv",0x041e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("smaxqv",0x040c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("sminqv",0x040e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("umaxqv",0x040d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("uminqv",0x040f2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("eorqv",0x041d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - - SVE2p1_INSNC("faddqv",0x6410a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("fmaxnmqv",0x6414a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("fmaxqv",0x6416a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("fminnmqv",0x6415a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), - SVE2p1_INSNC("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, C_SCAN_MOVPRFX, 0), + SVE2p1_INSN("addqv",0x04052000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("andqv",0x041e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("smaxqv",0x040c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("sminqv",0x040e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("umaxqv",0x040d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("uminqv",0x040f2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("eorqv",0x041d2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("faddqv",0x6410a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0), + SVE2p1_INSN("fmaxnmqv",0x6414a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0), + SVE2p1_INSN("fmaxqv",0x6416a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0), + SVE2p1_INSN("fminnmqv",0x6415a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0), + SVE2p1_INSN("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0), SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0), SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1), From patchwork Wed May 22 10:04:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90677 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E6C1438708CB for ; Wed, 22 May 2024 10:09:37 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2078.outbound.protection.outlook.com [40.107.6.78]) by sourceware.org (Postfix) with ESMTPS id 64FEC384F4B9 for ; Wed, 22 May 2024 10:05:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 64FEC384F4B9 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 64FEC384F4B9 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.6.78 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372348; cv=pass; b=w6S6SlzmGD8Czm/hSW6W2hVXMuuYAFS/+f26AfWvrPhzgCr8NSEl2nz14/VOsp71LoVL1pogj88xrHOBgeq4GXZcCVr1Ozff6jz0j1ETceRmQf9d6A/sjVA79GnwoV+vVkkm7RHTkxItd8JeXdB0pt78v4+38rczeb8nJTMdF9E= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372348; c=relaxed/simple; bh=wWaATvt1PSVDe16+Fho1fvq+xCtk0WPQQwYJxq7miq0=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=oJwGhXg+AGNhliWL6sImKryxUmrODkvwAbLIkygYUoyixNMTk6mYon+sI4sQXXCfDJNxPfoXAgnvQVFel5rlllMwqIFKttyQbhw2bwYC717Wxi3stKJOD9HxcPLpgoHfUyXhav7HjflHKpyFvcy4faq2IqDYKpc9VbYPQ0iqAfo= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=J8Ca+If5sy7VjiSt59e4HrfVfZ306tFYQ0iVrR9drj2FPXop2HwbCCERWR/51MnteieSJejcgwRJXFu/cUDAQm0xqogsulX1TUMJWFyErVDG644zNFq+GF9yiyD0wEyRsoxpo8/gf2dU7tJIeOUoxnija7CWsYNuIUJ9AiFbf3bi7Hm2tHCOEGtHz2EjGQMSvkwhT8tl6VHlps2YXJZQuVrqrqfuw48KOCrgnwCwWVLNenoQqoM9+fUDtAMyfnxmwAXc4926MYFs15ntR2ruQKpdHNagsWDU9mxxUVIXFxmeX1n9YDDJsCGvGqKkov0plb8IidZL8QU21BooJIBUOA== ARC-Message-Signature: i=2; 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=4G3M64FrDVYLEi+ia0gLClbLyyhF0mU21xkoz6RTbLE=; b=Wki24Ir43dQB/jBgsZ7q6gudvIior6OkQtNtgE/76EwkQ3rjyGccP9FHLcktQtZZmOMe/WhwlMxT/mdng/Y/KsCCzCPL1bzFQiAsBAK0zYkQO2sYhK3/Qint7OgB9kn/W19N7IYsXMKWyA5Kxwb9qqn1TfplwKc61QwhaVD6+AL4R3OXmZ8oCtzbV9Ks0IdvADFBeqyqaumceIs6kosSFFtyWSg2HZdLBKG5ZODNcl/NxN4m5J19dwcx0DSoS7BC9rr4GMdq33d3/w9JFEWv8pYxXk817JOUCbbDexkKuR1Rs/GQPQikskHygFqqzVWAq8vuBRIfWHIHkHg5tj3kww== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4G3M64FrDVYLEi+ia0gLClbLyyhF0mU21xkoz6RTbLE=; b=IzU1pnEkYwKXsePJKWq2zyNMKjCkm/wlIM62h9DfYZsWSoFOGvRdJ4CJnUYLuC8C3+HSd6fe0IaxM7HOu2STBcYTiXMEaUuMw2wXbQHt4MfTK3uP4QUkZ0W2AyENu14sb5CT+jZkX/bo8vE71LSVFUgzxIUlrH6h8DexHnGbH5c= Received: from DB9PR06CA0016.eurprd06.prod.outlook.com (2603:10a6:10:1db::21) by GVXPR08MB10810.eurprd08.prod.outlook.com (2603:10a6:150:150::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19; Wed, 22 May 2024 10:05:32 +0000 Received: from DB5PEPF00014B8A.eurprd02.prod.outlook.com (2603:10a6:10:1db:cafe::44) by DB9PR06CA0016.outlook.office365.com (2603:10a6:10:1db::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35 via Frontend Transport; Wed, 22 May 2024 10:05:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5PEPF00014B8A.mail.protection.outlook.com (10.167.8.198) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:32 +0000 Received: ("Tessian outbound fffbb209f6c2:v327"); Wed, 22 May 2024 10:05:32 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ccc93615d139ff61 X-CR-MTA-TID: 64aa7808 Received: from 8b9d2db925df.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 7EC305CE-F485-4997-B0EE-F37AB212217D.1; Wed, 22 May 2024 10:05:25 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8b9d2db925df.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:05:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=icfDM4UXuo6xvREO6GsxXgHv9vttwYshTOD3iZB9Tjg6yURgiGra0pbhgY3m5bzI0nipTd9vxEBWmTID9EGINHr6jmOhQDni5l6NJNGHn/7azzGPr0qp5VyVRBfb3z/EZvx8ncsVB0jSv6eLtw56ZaHhzwNqWW4t/b9idGm6T5Vr+v5fbheNzFp+DHf1JOZc7MZArG/U9AfC9xF678yfuBRGgo+tclWJN/pC8Gkx+MaSM7QwjJ1nLxXMbsEiFw6RtFBuwrwTi/rMnOt1uUzU8CR5+WU3QZNWkQ/trj1CHmboExayV7MnBcPbSCuQHsDogh7wY8mKpxrzQOG6j3186w== 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=4G3M64FrDVYLEi+ia0gLClbLyyhF0mU21xkoz6RTbLE=; b=UrEubaXFm+YBCTtOCT3kuCE+Va/4zW4pU8BxITj5++bcrLSv/l7Q8uHOEUf1woJJYbV3LP8PYAwaYZqkMw5uOEKub6xXqQor0Nlr3fBpiJUYC1v4eQMJDqSlHQtkWYTr1u6ol4mRJmRb5yblMNMudRGjJsF2O44o9gWdDGKeo6k8W/qrksj1reIg4wURfyX0H9k9CjzWmleAlxgh+tVt/e3/MEfJM13yZOTZXEdwdzyCnd811ovtAap5ibOmbs0oljKEtsEUf32gRRCuk6ms7wQSNMWNKta9EbZe1m54IJgga2JPspOHlAm42WFxy6MMU8OsZVfCJZ1NHVS0MzRyeA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4G3M64FrDVYLEi+ia0gLClbLyyhF0mU21xkoz6RTbLE=; b=IzU1pnEkYwKXsePJKWq2zyNMKjCkm/wlIM62h9DfYZsWSoFOGvRdJ4CJnUYLuC8C3+HSd6fe0IaxM7HOu2STBcYTiXMEaUuMw2wXbQHt4MfTK3uP4QUkZ0W2AyENu14sb5CT+jZkX/bo8vE71LSVFUgzxIUlrH6h8DexHnGbH5c= Received: from DU6P191CA0025.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53f::25) by AS2PR08MB9246.eurprd08.prod.outlook.com (2603:10a6:20b:59e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35; Wed, 22 May 2024 10:05:23 +0000 Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com (2603:10a6:10:53f:cafe::e) by DU6P191CA0025.outlook.office365.com (2603:10a6:10:53f::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19 via Frontend Transport; Wed, 22 May 2024 10:05:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DB5PEPF00014B99.mail.protection.outlook.com (10.167.8.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:23 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:04:58 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:04:58 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH v1 6/7][Binutils] aarch64: Add extra tests for sve2p1 min max instructions. Date: Wed, 22 May 2024 11:04:37 +0100 Message-ID: <20240522100439.1050296-10-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B99:EE_|AS2PR08MB9246:EE_|DB5PEPF00014B8A:EE_|GVXPR08MB10810:EE_ X-MS-Office365-Filtering-Correlation-Id: 8026b152-1fd0-4442-30e4-08dc7a46b751 X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|376005|36860700004|1800799015|82310400017; X-Microsoft-Antispam-Message-Info-Original: 6w6TBW3hNyzPTr2mkU7RvmHITMCsz8vM8r9uLwpzfiqf9je6eXTeX29QMUhuMUYbifar1LiPw7hVeH178nAodIQj2wDTxOL5QZo6cndvQVAcq0UlKKNOfDhqSv4s44yWCnltoc1TvHlcxV4O7G78Icnv/gbdJFxR8b3WEIYcbsECSUd/jutCotMGh8r1+p9Pz+t6+j/Oneo4CtJvWy+sr+YFEh3yBmN+5ggeJKMz7MwJvpqWgwtnHpwcmhJ/FicuByHZGODn8fvFmnb+9s3jbwpF1QbFvJbktiDc9+oxaZm2hmiJxlsQDC1iHnCXcxnUs9W7fUEnto2g0vrXIFfEEjkOiXO7GVFFWJiwrcODmGpWrOousecepMISg3J0/pMkFxW5/C7YjrStnEVqGgHn4eV3u8UsPX64uu+tBkohPT7Xo/X3vBHiQMeNLlH7Gkh1NPgNarv/2LJ9vrPQxm4YZraEw0Hnh4MmzP5h5ghETay0SjACyM/E2Skmsa1oOtRXpEBJF7XoPtWuLnUv7rsljTXtZcunxIVtFs10gRW6EIL6dRDBTJfzSl/X/jiEnpO+GSs8OvE1TgjfeMdKvqPo9zKux1JNT7jK6ylFnm4j1UFyxrlT0aeyu+5gKF3CuHXPn3+9w+aIHWe4YkgqW32IJzFW6Uas4bkIwGpJUAmrrsrJbJrdQBb5R5ZTJ2rYgAb+wlkwoC1/SbjLKLjCcbjMHsFDcDAD1GYGI/jEUW4BZxFmpurJELQEX0b6/dlCXfaAwwq+f2eWvb2OAykHAJwjwQ1MbpQLxX9oigu9vK8TPCzAtVuwBfbbrLmRyVNIOzlGHQSSFo+l0ODeD89aqGESFsYt1Te7q5Jul8VgQ3gWoxZ0i+KiBC8DB+WAbZk+Q4FwFdgOqWID8uqnGgIs0tNUZUq+SZNQGJiCq7FD5Maccy6jqhe83Z26oNw7ovwdlNGoIg5NXwCN0dTXiYbaqZoJJPY+HKve4UbixD5VXscg8azGNspIj8OgFGAiMl0wsPwCkj1ajbBD/XNS/2ljDt+l8H1bbSU/9tlIU9mrpS56+gF8BRSezF/h2V20O6OGcBm7r2yaOrK2T7xDI66DAFtjkI73EnsWj0EPePGHQ+/1bW691LCbF2Ez98RqZRSYy7mtZC/O+T2M2PROy1daisFssydJYF4IMYr4uPhGxE0pzR95kZLNKMPAU5bhiWrM19gdKhUc424/+J6v55/JmPOuK30kRq7Da16gfMTUuctCto6eG5pK6wiv63NHANnUHvbl9d+i4FB5NHUbace3BiNoNz9zg3yLEt29iCO6iyQWFzfZHGRCrBlKA01REYdD0x1JqI0lV4r+VVEQkH18zEpzjyquRTjJKjyQJ5yaoQyFGGc= X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(376005)(36860700004)(1800799015)(82310400017); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9246 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B8A.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: ad37cb70-4bab-45eb-c99c-08dc7a46b201 X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|35042699013|376005|36860700004|82310400017; X-Microsoft-Antispam-Message-Info: =?utf-8?q?gqUp1zU7sLLAGf6YGMedXt0phgcitQM?= =?utf-8?q?C0EI1X+dlQ45qBK0nyKZgx62VGfz3ORqf2u+nT0YYYPmbX3y58DW1M5URJZpgzSwh?= =?utf-8?q?utyURaFjYo52q4//F+aDvTdLIUOZ3N7pDIVbDkUwqaWb6cSzPxHxqORY3G52igUDP?= =?utf-8?q?FzWMijxCtryC+FvzjgFyzKwBw9qy5ui4E0TBnumbjFb8aqOEyj18dHWjaREXvf6L1?= =?utf-8?q?0hvXdBnzIJYZsW5T4IbCv/tGTBVtry2mLhsBdojKLQCt3GwwY/jC0oYq39sPmIQAc?= =?utf-8?q?/94bNdjuDQxFPubikDeSBVALgKjKSOBiqBhYC5BkJGj40HCka4my12gqFaKq/4Lqz?= =?utf-8?q?3USsmOdhn+sFTXvjtUAvCMP+vMCtpXWiHfg2DBlE0zqqeQryeALpzSWupKnSVMgw7?= =?utf-8?q?gY4iq91HluTmenNIn48Ibcgp1RhNdzLvN75cVGoS6x1ks103TH/2W8Vz2lbrRXkOF?= =?utf-8?q?/e7zd/axRHwYvzI5kWn9tDUA8iol2OCLnvE0CVKiW3IAHSwlfhy58Bf6D+Ka/jb3C?= =?utf-8?q?chM5uZzOIQM0Jng4ikDmvgVzoEfuRXvNLlasKGuEedxIr3yKBV7GdKeUa2sx9Zl+c?= =?utf-8?q?PeIa2Q1QLc8y7tISXaj/MtmINcyZJSoVPtIK1eiTJSw0zm2K6Hw+5GLqUETFqqsn+?= =?utf-8?q?09Msoea7dkQGk/W+GX7gbPuNtPhgSmck4FXqydcrALBBuIyD2jtTv1DkNT5+KEDlC?= =?utf-8?q?1VOkV9W9hpKV5gd/33G72sTsTnfXBtCmMfEWNqvBIF5kxz6Ng2WkScJZL2dhNVDUA?= =?utf-8?q?NPbNuzLsQ5Bi6qf1OstMF13hqCXyRm6Gve7YgmXO/qAkPY4qDDvpnvi5SRGn7nO4X?= =?utf-8?q?v8oSoPvJ+5BCj4Cb2qZNUT6pBiSNbxZJoh/jqdi2ex1Jw0g4smMgGz1MuAbwtn8dD?= =?utf-8?q?N55hFZvzX85EDP7G/ThyEKbXF6y9OF91+NfEho50sgcodPD9YSQonj/uj8TPp6U9a?= =?utf-8?q?I+c6Barja0feSh7lNcz7pkjKvSszNni1yVjf06qA9UhLf22N1dn9gHesEnOotMNCK?= =?utf-8?q?1kCLNNlFhArK3J0qLWECXnx0mnfyJInnGhC6mpMQL9lr9ki0HBvVScA6/3Cck3ahi?= =?utf-8?q?WnGlr55YcpW1ZwnAxpln9ocQIjOs9IImht1wTwY4ShvsyAR0TnoL0pmdibr74F9Fw?= =?utf-8?q?G4AGF3Gi2G+FxqICdJSQxlHWxUVJ59PA+ETugSdQqHS8YjxeQF3WH4hK5xB100fEg?= =?utf-8?q?5GJkyar1mFDnbaxlif315sPJSSDJi0vqwhx46j6tFzMn/QmFVwSOPLoH89iNpcMVM?= =?utf-8?q?b5e2gHJPvy2zEDCimDS2wM0gzrU+P4/smeiodtlyIwMkO0PInzq8zk/U=3D?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(1800799015)(35042699013)(376005)(36860700004)(82310400017); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:32.1618 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8026b152-1fd0-4442-30e4-08dc7a46b751 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B8A.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10810 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Hi, This patch adds some extra tests for the sve2p1 "addqv, andqv, smaxqv, sminqv, umaxqv, uminqv, eorqv, faddqv, fmaxnmqv, fmaxqv, fminnmqv and fminqv" instructions. The patch also adds couple of negative testcases, sve2p1-1-bad.d testcase without "+sve2p1" option and sve2p1-2-bad.d testcase with wrong operands for sve2p1 instructions. Regression testing for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath. --- gas/testsuite/gas/aarch64/sve2p1-1-bad.l | 151 ++++++++-------- gas/testsuite/gas/aarch64/sve2p1-1.d | 151 ++++++++-------- gas/testsuite/gas/aarch64/sve2p1-1.s | 152 +++++++++-------- gas/testsuite/gas/aarch64/sve2p1-3-bad.d | 3 + gas/testsuite/gas/aarch64/sve2p1-3-bad.l | 208 +++++++++++++++++++++++ gas/testsuite/gas/aarch64/sve2p1-3-bad.s | 59 +++++++ 6 files changed, 523 insertions(+), 201 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3-bad.d create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3-bad.l create mode 100644 gas/testsuite/gas/aarch64/sve2p1-3-bad.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l index 1b6a9683b65..24c8793a4cd 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l +++ b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l @@ -1,68 +1,85 @@ .*: Assembler messages: -.*: Error: selected processor does not support `addqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `addqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `addqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `addqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `addqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `addqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `andqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `andqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `andqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `andqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `andqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `andqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `smaxqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `smaxqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `smaxqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `smaxqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `smaxqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `smaxqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `umaxqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `umaxqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `umaxqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `umaxqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `umaxqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `umaxqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `sminqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `sminqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `sminqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `sminqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `sminqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `sminqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `uminqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `uminqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `uminqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `uminqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `uminqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `uminqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `eorqv v0.16b,p0,z16.b' -.*: Error: selected processor does not support `eorqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `eorqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `eorqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `eorqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `eorqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `faddqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `faddqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `faddqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `faddqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `faddqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `fmaxnmqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `fmaxnmqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `fmaxnmqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `fmaxnmqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `fmaxnmqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `fmaxqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `fmaxqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `fmaxqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `fmaxqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `fmaxqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `fminnmqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `fminnmqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `fminnmqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `fminnmqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `fminnmqv v16.4s,p7,z0.s' -.*: Error: selected processor does not support `fminqv v1.8h,p1,z8.h' -.*: Error: selected processor does not support `fminqv v2.4s,p2,z4.s' -.*: Error: selected processor does not support `fminqv v4.2d,p3,z2.d' -.*: Error: selected processor does not support `fminqv v8.2d,p4,z1.d' -.*: Error: selected processor does not support `fminqv v16.4s,p7,z0.s' +.*: selected processor does not support `addqv v0.16b,p0,z0.b' +.*: selected processor does not support `addqv v31.16b,p0,z0.b' +.*: selected processor does not support `addqv v0.2d,p0,z0.d' +.*: selected processor does not support `addqv v0.16b,p7,z0.b' +.*: selected processor does not support `addqv v0.16b,p0,z31.b' +.*: selected processor does not support `addqv v31.2d,p7,z31.d' +.*: selected processor does not support `addqv v10.4s,p3,z20.s' +.*: selected processor does not support `andqv v0.16b,p0,z0.b' +.*: selected processor does not support `andqv v31.16b,p0,z0.b' +.*: selected processor does not support `andqv v0.2d,p0,z0.d' +.*: selected processor does not support `andqv v0.16b,p7,z0.b' +.*: selected processor does not support `andqv v0.16b,p0,z31.b' +.*: selected processor does not support `andqv v31.2d,p7,z31.d' +.*: selected processor does not support `andqv v10.4s,p3,z20.s' +.*: selected processor does not support `smaxqv v0.16b,p0,z0.b' +.*: selected processor does not support `smaxqv v31.16b,p0,z0.b' +.*: selected processor does not support `smaxqv v0.2d,p0,z0.d' +.*: selected processor does not support `smaxqv v0.16b,p7,z0.b' +.*: selected processor does not support `smaxqv v0.16b,p0,z31.b' +.*: selected processor does not support `smaxqv v31.2d,p7,z31.d' +.*: selected processor does not support `smaxqv v10.4s,p3,z20.s' +.*: selected processor does not support `umaxqv v0.16b,p0,z0.b' +.*: selected processor does not support `umaxqv v31.16b,p0,z0.b' +.*: selected processor does not support `umaxqv v0.2d,p0,z0.d' +.*: selected processor does not support `umaxqv v0.16b,p7,z0.b' +.*: selected processor does not support `umaxqv v0.16b,p0,z31.b' +.*: selected processor does not support `umaxqv v31.2d,p7,z31.d' +.*: selected processor does not support `umaxqv v10.4s,p3,z20.s' +.*: selected processor does not support `sminqv v0.16b,p0,z0.b' +.*: selected processor does not support `sminqv v31.16b,p0,z0.b' +.*: selected processor does not support `sminqv v0.2d,p0,z0.d' +.*: selected processor does not support `sminqv v0.16b,p7,z0.b' +.*: selected processor does not support `sminqv v0.16b,p0,z31.b' +.*: selected processor does not support `sminqv v31.2d,p7,z31.d' +.*: selected processor does not support `sminqv v10.4s,p3,z20.s' +.*: selected processor does not support `uminqv v0.16b,p0,z0.b' +.*: selected processor does not support `uminqv v31.16b,p0,z0.b' +.*: selected processor does not support `uminqv v0.2d,p0,z0.d' +.*: selected processor does not support `uminqv v0.16b,p7,z0.b' +.*: selected processor does not support `uminqv v0.16b,p0,z31.b' +.*: selected processor does not support `uminqv v31.2d,p7,z31.d' +.*: selected processor does not support `uminqv v10.4s,p3,z20.s' +.*: selected processor does not support `eorqv v0.16b,p0,z0.b' +.*: selected processor does not support `eorqv v31.16b,p0,z0.b' +.*: selected processor does not support `eorqv v0.2d,p0,z0.d' +.*: selected processor does not support `eorqv v0.16b,p7,z0.b' +.*: selected processor does not support `eorqv v0.16b,p0,z31.b' +.*: selected processor does not support `eorqv v31.2d,p7,z31.d' +.*: selected processor does not support `eorqv v10.4s,p3,z20.s' +.*: selected processor does not support `faddqv v0.8h,p0,z0.h' +.*: selected processor does not support `faddqv v31.8h,p0,z0.h' +.*: selected processor does not support `faddqv v0.2d,p0,z0.d' +.*: selected processor does not support `faddqv v0.8h,p7,z0.h' +.*: selected processor does not support `faddqv v0.8h,p0,z31.h' +.*: selected processor does not support `faddqv v31.2d,p7,z31.d' +.*: selected processor does not support `faddqv v10.4s,p3,z20.s' +.*: selected processor does not support `fmaxnmqv v0.8h,p0,z0.h' +.*: selected processor does not support `fmaxnmqv v31.8h,p0,z0.h' +.*: selected processor does not support `fmaxnmqv v0.2d,p0,z0.d' +.*: selected processor does not support `fmaxnmqv v0.8h,p7,z0.h' +.*: selected processor does not support `fmaxnmqv v0.8h,p0,z31.h' +.*: selected processor does not support `fmaxnmqv v31.2d,p7,z31.d' +.*: selected processor does not support `fmaxnmqv v10.4s,p3,z20.s' +.*: selected processor does not support `fmaxqv v0.8h,p0,z0.h' +.*: selected processor does not support `fmaxqv v31.8h,p0,z0.h' +.*: selected processor does not support `fmaxqv v0.2d,p0,z0.d' +.*: selected processor does not support `fmaxqv v0.8h,p7,z0.h' +.*: selected processor does not support `fmaxqv v0.8h,p0,z31.h' +.*: selected processor does not support `fmaxqv v31.2d,p7,z31.d' +.*: selected processor does not support `fmaxqv v10.4s,p3,z20.s' +.*: selected processor does not support `fminnmqv v0.8h,p0,z0.h' +.*: selected processor does not support `fminnmqv v31.8h,p0,z0.h' +.*: selected processor does not support `fminnmqv v0.2d,p0,z0.d' +.*: selected processor does not support `fminnmqv v0.8h,p7,z0.h' +.*: selected processor does not support `fminnmqv v0.8h,p0,z31.h' +.*: selected processor does not support `fminnmqv v31.2d,p7,z31.d' +.*: selected processor does not support `fminnmqv v10.4s,p3,z20.s' +.*: selected processor does not support `fminqv v0.8h,p0,z0.h' +.*: selected processor does not support `fminqv v31.8h,p0,z0.h' +.*: selected processor does not support `fminqv v0.2d,p0,z0.d' +.*: selected processor does not support `fminqv v0.8h,p7,z0.h' +.*: selected processor does not support `fminqv v0.8h,p0,z31.h' +.*: selected processor does not support `fminqv v31.2d,p7,z31.d' +.*: selected processor does not support `fminqv v10.4s,p3,z20.s' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.d b/gas/testsuite/gas/aarch64/sve2p1-1.d index 8277a1386f2..1f52e3c7f84 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1.d @@ -8,70 +8,87 @@ [^:]+: [^:]+: -.*: 04052200 addqv v0.16b, p0, z16.b -.*: 04452501 addqv v1.8h, p1, z8.h -.*: 04852882 addqv v2.4s, p2, z4.s -.*: 04c52c44 addqv v4.2d, p3, z2.d -.*: 04c53028 addqv v8.2d, p4, z1.d -.*: 04853c10 addqv v16.4s, p7, z0.s -.*: 041e2200 andqv v0.16b, p0, z16.b -.*: 045e2501 andqv v1.8h, p1, z8.h -.*: 049e2882 andqv v2.4s, p2, z4.s -.*: 04de2c44 andqv v4.2d, p3, z2.d -.*: 04de3028 andqv v8.2d, p4, z1.d -.*: 049e3c10 andqv v16.4s, p7, z0.s -.*: 040c2200 smaxqv v0.16b, p0, z16.b -.*: 044c2501 smaxqv v1.8h, p1, z8.h -.*: 048c2882 smaxqv v2.4s, p2, z4.s -.*: 04cc2c44 smaxqv v4.2d, p3, z2.d -.*: 04cc3028 smaxqv v8.2d, p4, z1.d -.*: 048c3c10 smaxqv v16.4s, p7, z0.s -.*: 040d2200 umaxqv v0.16b, p0, z16.b -.*: 044d2501 umaxqv v1.8h, p1, z8.h -.*: 048d2882 umaxqv v2.4s, p2, z4.s -.*: 04cd2c44 umaxqv v4.2d, p3, z2.d -.*: 04cd3028 umaxqv v8.2d, p4, z1.d -.*: 048d3c10 umaxqv v16.4s, p7, z0.s -.*: 040e2200 sminqv v0.16b, p0, z16.b -.*: 044e2501 sminqv v1.8h, p1, z8.h -.*: 048e2882 sminqv v2.4s, p2, z4.s -.*: 04ce2c44 sminqv v4.2d, p3, z2.d -.*: 04ce3028 sminqv v8.2d, p4, z1.d -.*: 048e3c10 sminqv v16.4s, p7, z0.s -.*: 040f2200 uminqv v0.16b, p0, z16.b -.*: 044f2501 uminqv v1.8h, p1, z8.h -.*: 048f2882 uminqv v2.4s, p2, z4.s -.*: 04cf2c44 uminqv v4.2d, p3, z2.d -.*: 04cf3028 uminqv v8.2d, p4, z1.d -.*: 048f3c10 uminqv v16.4s, p7, z0.s -.*: 041d2200 eorqv v0.16b, p0, z16.b -.*: 045d2501 eorqv v1.8h, p1, z8.h -.*: 049d2882 eorqv v2.4s, p2, z4.s -.*: 04dd2c44 eorqv v4.2d, p3, z2.d -.*: 04dd3028 eorqv v8.2d, p4, z1.d -.*: 049d3c10 eorqv v16.4s, p7, z0.s -.*: 6450a501 faddqv v1.8h, p1, z8.h -.*: 6490a882 faddqv v2.4s, p2, z4.s -.*: 64d0ac44 faddqv v4.2d, p3, z2.d -.*: 64d0b028 faddqv v8.2d, p4, z1.d -.*: 6490bc10 faddqv v16.4s, p7, z0.s -.*: 6454a501 fmaxnmqv v1.8h, p1, z8.h -.*: 6494a882 fmaxnmqv v2.4s, p2, z4.s -.*: 64d4ac44 fmaxnmqv v4.2d, p3, z2.d -.*: 64d4b028 fmaxnmqv v8.2d, p4, z1.d -.*: 6494bc10 fmaxnmqv v16.4s, p7, z0.s -.*: 6456a501 fmaxqv v1.8h, p1, z8.h -.*: 6496a882 fmaxqv v2.4s, p2, z4.s -.*: 64d6ac44 fmaxqv v4.2d, p3, z2.d -.*: 64d6b028 fmaxqv v8.2d, p4, z1.d -.*: 6496bc10 fmaxqv v16.4s, p7, z0.s -.*: 6455a501 fminnmqv v1.8h, p1, z8.h -.*: 6495a882 fminnmqv v2.4s, p2, z4.s -.*: 64d5ac44 fminnmqv v4.2d, p3, z2.d -.*: 64d5b028 fminnmqv v8.2d, p4, z1.d -.*: 6495bc10 fminnmqv v16.4s, p7, z0.s -.*: 6457a501 fminqv v1.8h, p1, z8.h -.*: 6497a882 fminqv v2.4s, p2, z4.s -.*: 64d7ac44 fminqv v4.2d, p3, z2.d -.*: 64d7b028 fminqv v8.2d, p4, z1.d -.*: 6497bc10 fminqv v16.4s, p7, z0.s +.*: 04052000 addqv v0.16b, p0, z0.b +.*: 0405201f addqv v31.16b, p0, z0.b +.*: 04c52000 addqv v0.2d, p0, z0.d +.*: 04053c00 addqv v0.16b, p7, z0.b +.*: 040523e0 addqv v0.16b, p0, z31.b +.*: 04c53fff addqv v31.2d, p7, z31.d +.*: 04852e8a addqv v10.4s, p3, z20.s +.*: 041e2000 andqv v0.16b, p0, z0.b +.*: 041e201f andqv v31.16b, p0, z0.b +.*: 04de2000 andqv v0.2d, p0, z0.d +.*: 041e3c00 andqv v0.16b, p7, z0.b +.*: 041e23e0 andqv v0.16b, p0, z31.b +.*: 04de3fff andqv v31.2d, p7, z31.d +.*: 049e2e8a andqv v10.4s, p3, z20.s +.*: 040c2000 smaxqv v0.16b, p0, z0.b +.*: 040c201f smaxqv v31.16b, p0, z0.b +.*: 04cc2000 smaxqv v0.2d, p0, z0.d +.*: 040c3c00 smaxqv v0.16b, p7, z0.b +.*: 040c23e0 smaxqv v0.16b, p0, z31.b +.*: 04cc3fff smaxqv v31.2d, p7, z31.d +.*: 048c2e8a smaxqv v10.4s, p3, z20.s +.*: 040d2000 umaxqv v0.16b, p0, z0.b +.*: 040d201f umaxqv v31.16b, p0, z0.b +.*: 04cd2000 umaxqv v0.2d, p0, z0.d +.*: 040d3c00 umaxqv v0.16b, p7, z0.b +.*: 040d23e0 umaxqv v0.16b, p0, z31.b +.*: 04cd3fff umaxqv v31.2d, p7, z31.d +.*: 048d2e8a umaxqv v10.4s, p3, z20.s +.*: 040e2000 sminqv v0.16b, p0, z0.b +.*: 040e201f sminqv v31.16b, p0, z0.b +.*: 04ce2000 sminqv v0.2d, p0, z0.d +.*: 040e3c00 sminqv v0.16b, p7, z0.b +.*: 040e23e0 sminqv v0.16b, p0, z31.b +.*: 04ce3fff sminqv v31.2d, p7, z31.d +.*: 048e2e8a sminqv v10.4s, p3, z20.s +.*: 040f2000 uminqv v0.16b, p0, z0.b +.*: 040f201f uminqv v31.16b, p0, z0.b +.*: 04cf2000 uminqv v0.2d, p0, z0.d +.*: 040f3c00 uminqv v0.16b, p7, z0.b +.*: 040f23e0 uminqv v0.16b, p0, z31.b +.*: 04cf3fff uminqv v31.2d, p7, z31.d +.*: 048f2e8a uminqv v10.4s, p3, z20.s +.*: 041d2000 eorqv v0.16b, p0, z0.b +.*: 041d201f eorqv v31.16b, p0, z0.b +.*: 04dd2000 eorqv v0.2d, p0, z0.d +.*: 041d3c00 eorqv v0.16b, p7, z0.b +.*: 041d23e0 eorqv v0.16b, p0, z31.b +.*: 04dd3fff eorqv v31.2d, p7, z31.d +.*: 049d2e8a eorqv v10.4s, p3, z20.s +.*: 6450a000 faddqv v0.8h, p0, z0.h +.*: 6450a01f faddqv v31.8h, p0, z0.h +.*: 64d0a000 faddqv v0.2d, p0, z0.d +.*: 6450bc00 faddqv v0.8h, p7, z0.h +.*: 6450a3e0 faddqv v0.8h, p0, z31.h +.*: 64d0bfff faddqv v31.2d, p7, z31.d +.*: 6490ae8a faddqv v10.4s, p3, z20.s +.*: 6454a000 fmaxnmqv v0.8h, p0, z0.h +.*: 6454a01f fmaxnmqv v31.8h, p0, z0.h +.*: 64d4a000 fmaxnmqv v0.2d, p0, z0.d +.*: 6454bc00 fmaxnmqv v0.8h, p7, z0.h +.*: 6454a3e0 fmaxnmqv v0.8h, p0, z31.h +.*: 64d4bfff fmaxnmqv v31.2d, p7, z31.d +.*: 6494ae8a fmaxnmqv v10.4s, p3, z20.s +.*: 6456a000 fmaxqv v0.8h, p0, z0.h +.*: 6456a01f fmaxqv v31.8h, p0, z0.h +.*: 64d6a000 fmaxqv v0.2d, p0, z0.d +.*: 6456bc00 fmaxqv v0.8h, p7, z0.h +.*: 6456a3e0 fmaxqv v0.8h, p0, z31.h +.*: 64d6bfff fmaxqv v31.2d, p7, z31.d +.*: 6496ae8a fmaxqv v10.4s, p3, z20.s +.*: 6455a000 fminnmqv v0.8h, p0, z0.h +.*: 6455a01f fminnmqv v31.8h, p0, z0.h +.*: 64d5a000 fminnmqv v0.2d, p0, z0.d +.*: 6455bc00 fminnmqv v0.8h, p7, z0.h +.*: 6455a3e0 fminnmqv v0.8h, p0, z31.h +.*: 64d5bfff fminnmqv v31.2d, p7, z31.d +.*: 6495ae8a fminnmqv v10.4s, p3, z20.s +.*: 6457a000 fminqv v0.8h, p0, z0.h +.*: 6457a01f fminqv v31.8h, p0, z0.h +.*: 64d7a000 fminqv v0.2d, p0, z0.d +.*: 6457bc00 fminqv v0.8h, p7, z0.h +.*: 6457a3e0 fminqv v0.8h, p0, z31.h +.*: 64d7bfff fminqv v31.2d, p7, z31.d +.*: 6497ae8a fminqv v10.4s, p3, z20.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.s b/gas/testsuite/gas/aarch64/sve2p1-1.s index 1e7c2ceceba..3dd35b84a45 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.s +++ b/gas/testsuite/gas/aarch64/sve2p1-1.s @@ -1,77 +1,95 @@ -addqv v0.16b, p0, z16.b -addqv v1.8h, p1, z8.h -addqv v2.4s, p2, z4.s -addqv v4.2d, p3, z2.d -addqv v8.2d, p4, z1.d -addqv v16.4s, p7, z0.s +addqv v0.16b, p0, z0.b +addqv v31.16b, p0, z0.b +addqv v0.2d, p0, z0.d +addqv v0.16b, p7, z0.b +addqv v0.16b, p0, z31.b +addqv v31.2d, p7, z31.d +addqv v10.4s, p3, z20.s -andqv v0.16b, p0, z16.b -andqv v1.8h, p1, z8.h -andqv v2.4s, p2, z4.s -andqv v4.2d, p3, z2.d -andqv v8.2d, p4, z1.d -andqv v16.4s, p7, z0.s +andqv v0.16b, p0, z0.b +andqv v31.16b, p0, z0.b +andqv v0.2d, p0, z0.d +andqv v0.16b, p7, z0.b +andqv v0.16b, p0, z31.b +andqv v31.2d, p7, z31.d +andqv v10.4s, p3, z20.s -smaxqv v0.16b, p0, z16.b -smaxqv v1.8h, p1, z8.h -smaxqv v2.4s, p2, z4.s -smaxqv v4.2d, p3, z2.d -smaxqv v8.2d, p4, z1.d -smaxqv v16.4s, p7, z0.s +smaxqv v0.16b, p0, z0.b +smaxqv v31.16b, p0, z0.b +smaxqv v0.2d, p0, z0.d +smaxqv v0.16b, p7, z0.b +smaxqv v0.16b, p0, z31.b +smaxqv v31.2d, p7, z31.d +smaxqv v10.4s, p3, z20.s -umaxqv v0.16b, p0, z16.b -umaxqv v1.8h, p1, z8.h -umaxqv v2.4s, p2, z4.s -umaxqv v4.2d, p3, z2.d -umaxqv v8.2d, p4, z1.d -umaxqv v16.4s, p7, z0.s +umaxqv v0.16b, p0, z0.b +umaxqv v31.16b, p0, z0.b +umaxqv v0.2d, p0, z0.d +umaxqv v0.16b, p7, z0.b +umaxqv v0.16b, p0, z31.b +umaxqv v31.2d, p7, z31.d +umaxqv v10.4s, p3, z20.s -sminqv v0.16b, p0, z16.b -sminqv v1.8h, p1, z8.h -sminqv v2.4s, p2, z4.s -sminqv v4.2d, p3, z2.d -sminqv v8.2d, p4, z1.d -sminqv v16.4s, p7, z0.s +sminqv v0.16b, p0, z0.b +sminqv v31.16b, p0, z0.b +sminqv v0.2d, p0, z0.d +sminqv v0.16b, p7, z0.b +sminqv v0.16b, p0, z31.b +sminqv v31.2d, p7, z31.d +sminqv v10.4s, p3, z20.s -uminqv v0.16b, p0, z16.b -uminqv v1.8h, p1, z8.h -uminqv v2.4s, p2, z4.s -uminqv v4.2d, p3, z2.d -uminqv v8.2d, p4, z1.d -uminqv v16.4s, p7, z0.s -eorqv v0.16b, p0, z16.b -eorqv v1.8h, p1, z8.h -eorqv v2.4s, p2, z4.s -eorqv v4.2d, p3, z2.d -eorqv v8.2d, p4, z1.d -eorqv v16.4s, p7, z0.s +uminqv v0.16b, p0, z0.b +uminqv v31.16b, p0, z0.b +uminqv v0.2d, p0, z0.d +uminqv v0.16b, p7, z0.b +uminqv v0.16b, p0, z31.b +uminqv v31.2d, p7, z31.d +uminqv v10.4s, p3, z20.s -faddqv v1.8h, p1, z8.h -faddqv v2.4s, p2, z4.s -faddqv v4.2d, p3, z2.d -faddqv v8.2d, p4, z1.d -faddqv v16.4s, p7, z0.s +eorqv v0.16b, p0, z0.b +eorqv v31.16b, p0, z0.b +eorqv v0.2d, p0, z0.d +eorqv v0.16b, p7, z0.b +eorqv v0.16b, p0, z31.b +eorqv v31.2d, p7, z31.d +eorqv v10.4s, p3, z20.s -fmaxnmqv v1.8h, p1, z8.h -fmaxnmqv v2.4s, p2, z4.s -fmaxnmqv v4.2d, p3, z2.d -fmaxnmqv v8.2d, p4, z1.d -fmaxnmqv v16.4s, p7, z0.s +faddqv v0.8h, p0, z0.h +faddqv v31.8h, p0, z0.h +faddqv v0.2d, p0, z0.d +faddqv v0.8h, p7, z0.h +faddqv v0.8h, p0, z31.h +faddqv v31.2d, p7, z31.d +faddqv v10.4s, p3, z20.s -fmaxqv v1.8h, p1, z8.h -fmaxqv v2.4s, p2, z4.s -fmaxqv v4.2d, p3, z2.d -fmaxqv v8.2d, p4, z1.d -fmaxqv v16.4s, p7, z0.s +fmaxnmqv v0.8h, p0, z0.h +fmaxnmqv v31.8h, p0, z0.h +fmaxnmqv v0.2d, p0, z0.d +fmaxnmqv v0.8h, p7, z0.h +fmaxnmqv v0.8h, p0, z31.h +fmaxnmqv v31.2d, p7, z31.d +fmaxnmqv v10.4s, p3, z20.s -fminnmqv v1.8h, p1, z8.h -fminnmqv v2.4s, p2, z4.s -fminnmqv v4.2d, p3, z2.d -fminnmqv v8.2d, p4, z1.d -fminnmqv v16.4s, p7, z0.s +fmaxqv v0.8h, p0, z0.h +fmaxqv v31.8h, p0, z0.h +fmaxqv v0.2d, p0, z0.d +fmaxqv v0.8h, p7, z0.h +fmaxqv v0.8h, p0, z31.h +fmaxqv v31.2d, p7, z31.d +fmaxqv v10.4s, p3, z20.s -fminqv v1.8h, p1, z8.h -fminqv v2.4s, p2, z4.s -fminqv v4.2d, p3, z2.d -fminqv v8.2d, p4, z1.d -fminqv v16.4s, p7, z0.s +fminnmqv v0.8h, p0, z0.h +fminnmqv v31.8h, p0, z0.h +fminnmqv v0.2d, p0, z0.d +fminnmqv v0.8h, p7, z0.h +fminnmqv v0.8h, p0, z31.h +fminnmqv v31.2d, p7, z31.d +fminnmqv v10.4s, p3, z20.s + +fminqv v0.8h, p0, z0.h +fminqv v31.8h, p0, z0.h +fminqv v0.2d, p0, z0.d +fminqv v0.8h, p7, z0.h +fminqv v0.8h, p0, z31.h +fminqv v31.2d, p7, z31.d +fminqv v10.4s, p3, z20.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-3-bad.d b/gas/testsuite/gas/aarch64/sve2p1-3-bad.d new file mode 100644 index 00000000000..e14c382511f --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3-bad.d @@ -0,0 +1,3 @@ +#name: Test of illegal SVE2.1 min and max instruction. +#as: -march=armv9.4-a +#error_output: sve2p1-3-bad.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-3-bad.l b/gas/testsuite/gas/aarch64/sve2p1-3-bad.l new file mode 100644 index 00000000000..a1fbdc6cbdf --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3-bad.l @@ -0,0 +1,208 @@ +.*: Assembler messages: +.*: Error: operand mismatch -- `addqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: addqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: addqv v0.8h, p0, z0.h +.*: Info: addqv v0.4s, p0, z0.s +.*: Info: addqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `addqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `addqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: addqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: addqv v0.8h, p7, z0.h +.*: Info: addqv v0.4s, p7, z0.s +.*: Info: addqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `addqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `smaxqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: smaxqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: smaxqv v0.8h, p0, z0.h +.*: Info: smaxqv v0.4s, p0, z0.s +.*: Info: smaxqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `smaxqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `smaxqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: smaxqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: smaxqv v0.8h, p7, z0.h +.*: Info: smaxqv v0.4s, p7, z0.s +.*: Info: smaxqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `smaxqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `andqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: andqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: andqv v0.8h, p0, z0.h +.*: Info: andqv v0.4s, p0, z0.s +.*: Info: andqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `andqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `andqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: andqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: andqv v0.8h, p7, z0.h +.*: Info: andqv v0.4s, p7, z0.s +.*: Info: andqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `andqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `umaxqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: umaxqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: umaxqv v0.8h, p0, z0.h +.*: Info: umaxqv v0.4s, p0, z0.s +.*: Info: umaxqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `umaxqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `umaxqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: umaxqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: umaxqv v0.8h, p7, z0.h +.*: Info: umaxqv v0.4s, p7, z0.s +.*: Info: umaxqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `umaxqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `sminqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: sminqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: sminqv v0.8h, p0, z0.h +.*: Info: sminqv v0.4s, p0, z0.s +.*: Info: sminqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `sminqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `sminqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: sminqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: sminqv v0.8h, p7, z0.h +.*: Info: sminqv v0.4s, p7, z0.s +.*: Info: sminqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `sminqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `uminqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: uminqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: uminqv v0.8h, p0, z0.h +.*: Info: uminqv v0.4s, p0, z0.s +.*: Info: uminqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `uminqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `uminqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: uminqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: uminqv v0.8h, p7, z0.h +.*: Info: uminqv v0.4s, p7, z0.s +.*: Info: uminqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `uminqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `eorqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: eorqv v0.16b, p0, z0.b +.*: Info: other valid variant\(s\): +.*: Info: eorqv v0.8h, p0, z0.h +.*: Info: eorqv v0.4s, p0, z0.s +.*: Info: eorqv v0.2d, p0, z0.d +.*: Error: p0-p7 expected at operand 2 -- `eorqv v31.16b,p8,z0.b' +.*: Error: operand mismatch -- `eorqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: eorqv v0.16b, p7, z0.b +.*: Info: other valid variant\(s\): +.*: Info: eorqv v0.8h, p7, z0.h +.*: Info: eorqv v0.4s, p7, z0.s +.*: Info: eorqv v0.2d, p7, z0.d +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `eorqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `faddqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: faddqv v0.8h, p0, z0.h +.*: Info: other valid variant\(s\): +.*: Info: faddqv v0.4s, p0, z0.s +.*: Info: faddqv v0.2d, p0, z0.d +.*: Error: operand mismatch -- `faddqv v31.16b,p8,z0.b' +.*: Info: did you mean this\? +.*: Info: faddqv v31.8h, p8, z0.h +.*: Info: other valid variant\(s\): +.*: Info: faddqv v31.4s, p8, z0.s +.*: Info: faddqv v31.2d, p8, z0.d +.*: Error: operand mismatch -- `faddqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: faddqv v0.2d, p7, z0.d +.*: Info: other valid variant\(s\): +.*: Info: faddqv v0.8h, p7, z0.h +.*: Info: faddqv v0.4s, p7, z0.s +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `faddqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `fmaxnmqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: fmaxnmqv v0.8h, p0, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fmaxnmqv v0.4s, p0, z0.s +.*: Info: fmaxnmqv v0.2d, p0, z0.d +.*: Error: operand mismatch -- `fmaxnmqv v31.16b,p8,z0.b' +.*: Info: did you mean this\? +.*: Info: fmaxnmqv v31.8h, p8, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fmaxnmqv v31.4s, p8, z0.s +.*: Info: fmaxnmqv v31.2d, p8, z0.d +.*: Error: operand mismatch -- `fmaxnmqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: fmaxnmqv v0.2d, p7, z0.d +.*: Info: other valid variant\(s\): +.*: Info: fmaxnmqv v0.8h, p7, z0.h +.*: Info: fmaxnmqv v0.4s, p7, z0.s +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `fmaxnmqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `fmaxqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: fmaxqv v0.8h, p0, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fmaxqv v0.4s, p0, z0.s +.*: Info: fmaxqv v0.2d, p0, z0.d +.*: Error: operand mismatch -- `fmaxqv v31.16b,p8,z0.b' +.*: Info: did you mean this\? +.*: Info: fmaxqv v31.8h, p8, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fmaxqv v31.4s, p8, z0.s +.*: Info: fmaxqv v31.2d, p8, z0.d +.*: Error: operand mismatch -- `fmaxqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: fmaxqv v0.2d, p7, z0.d +.*: Info: other valid variant\(s\): +.*: Info: fmaxqv v0.8h, p7, z0.h +.*: Info: fmaxqv v0.4s, p7, z0.s +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `fmaxqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `fminnmqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: fminnmqv v0.8h, p0, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fminnmqv v0.4s, p0, z0.s +.*: Info: fminnmqv v0.2d, p0, z0.d +.*: Error: operand mismatch -- `fminnmqv v31.16b,p8,z0.b' +.*: Info: did you mean this\? +.*: Info: fminnmqv v31.8h, p8, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fminnmqv v31.4s, p8, z0.s +.*: Info: fminnmqv v31.2d, p8, z0.d +.*: Error: operand mismatch -- `fminnmqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: fminnmqv v0.2d, p7, z0.d +.*: Info: other valid variant\(s\): +.*: Info: fminnmqv v0.8h, p7, z0.h +.*: Info: fminnmqv v0.4s, p7, z0.s +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `fminnmqv v0.2b,p7,z0.b' +.*: Error: operand mismatch -- `fminqv v0.8h,p0,z0.b' +.*: Info: did you mean this\? +.*: Info: fminqv v0.8h, p0, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fminqv v0.4s, p0, z0.s +.*: Info: fminqv v0.2d, p0, z0.d +.*: Error: operand mismatch -- `fminqv v31.16b,p8,z0.b' +.*: Info: did you mean this\? +.*: Info: fminqv v31.8h, p8, z0.h +.*: Info: other valid variant\(s\): +.*: Info: fminqv v31.4s, p8, z0.s +.*: Info: fminqv v31.2d, p8, z0.d +.*: Error: operand mismatch -- `fminqv v0.2d,p7,z0.b' +.*: Info: did you mean this\? +.*: Info: fminqv v0.2d, p7, z0.d +.*: Info: other valid variant\(s\): +.*: Info: fminqv v0.8h, p7, z0.h +.*: Info: fminqv v0.4s, p7, z0.s +.*: Error: invalid element size 2 and vector size combination b at operand 1 -- `fminqv v0.2b,p7,z0.b' diff --git a/gas/testsuite/gas/aarch64/sve2p1-3-bad.s b/gas/testsuite/gas/aarch64/sve2p1-3-bad.s new file mode 100644 index 00000000000..5e56786bad1 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-3-bad.s @@ -0,0 +1,59 @@ +addqv v0.8h, p0, z0.b +addqv v31.16b, p8, z0.b +addqv v0.2d, p7, z0.b +addqv v0.2b, p7, z0.b + +smaxqv v0.8h, p0, z0.b +smaxqv v31.16b, p8, z0.b +smaxqv v0.2d, p7, z0.b +smaxqv v0.2b, p7, z0.b + +andqv v0.8h, p0, z0.b +andqv v31.16b, p8, z0.b +andqv v0.2d, p7, z0.b +andqv v0.2b, p7, z0.b + +umaxqv v0.8h, p0, z0.b +umaxqv v31.16b, p8, z0.b +umaxqv v0.2d, p7, z0.b +umaxqv v0.2b, p7, z0.b + +sminqv v0.8h, p0, z0.b +sminqv v31.16b, p8, z0.b +sminqv v0.2d, p7, z0.b +sminqv v0.2b, p7, z0.b + +uminqv v0.8h, p0, z0.b +uminqv v31.16b, p8, z0.b +uminqv v0.2d, p7, z0.b +uminqv v0.2b, p7, z0.b + +eorqv v0.8h, p0, z0.b +eorqv v31.16b, p8, z0.b +eorqv v0.2d, p7, z0.b +eorqv v0.2b, p7, z0.b + +faddqv v0.8h, p0, z0.b +faddqv v31.16b, p8, z0.b +faddqv v0.2d, p7, z0.b +faddqv v0.2b, p7, z0.b + +fmaxnmqv v0.8h, p0, z0.b +fmaxnmqv v31.16b, p8, z0.b +fmaxnmqv v0.2d, p7, z0.b +fmaxnmqv v0.2b, p7, z0.b + +fmaxqv v0.8h, p0, z0.b +fmaxqv v31.16b, p8, z0.b +fmaxqv v0.2d, p7, z0.b +fmaxqv v0.2b, p7, z0.b + +fminnmqv v0.8h, p0, z0.b +fminnmqv v31.16b, p8, z0.b +fminnmqv v0.2d, p7, z0.b +fminnmqv v0.2b, p7, z0.b + +fminqv v0.8h, p0, z0.b +fminqv v31.16b, p8, z0.b +fminqv v0.2d, p7, z0.b +fminqv v0.2b, p7, z0.b From patchwork Wed May 22 10:04:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 90674 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7D94D3870853 for ; Wed, 22 May 2024 10:08:19 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2081.outbound.protection.outlook.com [40.107.22.81]) by sourceware.org (Postfix) with ESMTPS id 1BE303865474 for ; Wed, 22 May 2024 10:05:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1BE303865474 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1BE303865474 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.22.81 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372343; cv=pass; b=W+YdSy5CXMOE4hjcA7PXapeh8TZ6gZThadGT8Ye9Zd1SJo2sBoAz/7/DDJ8tTbO3JsNjQJFaz8XMpALlRUBuT5J1tPiH177oVGaxBD+zE3Csdx9V++lFAI+udZ4wHRykCbiI25EuYckKpJuFSJF2sB/13Q5FssSICZEVfxaFi8M= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716372343; c=relaxed/simple; bh=WjnBl2qFj3s7aVYM1UfAtCAg9PteteT2p4mDFniaatc=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=VCOvbJPJbgt0V+stycznrdLh9kI434Hi/cP1B2LcDudLdeosIzhqrw0lpgB+vCex4acXZxjnxe8AG6L6qa+r31dbT2yMbmjtvOWVVVG/GJNASI9+JjKO9kQ4AkxRkymlXCRQBVul0Ej4Bjj4eSrzHmml7FJS9/nhsy/pbV+uo4g= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=IjcKfhVnFkD3QkKg/6xJTI5o+4t6EqGK+440TV5XG5Qj5Sl41O91rkNVNBXqMkb2A0L0G9tbL79GXBfFG66P5dv4cOIRgB+3p9gLp78vZlP43w1tkFLlz8sNDV0alYlt79r9ERQr93TqUkeioNm3QxCYeT/lYPvQc8Fc1RH1CTslqIxQmVn7z8tVx+qlwzuDpqCGv+EEONTv6OXSUwAPgpaPc4r/yvmWmhiKRXJWtYHPaXlg6rQJSp8j2dmhD4E0+kn4/8hqnYZGNK2CMLYZH+kU0oJrRIZQHrAh4fWscpqOYTI2zx2ehB1Mj8keTzqXGmdjoPF/3t6uAoQt+Gut7Q== ARC-Message-Signature: i=2; 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=Dn1z4TAQ4aVF4wI5HKxVdwyu1RUIbY60qmFI/5KbOAc=; b=mogVPBQUfozFBjr8uXkKlY5XfciRfkkVDs35MIKrYvi0bwrcXxM25jz9RJh7LEsSOKnn/OGjtNUwyKftVrEVz5KJ/3I2SNaamjVWSll0t+s7T/KtQw/kF6DB2xb7Q4DVY2CiqQ0d9cy8DqOzmObmCRX2xSzj2r/xfoJlGzPF14CqMmYpMojorMiGk7A/t73bzCq6mZSiASVGB2oF94bDemla8oMTkq8D5+WoZ2fbXCaFybOqOuu0aT0lrqDT96pT44QKx4he+dsFE96Ffh/htwWlUntA+4MVQt9C6zqn1ilCZ9ScqEtkVo6cW35cXkvPB2UkWfQtrnx9Yht1gai+uA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Dn1z4TAQ4aVF4wI5HKxVdwyu1RUIbY60qmFI/5KbOAc=; b=TyeXq/oqbJkYFA3x+SloagdYgJjgRMHlG97lI+JRyetlcs6NbrYfEBjL7Gwyx8QWuWGN2JrRuqyWK1H+2PupOSM+3gN2PpSfEAebLGazhJdeK3eNMkXSl6HibGrY9qWIQ5764RhfQl8aUQKYnlqdqK0X6kcAbtkxL61skzqh6vU= Received: from DUZPR01CA0074.eurprd01.prod.exchangelabs.com (2603:10a6:10:3c2::20) by AS8PR08MB6376.eurprd08.prod.outlook.com (2603:10a6:20b:33e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35; Wed, 22 May 2024 10:05:32 +0000 Received: from DU6PEPF0000A7DE.eurprd02.prod.outlook.com (2603:10a6:10:3c2:cafe::f2) by DUZPR01CA0074.outlook.office365.com (2603:10a6:10:3c2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.35 via Frontend Transport; Wed, 22 May 2024 10:05:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DU6PEPF0000A7DE.mail.protection.outlook.com (10.167.8.38) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:32 +0000 Received: ("Tessian outbound 781e14b418de:v327"); Wed, 22 May 2024 10:05:32 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 34da3603f93c6d40 X-CR-MTA-TID: 64aa7808 Received: from 1c65124463a9.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2896B21B-823A-4944-9A7F-F96465B577E5.1; Wed, 22 May 2024 10:05:25 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1c65124463a9.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 May 2024 10:05:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UeZdpLegMFL69ysMLCBpFHZSNIIkQ+g+u+URB8ANo3bDmVizbS8Qs2nDWXe3IyofQtDTD36/ejPetS9XeLfJrW7DXrbYBTuLZIWIoyhxFVfa63N4PY3haYbDOQBoJ8sbiB9RPhJhTyLHAinYcKASO0pMzYj79arPPEjdH/NvY7c/pK5n7PC+Lk8OaIhFjS4+FuGwhYhaoOysfczoiDljKu79FX3BAXhnDNGbOn6XEHBBONOv8pFWVVjUPmJfr/ye9X7OU4aU8xpeVHsabHp9LXKGf27OSVD7QcVmvoi1RDpOMLLcj7vq0HSo4JYBYxm2hWakHrwMESAK6tmBfbb/dw== 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=Dn1z4TAQ4aVF4wI5HKxVdwyu1RUIbY60qmFI/5KbOAc=; b=RcQRPhAde52FVwSuf1YBjQaXgnG9qnzTKyCqgOYwZuqRNg2C8QNMmPkLB4WHfw7foWFdtMHOL1U33l+Wi0yovwWKlWPSYZWOViyCq6WyCapqN4MMcaQLnQv+3ru3BGlN5FgS8OJ8Ch0URb5l67UR2MHQoJ4fl07gcegYEMA6HfFy6UsqKFXffrdlXZ7h6WaIG3d8IAVZoUhTxrswTCEJQjvKKA1GZuLc2RU5yhTbd50b3EdiscAYCzWP4nPigX7REFYs4w+prwq7upHPdM8nUHCXQ2lxivHEdqukiDrqmwK3++52LCfpPMEK7FI65sC2k3LwWArB7oFlkRUfw3bjOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Dn1z4TAQ4aVF4wI5HKxVdwyu1RUIbY60qmFI/5KbOAc=; b=TyeXq/oqbJkYFA3x+SloagdYgJjgRMHlG97lI+JRyetlcs6NbrYfEBjL7Gwyx8QWuWGN2JrRuqyWK1H+2PupOSM+3gN2PpSfEAebLGazhJdeK3eNMkXSl6HibGrY9qWIQ5764RhfQl8aUQKYnlqdqK0X6kcAbtkxL61skzqh6vU= Received: from DU6P191CA0035.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53f::11) by PAWPR08MB8911.eurprd08.prod.outlook.com (2603:10a6:102:33c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.19; Wed, 22 May 2024 10:05:24 +0000 Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com (2603:10a6:10:53f:cafe::ce) by DU6P191CA0035.outlook.office365.com (2603:10a6:10:53f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36 via Frontend Transport; Wed, 22 May 2024 10:05:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DB5PEPF00014B99.mail.protection.outlook.com (10.167.8.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7611.14 via Frontend Transport; Wed, 22 May 2024 10:05:24 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:05:01 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 22 May 2024 10:05:00 +0000 Received: from e120703.cambridge.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 22 May 2024 10:05:00 +0000 From: srinath To: CC: , , Srinath Parvathaneni Subject: [PATCH v1 7/7][Binutils] aarch64: Fix FEAT_B16B16 sve2 instruction constraints. Date: Wed, 22 May 2024 11:04:38 +0100 Message-ID: <20240522100439.1050296-11-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> References: <20240522100439.1050296-1-srinath.parvathaneni@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B99:EE_|PAWPR08MB8911:EE_|DU6PEPF0000A7DE:EE_|AS8PR08MB6376:EE_ X-MS-Office365-Filtering-Correlation-Id: 575d8625-2e53-490c-ccb6-08dc7a46b76e X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230031|82310400017|1800799015|36860700004|376005; X-Microsoft-Antispam-Message-Info-Original: 7EvSKCid9LvkhrYHV+XMDjpPbNYLRTm5o/2ycszmrbb7ZaX1C/3TRs1N5WAGKO9i+LOWI+zEihirpQr2p3sQ2XMEr3F3txohrQKZ/TPft1jTITE63qlFHzvhTeDPgsguwriY9eUTOO3zCIvlZ9KM7W0uqV15pfVosMhbmd7M6OGIseGr5HAVtcUIsNu1iDbX44EAUSuSzT1ZHntsdaN5niAd7APC/N7Pdn6f/67R5BkYRP/tv/oyeD2waXGixgfVhKaGhkcNjMauZmEuR8OEsssiMp7GiNXl5m8wuQgbw6UOx0n5UaCU+Z9DB4VUe2sE0CgRMsawpvdqFz29HVv6XPCF4Yld9Sbls16ndXRbQ/+b4OQFzggdomqdyNETG98ceX7Moi796EgqIPfme+Fjms1COuHgDMF5iEk1Zu5PvlVFIrxehuWUZmjJzjknuaA5Vv5zVe803YGy8AvxuU7fAZRRITXd0BPBmESUNN1wH8tnUIpbKNNqMyWq/Akw3ccPsp1ClafW8dKG7WbI/egI42WgTf90uJEUh0Ftz76Jqjqwi3YEBmeZFV2tGHCgzF2/I5Xjk8TLbRuyXv++LhxiAz6HgO3ty0Ys6sR/ejrXYhZaXULfk10I6cuYRUzr3O6Ie6uwkQQPv8bGxN9DtWhzGvvaXoaTsGLTC6v/bMVvSENeHzNBMS0vnkhWfSQoSsPfEXPW8VW5kY6S2+Gye/CydWujTMJPppNzMkPLBSWd6460JyKa/Y3MTAwuRz29iw/kGGHvtwL8JCNzPAJQ3z5PVgwcL3WjoEuuOvGdeal/qMU41SwrGcc2DDcZ738kU/eMibkVqUgkCGMrzbrnm60JSaNUX4pRappSAK9Cxlq7a4IfzChqSqcqC37CPm+g/yuwidQV3GaWk2hCixiWIzfJ8z5dxVA4yMzfedr0dIziyKs4g3BITFJGYh7hZsocsnCdgZQNVLhN6jFnePxnJyxpk5qV1UkvP8CN/WBNZoHGpj9b1CswX9/57BYj5cN2NND9zN1HYTFGp/N9XuXq9483/yY+3iot8NLFpafgbDojrJHOaXnYvqq1CKEtGRuN7AhuubHjk8edq+2qqK34xQmZ9zv3Au4LUHSCIc8hw2M1O24N8D5bYalgRXOwLkh0FyC6vita5WfBWMZz7EdBekXDnUUA3lyi9+7+DdKOrq5WxFIJ3ZJVHc++N72ONyNSNkVh0nbpGOtNhrwGqjzsxih1XcU8Dsed/36pmpuCib4nRYePqHzhbY75tJFfauSMBvSKCiaEg6+CB5pjXbMD25ulxYJgeP+mPQjLo5JFXjfH6OvLuKjLRUseP3gO0GgH8KAwoZ1mc4DapUCVEAH1Bg0mMr8lBb7Nf3NnUIUtQYr3QSbj01wR6LA2ttLGO2ZNRl/h X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(82310400017)(1800799015)(36860700004)(376005); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8911 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF0000A7DE.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4edfaf9c-8e13-4404-39c3-08dc7a46b293 X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|82310400017|35042699013|376005|36860700004; X-Microsoft-Antispam-Message-Info: =?utf-8?q?hCIKC6MvuJfNAckgMWmEM220UK/y8pU?= =?utf-8?q?MKQS65PJGzqK76qrLLZjVfS/CDns6n3t82WeCtWKUfGAH5vK1VZrKDQ7j+x2g0V6f?= =?utf-8?q?aLrqHk+s8ju14lsCGA0kGzG5K0r4zSC2fZP9wFtLxHIO/6ispsHFXq2IjKM8i6NRu?= =?utf-8?q?ZNKKVTvN/WKk5/ehqMtjYucEMebgECtnfumwmo2bcH/X7QB9PY+M0evT+RQywuqE6?= =?utf-8?q?aRter1Wfd2xFKu8K96Vur3MC8D8j5wpwEy2O+6nZ3iWaHaxH2tCcqfoJdWrl8lWlS?= =?utf-8?q?aHOExj7cAwSbMW00rQnU8nbTbaK7eP6d3IfumSvaebxW6hvi07aKIlWOSCqFLyzAl?= =?utf-8?q?qngbNo7V9lC885M9xPTttdXvnDJ49oTe27MX3BN+NgrBaVJfR6z9Sp9jy+BPk/w/5?= =?utf-8?q?GJRHtDn/ZonNndVTn/S7Th4qkEIxTyAPmjlSO6HtGcVthNrmJB++CuLF3gl3QGUv8?= =?utf-8?q?mj4tECPfO5W0lz8DhMvvv7Vm6D4C+j4U61WUMlNBonpxuVqBkUxDNIhMPGh39O3ak?= =?utf-8?q?IVs78wshv8gxhYq0IH65umfm4GVoX0qFq0Hzu7Lo4sQDSlEH3OfWG6bazV0g8ICai?= =?utf-8?q?UloNx8OjiuoQtYor1KLvrZJgAu0ML5iaejTmd6XFjqd5JC8AG6ufPsnZk8b4XEDA2?= =?utf-8?q?ZMdOIId2H6r/Mz3JKQTyM7ZvGaqR8Fp8oCsaRqpwYMmtF6m2ggr9Cdm2GFt1IdxnJ?= =?utf-8?q?pPN9hAWP4u3BBZV0qJlvySiFxLvKLIG/ZZrzfjLyH26Q6XYPTxI3+xbu/wLPJ/w7H?= =?utf-8?q?xZA8nAQXd6fT0P3Ag14cQcLhMCTAWDD7yfXKueT40YjNISm0D+yTGWrNenrG09G4h?= =?utf-8?q?lrQ0lOxNIFaPJaXEkuTo0/vKqHmXclLjA1kKEJp2vayNnLYJFLKIn2rjnpmmpJE/F?= =?utf-8?q?W6gCuFo0ISdLu1zc3YJf4YcPQqJWD2gUI2xAysb/LRZWbOaUZpHBUSyiXkXGhn/46?= =?utf-8?q?RXwrcg8hhMJLne3HykHXycezWOEfKkhADmAUmWKGVUbvi9TxPi9huWXmigQc6Pkgm?= =?utf-8?q?BwWynphYpac+Y6JlB9kjkcDqDkBorIfED8l/S6YBnI6Vg6udhI/Hogmhp0OCesaZe?= =?utf-8?q?W6wYIYY3gZpx2me+AVCI7ddk2l11a0N46ohr8xwAZQg3CybaFMkjuxUoOwDFteLof?= =?utf-8?q?1PlLDBSLwOgEMW1S18nSUFgRdYxg4Z2n6JQjgPgqT5hcodpbVfIvUqFYsYCYsWjr9?= =?utf-8?q?/jj/KYMsIm38A+MkvUH5yIVW52fZqx+oA63+8f7bTSGSUwtKXHBhMwQFlKKJbSq1j?= =?utf-8?q?M5rxSp2JLJeH4Q+vaC7sdHKAn4dvuT7rHVfDuQro0cPmfdqQ70Z2fYmGm2crfhDeL?= =?utf-8?q?ywIA4/8nVCE/?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(1800799015)(82310400017)(35042699013)(376005)(36860700004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 10:05:32.3402 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 575d8625-2e53-490c-ccb6-08dc7a46b76e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF0000A7DE.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6376 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Hi, This patch adds missing contraints to FEAT_B16B16 sve2 instructions bfclamp, bfmla and bfmls and add negative tests for all the bfloat instructions. Regression tested for aarch64-none-elf target and found no regressions. Ok for binutils-master? Regards, Srinath. --- gas/testsuite/gas/aarch64/bfloat16-1.d | 6 + gas/testsuite/gas/aarch64/bfloat16-1.s | 7 +- .../gas/aarch64/bfloat16-2-invalid.d | 4 + .../gas/aarch64/bfloat16-2-invalid.l | 265 ++++++++++++++++++ .../gas/aarch64/bfloat16-2-invalid.s | 147 ++++++++++ gas/testsuite/gas/aarch64/bfloat16-bad.l | 3 + gas/testsuite/gas/aarch64/bfloat16-invalid.d | 2 +- gas/testsuite/gas/aarch64/bfloat16-invalid.l | 17 +- gas/testsuite/gas/aarch64/bfloat16-invalid.s | 9 +- opcodes/aarch64-tbl.h | 46 +-- 10 files changed, 468 insertions(+), 38 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/bfloat16-2-invalid.d create mode 100644 gas/testsuite/gas/aarch64/bfloat16-2-invalid.l create mode 100644 gas/testsuite/gas/aarch64/bfloat16-2-invalid.s diff --git a/gas/testsuite/gas/aarch64/bfloat16-1.d b/gas/testsuite/gas/aarch64/bfloat16-1.d index 4f1df804d64..51f7e6cab20 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-1.d +++ b/gas/testsuite/gas/aarch64/bfloat16-1.d @@ -104,3 +104,9 @@ .*: 65020604 bfsub z4.h, z16.h, z2.h .*: 65010688 bfsub z8.h, z20.h, z1.h .*: 65000710 bfsub z16.h, z24.h, z0.h +.*: 0420bca3 movprfx z3, z5 +.*: 64302483 bfclamp z3.h, z4.h, z16.h +.*: 0420bca3 movprfx z3, z5 +.*: 647e0a03 bfmla z3.h, z16.h, z6.h\[7\] +.*: 0420bca3 movprfx z3, z5 +.*: 647e0e03 bfmls z3.h, z16.h, z6.h\[7\] diff --git a/gas/testsuite/gas/aarch64/bfloat16-1.s b/gas/testsuite/gas/aarch64/bfloat16-1.s index b8969139145..be8fee9fcc8 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-1.s +++ b/gas/testsuite/gas/aarch64/bfloat16-1.s @@ -110,4 +110,9 @@ bfsub z4.h, z16.h, z2.h bfsub z8.h, z20.h, z1.h bfsub z16.h, z24.h, z0.h - +movprfx z3, z5 +bfclamp z3.h, z4.h, z16.h +movprfx z3, z5 +bfmla z3.h, z16.h, z6.h[7] +movprfx z3, z5 +bfmls z3.h, z16.h, z6.h[7] diff --git a/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d new file mode 100644 index 00000000000..1cd27454d42 --- /dev/null +++ b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d @@ -0,0 +1,4 @@ +#name: Test Bfloat16 instructions with wrong operand combinations +#as: -march=armv9.4-a+b16b16 +#source: bfloat16-2-invalid.s +#error_output: bfloat16-2-invalid.l diff --git a/gas/testsuite/gas/aarch64/bfloat16-2-invalid.l b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.l new file mode 100644 index 00000000000..5da96c72ae5 --- /dev/null +++ b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.l @@ -0,0 +1,265 @@ +.*: Assembler messages: +.*: Error: operand mismatch -- `bfadd z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfadd z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfadd z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfadd z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfadd z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfadd z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfadd z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfadd z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfmax z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmax z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmax z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmax z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfmax z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfmax z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfmax z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmax z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmax z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfmax z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmax z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfmax z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfmaxnm z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmaxnm z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmaxnm z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmaxnm z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfmaxnm z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfmaxnm z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfmaxnm z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmaxnm z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmaxnm z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfmaxnm z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmaxnm z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfmaxnm z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfmin z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmin z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmin z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmin z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfmin z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfmin z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfmin z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmin z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmin z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfmin z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmin z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfmin z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfminnm z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfminnm z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfminnm z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfminnm z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfminnm z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfminnm z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfminnm z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfminnm z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfminnm z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfminnm z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfminnm z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfminnm z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfmla z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmla z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfmla z0.h,p8/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfmla z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmla z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmla z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfmla z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfmls z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmls z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfmls z0.h,p8/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfmls z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmls z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmls z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfmls z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfmul z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmul z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfmul z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfmul z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfmul z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmul z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfmul z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfmul z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfsub z0.s,p0/m,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfsub z0.h,p0/z,z0.h,z16.h' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, p0/m, z0.h, z16.h +.*: Error: p0-p7 expected at operand 2 -- `bfsub z0.h,p8/m,z0.h,z16.h' +.*: Error: operand 3 must be the same register as operand 1 -- `bfsub z31.h,p0/m,z0.h,z16.h' +.*: Error: operand mismatch -- `bfsub z0.h,p0/z,z0.s,z16.h' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfsub z0.h,p0/z,z0.h,z16.d' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, p0/m, z0.h, z16.h +.*: Error: operand mismatch -- `bfsub z31.d,p7/m,z31.d,z31.d' +.*: Info: did you mean this\? +.*: Info: bfsub z31.h, p7/m, z31.h, z31.h +.*: Error: operand mismatch -- `bfadd z0.b,z0.h,z0.h' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfadd z0.s,z0.h,z0.h' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfadd z0.h,z0.d,z0.h' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfadd z0.h,z0.h,z0.b' +.*: Info: did you mean this\? +.*: Info: bfadd z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfadd z31.b,z31.s,z31.d' +.*: Info: did you mean this\? +.*: Info: bfadd z31.h, z31.h, z31.h +.*: Error: expected an SVE vector register at operand 1 -- `bfadd {z0.h},z0.h,z0.h' +.*: Error: expected an SVE vector register at operand 1 -- `bfadd {z0.h-z0.h},z0.h' +.*: Error: comma expected between operands at operand 3 -- `bfadd z0.h,z0.h' +.*: Error: operand mismatch -- `bfclamp z0.b,z0.h,z0.h' +.*: Info: did you mean this\? +.*: Info: bfclamp z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfclamp z0.s,z0.h,z0.h' +.*: Info: did you mean this\? +.*: Info: bfclamp z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfclamp z0.h,z0.d,z0.h' +.*: Info: did you mean this\? +.*: Info: bfclamp z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfclamp z0.h,z0.h,z0.b' +.*: Info: did you mean this\? +.*: Info: bfclamp z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfclamp z31.b,z31.s,z31.d' +.*: Info: did you mean this\? +.*: Info: bfclamp z31.h, z31.h, z31.h +.*: Error: expected an SVE vector register at operand 1 -- `bfclamp {z0.h},z0.h,z0.h' +.*: Error: expected an SVE vector register at operand 1 -- `bfclamp {z0.h-z0.h},z0.h' +.*: Error: comma expected between operands at operand 3 -- `bfclamp z0.h,z0.h' +.*: Error: operand mismatch -- `bfmla z0.b,z0.h,z0.h\[0\]' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, z0.h, z0.h\[0\] +.*: Error: operand mismatch -- `bfmla z0.s,z0.h,z0.h\[6\]' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, z0.h, z0.h\[6\] +.*: Error: operand mismatch -- `bfmla z0.h,z0.d,z0.h\[8\]' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, z0.h, z0.h\[8\] +.*: Error: operand mismatch -- `bfmla z0.h,z0.h,z0.b\[2\]' +.*: Info: did you mean this\? +.*: Info: bfmla z0.h, z0.h, z0.h\[2\] +.*: Error: operand mismatch -- `bfmla z31.b,z31.s,z31.d\[8\]' +.*: Info: did you mean this\? +.*: Info: bfmla z31.h, z31.h, z31.h\[8\] +.*: Error: expected an SVE vector register at operand 1 -- `bfmla {z0.h},z0.h,z0.h\[1\]' +.*: Error: expected an SVE vector register at operand 1 -- `bfmla {z0.h-z0.h},z0.h\[2\]' +.*: Error: expected an SVE predicate register at operand 2 -- `bfmla z0.h,z0.h\[3\]' +.*: Error: operand mismatch -- `bfmls z0.b,z0.h,z0.h\[0\]' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, z0.h, z0.h\[0\] +.*: Error: operand mismatch -- `bfmls z0.s,z0.h,z0.h\[6\]' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, z0.h, z0.h\[6\] +.*: Error: operand mismatch -- `bfmls z0.h,z0.d,z0.h\[8\]' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, z0.h, z0.h\[8\] +.*: Error: operand mismatch -- `bfmls z0.h,z0.h,z0.b\[2\]' +.*: Info: did you mean this\? +.*: Info: bfmls z0.h, z0.h, z0.h\[2\] +.*: Error: operand mismatch -- `bfmls z31.b,z31.s,z31.d\[8\]' +.*: Info: did you mean this\? +.*: Info: bfmls z31.h, z31.h, z31.h\[8\] +.*: Error: expected an SVE vector register at operand 1 -- `bfmls {z0.h},z0.h,z0.h\[1\]' +.*: Error: expected an SVE vector register at operand 1 -- `bfmls {z0.h-z0.h},z0.h\[2\]' +.*: Error: expected an SVE predicate register at operand 2 -- `bfmls z0.h,z0.h\[3\]' +.*: Error: operand mismatch -- `bfmul z0.b,z0.h,z0.h\[0\]' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, z0.h, z0.h\[0\] +.*: Error: operand mismatch -- `bfmul z0.s,z0.h,z0.h\[6\]' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, z0.h, z0.h\[6\] +.*: Error: operand mismatch -- `bfmul z0.h,z0.d,z0.h\[8\]' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, z0.h, z0.h\[8\] +.*: Error: operand mismatch -- `bfmul z0.h,z0.h,z0.b\[2\]' +.*: Info: did you mean this\? +.*: Info: bfmul z0.h, z0.h, z0.h\[2\] +.*: Error: operand mismatch -- `bfmul z31.b,z31.s,z31.d\[8\]' +.*: Info: did you mean this\? +.*: Info: bfmul z31.h, z31.h, z31.h\[8\] +.*: Error: expected an SVE vector register at operand 1 -- `bfmul {z0.h},z0.h,z0.h\[1\]' +.*: Error: expected an SVE vector register at operand 1 -- `bfmul {z0.h-z0.h},z0.h\[2\]' +.*: Error: expected an SVE predicate register at operand 2 -- `bfmul z0.h,z0.h\[3\]' +.*: Error: operand mismatch -- `bfsub z0.b,z0.h,z0.h' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfsub z0.s,z0.h,z0.h' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfsub z0.h,z0.d,z0.h' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfsub z0.h,z0.h,z0.b' +.*: Info: did you mean this\? +.*: Info: bfsub z0.h, z0.h, z0.h +.*: Error: operand mismatch -- `bfsub z31.b,z31.s,z31.d' +.*: Info: did you mean this\? +.*: Info: bfsub z31.h, z31.h, z31.h +.*: Error: expected an SVE vector register at operand 1 -- `bfsub {z0.h},z0.h,z0.h' +.*: Error: expected an SVE vector register at operand 1 -- `bfsub {z0.h-z0.h},z0.h' +.*: Error: comma expected between operands at operand 3 -- `bfsub z0.h,z0.h' +.*: Warning: output register of preceding `movprfx' expected as output at operand 1 -- `bfclamp z1.h,z3.h,z16.h' +.*: Warning: output register of preceding `movprfx' not used in current instruction at operand 1 -- `bfmla z10.h,z16.h,z3.h\[7\]' +.*: Warning: output register of preceding `movprfx' expected as output at operand 1 -- `bfmls z1.h,z3.h,z3.h\[7\]' +.*: Warning: instruction opens new dependency sequence without ending previous one -- `movprfx z4,z5' +.*: Warning: output register of preceding `movprfx' expected as output at operand 1 -- `bfclamp z2.h,z3.h,z4.h' diff --git a/gas/testsuite/gas/aarch64/bfloat16-2-invalid.s b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.s new file mode 100644 index 00000000000..d690f121bdf --- /dev/null +++ b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.s @@ -0,0 +1,147 @@ +bfadd z0.s, p0/m, z0.h, z16.h +bfadd z0.h, p0/z, z0.h, z16.h +bfadd z0.h, p8/m, z0.h, z16.h +bfadd z31.h, p0/m, z0.h, z16.h +bfadd z0.h, p0/z, z0.s, z16.h +bfadd z0.h, p0/z, z0.h, z16.d +bfadd z31.d, p7/m, z31.d, z31.d + +bfmax z0.s, p0/m, z0.h, z16.h +bfmax z0.h, p0/z, z0.h, z16.h +bfmax z0.h, p8/m, z0.h, z16.h +bfmax z31.h, p0/m, z0.h, z16.h +bfmax z0.h, p0/z, z0.s, z16.h +bfmax z0.h, p0/z, z0.h, z16.d +bfmax z31.d, p7/m, z31.d, z31.d + +bfmaxnm z0.s, p0/m, z0.h, z16.h +bfmaxnm z0.h, p0/z, z0.h, z16.h +bfmaxnm z0.h, p8/m, z0.h, z16.h +bfmaxnm z31.h, p0/m, z0.h, z16.h +bfmaxnm z0.h, p0/z, z0.s, z16.h +bfmaxnm z0.h, p0/z, z0.h, z16.d +bfmaxnm z31.d, p7/m, z31.d, z31.d + +bfmin z0.s, p0/m, z0.h, z16.h +bfmin z0.h, p0/z, z0.h, z16.h +bfmin z0.h, p8/m, z0.h, z16.h +bfmin z31.h, p0/m, z0.h, z16.h +bfmin z0.h, p0/z, z0.s, z16.h +bfmin z0.h, p0/z, z0.h, z16.d +bfmin z31.d, p7/m, z31.d, z31.d + +bfminnm z0.s, p0/m, z0.h, z16.h +bfminnm z0.h, p0/z, z0.h, z16.h +bfminnm z0.h, p8/m, z0.h, z16.h +bfminnm z31.h, p0/m, z0.h, z16.h +bfminnm z0.h, p0/z, z0.s, z16.h +bfminnm z0.h, p0/z, z0.h, z16.d +bfminnm z31.d, p7/m, z31.d, z31.d + +bfmla z0.s, p0/m, z0.h, z16.h +bfmla z0.h, p0/z, z0.h, z16.h +bfmla z0.h, p8/m, z0.h, z16.h +bfmla z31.h, p0/m, z0.h, z16.h +bfmla z0.h, p0/z, z0.s, z16.h +bfmla z0.h, p0/z, z0.h, z16.d +bfmla z31.d, p7/m, z31.d, z31.d + +bfmls z0.s, p0/m, z0.h, z16.h +bfmls z0.h, p0/z, z0.h, z16.h +bfmls z0.h, p8/m, z0.h, z16.h +bfmls z31.h, p0/m, z0.h, z16.h +bfmls z0.h, p0/z, z0.s, z16.h +bfmls z0.h, p0/z, z0.h, z16.d +bfmls z31.d, p7/m, z31.d, z31.d + +bfmul z0.s, p0/m, z0.h, z16.h +bfmul z0.h, p0/z, z0.h, z16.h +bfmul z0.h, p8/m, z0.h, z16.h +bfmul z31.h, p0/m, z0.h, z16.h +bfmul z0.h, p0/z, z0.s, z16.h +bfmul z0.h, p0/z, z0.h, z16.d +bfmul z31.d, p7/m, z31.d, z31.d + +bfsub z0.s, p0/m, z0.h, z16.h +bfsub z0.h, p0/z, z0.h, z16.h +bfsub z0.h, p8/m, z0.h, z16.h +bfsub z31.h, p0/m, z0.h, z16.h +bfsub z0.h, p0/z, z0.s, z16.h +bfsub z0.h, p0/z, z0.h, z16.d +bfsub z31.d, p7/m, z31.d, z31.d + +bfadd z0.b, z0.h, z0.h +bfadd z31.h, z0.h, z0.h +bfadd z0.s, z0.h, z0.h +bfadd z0.h, z0.d, z0.h +bfadd z0.h, z0.h, z0.b +bfadd z31.b, z31.s, z31.d +bfadd {z0.h}, z0.h, z0.h +bfadd {z0.h - z0.h}, z0.h +bfadd z0.h, z0.h + +bfclamp z0.b, z0.h, z0.h +bfclamp z31.h, z0.h, z0.h +bfclamp z0.s, z0.h, z0.h +bfclamp z0.h, z0.d, z0.h +bfclamp z0.h, z0.h, z0.b +bfclamp z31.b, z31.s, z31.d +bfclamp {z0.h}, z0.h, z0.h +bfclamp {z0.h - z0.h}, z0.h +bfclamp z0.h, z0.h + +bfmla z0.b, z0.h, z0.h[0] +bfmla z31.h, z0.h, z0.h[3] +bfmla z0.s, z0.h, z0.h[6] +bfmla z0.h, z0.d, z0.h[8] +bfmla z0.h, z0.h, z0.b[2] +bfmla z31.b, z31.s, z31.d[8] +bfmla {z0.h}, z0.h, z0.h[1] +bfmla {z0.h - z0.h}, z0.h[2] +bfmla z0.h, z0.h[3] + +bfmls z0.b, z0.h, z0.h[0] +bfmls z31.h, z0.h, z0.h[3] +bfmls z0.s, z0.h, z0.h[6] +bfmls z0.h, z0.d, z0.h[8] +bfmls z0.h, z0.h, z0.b[2] +bfmls z31.b, z31.s, z31.d[8] +bfmls {z0.h}, z0.h, z0.h[1] +bfmls {z0.h - z0.h}, z0.h[2] +bfmls z0.h, z0.h[3] + +bfmul z0.b, z0.h, z0.h[0] +bfmul z31.h, z0.h, z0.h[3] +bfmul z0.s, z0.h, z0.h[6] +bfmul z0.h, z0.d, z0.h[8] +bfmul z0.h, z0.h, z0.b[2] +bfmul z31.b, z31.s, z31.d[8] +bfmul {z0.h}, z0.h, z0.h[1] +bfmul {z0.h - z0.h}, z0.h[2] +bfmul z0.h, z0.h[3] + +bfsub z0.b, z0.h, z0.h +bfsub z31.h, z0.h, z0.h +bfsub z0.s, z0.h, z0.h +bfsub z0.h, z0.d, z0.h +bfsub z0.h, z0.h, z0.b +bfsub z31.b, z31.s, z31.d +bfsub {z0.h}, z0.h, z0.h +bfsub {z0.h - z0.h}, z0.h +bfsub z0.h, z0.h + +bfmla z0.h, p0/m, z4.h, z16.h +movprfx z3, z5 +bfclamp z1.h, z3.h, z16.h + +movprfx z3, z5 +bfmla z10.h, z16.h, z3.h[7] + +movprfx z3, z5 +bfmls z1.h, z3.h, z3.h[7] + +movprfx z2, z3 +movprfx z4, z5 +bfclamp z2.h, z3.h, z4.h +bfmla z4.h, z5.h, z6.h[7] +bfmls z3.h, z1.h, z4.h[7] diff --git a/gas/testsuite/gas/aarch64/bfloat16-bad.l b/gas/testsuite/gas/aarch64/bfloat16-bad.l index 1519a2921f3..d4098bf7e8d 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-bad.l +++ b/gas/testsuite/gas/aarch64/bfloat16-bad.l @@ -95,3 +95,6 @@ .*: Error: selected processor does not support `bfsub z4.h,z16.h,z2.h' .*: Error: selected processor does not support `bfsub z8.h,z20.h,z1.h' .*: Error: selected processor does not support `bfsub z16.h,z24.h,z0.h' +.*: Error: selected processor does not support `bfclamp z3.h,z4.h,z16.h' +.*: Error: selected processor does not support `bfmla z3.h,z16.h,z6.h\[7\]' +.*: Error: selected processor does not support `bfmls z3.h,z16.h,z6.h\[7\]' diff --git a/gas/testsuite/gas/aarch64/bfloat16-invalid.d b/gas/testsuite/gas/aarch64/bfloat16-invalid.d index 8f24dc62083..02e3e8d8e3d 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-invalid.d +++ b/gas/testsuite/gas/aarch64/bfloat16-invalid.d @@ -1,4 +1,4 @@ -#name: Test Bfloat16 instructions with wrong operand combinations +#name: Negative test with missing +b16b16 bfloat16 flag. #as: -march=armv9.4-a #source: bfloat16-invalid.s #error_output: bfloat16-invalid.l diff --git a/gas/testsuite/gas/aarch64/bfloat16-invalid.l b/gas/testsuite/gas/aarch64/bfloat16-invalid.l index 0b1354a899e..87e5125e19a 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-invalid.l +++ b/gas/testsuite/gas/aarch64/bfloat16-invalid.l @@ -1,8 +1,11 @@ .*: Assembler messages: -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfadd .* -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmax .* -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmaxnm .* -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmin .* -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfminnm .* -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfmul .* -[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfsub .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfadd .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfmax .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfmaxnm .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfmin .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfminnm .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfmul .* +.*: Error: operand 3 must be the same register as operand 1 -- `bfsub .* +.*: Error: selected processor does not support `bfclamp z3.h,z4.h,z16.h' +.*: Error: selected processor does not support `bfmla z3.h,z16.h,z6.h\[7\]' +.*: Error: selected processor does not support `bfmls z3.h,z16.h,z6.h\[7\]' diff --git a/gas/testsuite/gas/aarch64/bfloat16-invalid.s b/gas/testsuite/gas/aarch64/bfloat16-invalid.s index a5bdfc81a91..aa66fe6f4ee 100644 --- a/gas/testsuite/gas/aarch64/bfloat16-invalid.s +++ b/gas/testsuite/gas/aarch64/bfloat16-invalid.s @@ -1,13 +1,10 @@ bfadd z0.h, p0/m, z1.h, z0.h - bfmax z0.h, p0/m, z1.h, z0.h - bfmaxnm z0.h, p0/m, z1.h, z0.h - bfmin z0.h, p0/m, z1.h, z0.h - bfminnm z0.h, p0/m, z1.h, z0.h - bfmul z0.h, p0/m, z1.h, z0.h - bfsub z0.h, p0/m, z1.h, z0.h +bfclamp z3.h,z4.h,z16.h +bfmla z3.h,z16.h,z6.h[7] +bfmls z3.h,z16.h,z6.h[7] diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 100ae0bb1aa..18d84af9ce2 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -2687,8 +2687,8 @@ static const aarch64_feature_set aarch64_feature_the = AARCH64_FEATURE (THE); static const aarch64_feature_set aarch64_feature_d128_the = AARCH64_FEATURES (2, D128, THE); -static const aarch64_feature_set aarch64_feature_b16b16 = - AARCH64_FEATURE (B16B16); +static const aarch64_feature_set aarch64_feature_b16b16_sve2 = + AARCH64_FEATURES (2, B16B16, SVE2); static const aarch64_feature_set aarch64_feature_sme2p1 = AARCH64_FEATURE (SME2p1); static const aarch64_feature_set aarch64_feature_sve2p1 = @@ -2774,7 +2774,7 @@ static const aarch64_feature_set aarch64_feature_fp8_sme2 = #define D128 &aarch64_feature_d128 #define THE &aarch64_feature_the #define D128_THE &aarch64_feature_d128_the -#define B16B16 &aarch64_feature_b16b16 +#define B16B16_SVE2 &aarch64_feature_b16b16_sve2 #define SME2p1 &aarch64_feature_sme2p1 #define SVE2p1 &aarch64_feature_sve2p1 #define RCPC3 &aarch64_feature_rcpc3 @@ -2858,11 +2858,11 @@ static const aarch64_feature_set aarch64_feature_fp8_sme2 = #define SVE2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2, OPS, QUALS, \ FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } -#define B16B16_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ - { NAME, OPCODE, MASK, CLASS, OP, B16B16, OPS, QUALS, \ +#define B16B16_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ + { NAME, OPCODE, MASK, CLASS, OP, B16B16_SVE2, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } -#define B16B16_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ - { NAME, OPCODE, MASK, CLASS, OP, B16B16, OPS, QUALS, \ +#define B16B16_SVE2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ + { NAME, OPCODE, MASK, CLASS, OP, B16B16_SVE2, OPS, QUALS, \ FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } #define SVE2p1_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2p1, OPS, QUALS, \ @@ -6435,22 +6435,22 @@ const struct aarch64_opcode aarch64_opcode_table[] = D128_THE_INSN("rcwsswppl", 0x5960a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0), /* BFloat16 SVE Instructions. */ - B16B16_INSNC("bfadd", 0x65008000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSNC("bfmax", 0x65068000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSNC("bfmaxnm", 0x65048000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSNC("bfmin", 0x65078000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSNC("bfminnm", 0x65058000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSNC("bfmla", 0x65200000, 0xffe0e000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), - B16B16_INSNC("bfmls", 0x65202000, 0xffe0e000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), - B16B16_INSNC("bfmul", 0x65028000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSNC("bfsub", 0x65018000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), - B16B16_INSN("bfadd", 0x65000000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), - B16B16_INSN("bfclamp", 0x64202400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), - B16B16_INSN("bfmul", 0x65000800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), - B16B16_INSN("bfsub", 0x65000400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), - B16B16_INSN("bfmla", 0x64200800, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, 0), - B16B16_INSN("bfmls", 0x64200c00, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, 0), - B16B16_INSN("bfmul", 0x64202800, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, 0), + B16B16_SVE2_INSNC("bfadd", 0x65008000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfmax", 0x65068000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfmaxnm", 0x65048000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfmin", 0x65078000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfminnm", 0x65058000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfmla", 0x65200000, 0xffe0e000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), + B16B16_SVE2_INSNC("bfmls", 0x65202000, 0xffe0e000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zn, SVE_Zm_16), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 0), + B16B16_SVE2_INSNC("bfmul", 0x65028000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfsub", 0x65018000, 0xffffe000, sve_misc, 0, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_SMSS, 0, C_SCAN_MOVPRFX, 2), + B16B16_SVE2_INSNC("bfclamp", 0x64202400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, C_SCAN_MOVPRFX, 0), + B16B16_SVE2_INSNC("bfmla", 0x64200800, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, C_SCAN_MOVPRFX, 0), + B16B16_SVE2_INSNC("bfmls", 0x64200c00, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, C_SCAN_MOVPRFX, 0), + B16B16_SVE2_INSN("bfadd", 0x65000000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), + B16B16_SVE2_INSN("bfmul", 0x65000800, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), + B16B16_SVE2_INSN("bfsub", 0x65000400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_HHH, 0, 0), + B16B16_SVE2_INSN("bfmul", 0x64202800, 0xffa0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm3_22_INDEX), OP_SVE_VVV_H, 0, 0), /* SME2.1 movaz instructions. */ SME2p1_INSN ("movaz", 0xc0060600, 0xffff1f83, sme2_movaz, 0, OP2 (SME_Zdnx4, SME_ZA_array_vrsb_2), OP_SVE_BB, 0, 0),