From patchwork Fri Sep 15 08:49:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 76108 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 8876D385840C for ; Fri, 15 Sep 2023 08:50:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8876D385840C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1694767821; bh=In4EbmEwIY8LqRxIhsKilKClMWQo3yittxI6QamXKV0=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=aBJPBsDlie6hF1RetXN2rqukNTzucJpRs6jCaNW9ycHK0orBOme0dUJcpNOjvKxfi OnioHa/tdFWEsUGnjXK3YVGRqdKzV8vDCn0kFzx4LirBLVwAvh+YDXRx59k1Yg3aQi 9kymqrJbixGadMVkFqrKhEnXYCiUb5CAUhNiDJ2s= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2084.outbound.protection.outlook.com [40.107.8.84]) by sourceware.org (Postfix) with ESMTPS id 1516D385CC83 for ; Fri, 15 Sep 2023 08:49:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1516D385CC83 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BUlMdQ1QHKZ2uXLzo+/OFn3gzTT+amZJkWOgEomDi9Bo7lFNL8ApMVD/ZY7tPji+I9GOQFwGrfxvcgF7s3UmPgZ6ci7nkmhkQgopqzKGI/SNE2Tc03aCA/75/fDAFOXNoJNGVLYHAGOsO/Nh7LI0IXeNHYNL60Qlqs5Wtp25N2PQSjKr6ExGI9H36xYIWmECXkrnVQMHRV60uWz68cpyNQikQCuCnQFXyfJMeuQPfehkxmsrM/2wYJHAyKj9UdMujkA/7auaP5/bLU/W7ZwMXPxTrv8o7MbYoFkA+r9gSUpYwHA0ZZeNzJtwm1G7UW1uuUZF2xZoMIaWEZhMc7hukQ== 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=In4EbmEwIY8LqRxIhsKilKClMWQo3yittxI6QamXKV0=; b=agLP6h1PgXB3LnzGNPqs6XWqrNOy5AAEEVkNVIot9Rhg1K060PKrJhd9IBUfmJnDb6HVUVkMd3Nojgc+YGm5f+ys42vmsALWqtgp3diz0ZcHIqMnc2I3RDKhOhRO1YljRJ9CRFa8xHFN7CxGTi3WEm4GxWS+kf83cmPnO3U6LZ7su/jIUVtZXNbkeovlJ40KlaWdNl9gmxIUam33T8eKkjsysNXaLJIcUWuKA6BYCo1N/UJGR0b+mqGNeVifonjiPTjPTtR64Tn73Ity4utxe6G6/4osRY8bzH7yM+bl/FqBtgXD0/RCTY12cgRBfNBbMxcsFLeg9zTkOWC1aV6p9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by DBAPR04MB7320.eurprd04.prod.outlook.com (2603:10a6:10:1a8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.21; Fri, 15 Sep 2023 08:49:10 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::f749:b27f:2187:6654]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::f749:b27f:2187:6654%6]) with mapi id 15.20.6792.020; Fri, 15 Sep 2023 08:49:10 +0000 Message-ID: Date: Fri, 15 Sep 2023 10:49:09 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: [PATCH RFC 4/4] x86: fold F16C VEX and EVEX templates Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <0690c179-ac98-d127-5ff4-b5abb725b6ae@suse.com> In-Reply-To: <0690c179-ac98-d127-5ff4-b5abb725b6ae@suse.com> X-ClientProxiedBy: FR2P281CA0124.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::18) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DBAPR04MB7320:EE_ X-MS-Office365-Filtering-Correlation-Id: 131622e4-8c9c-4743-d9c4-08dbb5c8a13e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z+Z2RnpV9bnboCaTSVmo8oGda8x6xxO0KUS7bRgj6zFizHFONjaPG0dpJUdwJcIOLka7IMUQtJ5V/BOg/HKZQFAxYbrq0ZCK5TrwcP/MaKwLL0i4KOcJLRfZoEJElIGdqwYSHSIeLrj/3wTiMyYqk79OhxDNuhZ9uc9OW1dBez5NvhxHjEPXN6gmEaiNneSbiFiUpe6OsT+2gF+7BNkhmKkBRjOSgI3tY9PPC5Def0QHEZd7XnvdijNq3V9tR5i9mwacWsHJCKOxhDOSe2aBdlzXYNQMGdviSJ67U7B4WlPineqpqEBMJDrXPBJXKo2KVxxuax1LT4QG7wnx/mBEei2RvKNnnS2BbRq/ndVoP4Bs6nNBJE+G/ffIGIdy93TnGTq2fPjwWEzBw4mXTOP6nFz8PKcREtp90/3m4XCBC1E+cF00CBwvIBu0hV0h1parObdcNkNQf9JIO6iMEnExPCnSnPmjiRYebWnCiN8HgGRnxdz9rf/f5RIHy2woX1BmNfcZmNgDZ5C6JniOLvkc4k0f9IKQlu+QQz9E3xLWeKyKLumg88LLsstuPcuuAtD5dko/wm57g7GvNAaElU5joPaRzhxtLqk7aNGOYmmXEJCRkHV8OPPjqG2gyBD+JzYiZ6tkcE3stz47V5jC9Jm7zQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU2PR04MB8790.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(366004)(39860400002)(346002)(376002)(396003)(451199024)(1800799009)(186009)(6506007)(6486002)(36756003)(31696002)(86362001)(26005)(66946007)(6512007)(2906002)(66556008)(38100700002)(478600001)(2616005)(31686004)(5660300002)(66476007)(4326008)(316002)(6916009)(41300700001)(8936002)(8676002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?huqbE/2NPRpYl4nz7H+KouPaeifn?= =?utf-8?q?CPK5FFG90og6MjhdPDd0+G0wouehjLL81HshTqC3nXWH4tgveoC//3HJ+Po23vixF?= =?utf-8?q?QbjxAY1Bm4ceEcVfJhyc6TVTZomSKaPqpv0vDPxel50hLnw14trP4fbZmJjshbcqk?= =?utf-8?q?uB/TwESX64Scv7CR1MzN++oliUET2TULYC1L1+qn5cZeacX1ZRmn2CEaLsLeOSQQi?= =?utf-8?q?nv6PSeS7pqh0yDfd4n9fCnKXum8ZP6uR9wlSGKvJvqvIDR37dlrMQt0qeUA6Mu0zH?= =?utf-8?q?Fw4pY/3F/jRt08f69hFIhpMe9x6Jx7thkqnV/JRj7A2CaS26erAl+pnFFVGW/Ymr2?= =?utf-8?q?HwPdrUY5wkSP/WGVNNw/L5rUmkf24v8KONzvSnQ0BlyX2/KIbu6NuDbjGeUF8g74J?= =?utf-8?q?0xMeA7cDSh8jYZ+jiDHlG/FidoEXzkgjNRzB5QW9WWBjUWBRC8vc1OjpvGazsWXB/?= =?utf-8?q?4Nf/gGIgZ5l6ZxCzvEnI7jflNFl6i8NVqjMVICV7FuNv6gkxeorcwr7uITT1hbOIl?= =?utf-8?q?GgfywuZTb6r80rM45lLBVI4MBShgduycwxC2RcaxGmRG1wwcRwKh2lZndD6fFXhBp?= =?utf-8?q?Gd+JI35zUx6sl8KZW777T3g2Jq67awMJvrzuJRIYrFmoiAscqcMTk0LfOP+Muf6KK?= =?utf-8?q?1r3+Ntur0HbljV78CjIk713KlOlQHTcwzdKJ9NHemce0nPMj4FKu+rUxMbvJvZgYQ?= =?utf-8?q?9zDbLT0Rfb9Y0ieC5ngYmWmt7+JRL9ODcf6uyISBzseagqUURC9RyYcruHwgExAsp?= =?utf-8?q?NynyhprBe7GtXyC8FIlXqBsQN92dIU1T/8zRz0cEkkcxJPEceM0O9fDcmpxbOppou?= =?utf-8?q?oqN17ujaIMZuWNbr31fN901DC5i7MaEAetfyNN2ojWFbklo5HLcgH9gtXmu5nsFH4?= =?utf-8?q?2BTLqREkGqoz7erKViwOZ0gViiWsupNplcJcHPckB2iEbpEVtzS7TcnNzjidibeWj?= =?utf-8?q?/2KTrvquwsO+8jdYC5wjMxVGSRjHc9SzlqivakmegORy4e8brZXaQR6+0YWaSqnW5?= =?utf-8?q?nthxoTmrMgrj2B1V/ozLCkDme3ip5srhFv9re1ugMegnY0LGfwqvjE2F8nOhZWz41?= =?utf-8?q?v7J9PhWjgplpiUk2NPFQb5S+TC3RNwSpu0E4iEqHJm+tgz+yE1ESffBFAfLIBK4Mf?= =?utf-8?q?+HlqkEM46gRp9+6Z8YuwTCciMRvohNa+LsO0qqbYjpxdco2UB8dcqHtzDJiz1eTKj?= =?utf-8?q?KVuGAgstGqJJ7rsEsgWNqr2mhOL+lHEW40PIewV5DppQEYzcCzhkptcEUJmqxswTz?= =?utf-8?q?CEXICG6AL0BD8J2VQZKN/8Ma2A7oLet+0fJHh1I7+UzKzgwKJ+Ltm/fZYdBdKxRaG?= =?utf-8?q?a6AxOdxo7LXheGybztcgkj3LRVK04iZw1yo3INjpCZivfnkS8VrMGMAmDoJ7U1RQR?= =?utf-8?q?scrxcPI21Jt25+Ket7FTit5sHtJguiIJWte34OlhjmAOkGQwD9g0gUUAWl8Nk3Uyy?= =?utf-8?q?IHaGmnOTxfGzzeFwMT8dw9HlgaKq5FD6kKKd/b0Ap6TIaFinXF/+wpn1yUGw4xSOC?= =?utf-8?q?dyRcz6QUAdNy?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 131622e4-8c9c-4743-d9c4-08dbb5c8a13e X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2023 08:49:10.7391 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PVuCFpP2X0XfAGptVgEYylefSCHSd+o7aP/TB//OPuv9SwpSa2OX6RMbSNakdGszHF+JR49ajx6JlDyNsZ5KjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7320 X-Spam-Status: No, score=-3026.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org 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: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" Following the folding of some generic AVX/AVX2 templates with their AVX512F counterpart ones, do this for F16C ones as well, requiring one further adjustment to cpu_flags_match(). Note that this has a perhaps unexpected effect, resulting from F16C not being listed as a prereq of AVX512F: With just the latter enabled, VEX-encodings can now be emitted (but still not 128- or 256-bit EVEX-encodings, where AVX512VL of course continues to be required). --- RFC: Considering earlier discussion, the mentioned side effect likely means we don't really want this change. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1949,6 +1949,8 @@ cpu_flags_match (const insn_template *t) : cpu.bitfield.cpuavx) && (!x.bitfield.cpufma || cpu.bitfield.cpufma || cpu_arch_flags.bitfield.cpuavx512f) + && (!x.bitfield.cpuf16c || cpu.bitfield.cpuf16c + || cpu_arch_flags.bitfield.cpuavx512f) && (!x.bitfield.cpugfni || cpu.bitfield.cpugfni) && (!x.bitfield.cpuvaes || cpu.bitfield.cpuvaes) && (!x.bitfield.cpuvpclmulqdq || cpu.bitfield.cpuvpclmulqdq)) --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1793,10 +1793,10 @@ rdgsbase, 0xf30fae/1, FSGSBase, Modrm|Ig rdrand, 0xfc7/6, RdRnd, Modrm|NoSuf, { Reg16|Reg32|Reg64 } wrfsbase, 0xf30fae/2, FSGSBase, Modrm|IgnoreSize|NoSuf, { Reg32|Reg64 } wrgsbase, 0xf30fae/3, FSGSBase, Modrm|IgnoreSize|NoSuf, { Reg32|Reg64 } -vcvtph2ps, 0x6613, F16C, Modrm|Vex|Space0F38|VexW0|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -vcvtph2ps, 0x6613, F16C, Modrm|Vex=2|Space0F38|VexW=1|NoSuf, { Unspecified|BaseIndex|RegXMM, RegYMM } -vcvtps2ph, 0x661d, F16C, Modrm|Vex|Space0F3A|VexW0|NoSuf, { Imm8, RegXMM, Qword|Unspecified|BaseIndex|RegXMM } -vcvtps2ph, 0x661d, F16C, Modrm|Vex=2|Space0F3A|VexW=1|NoSuf, { Imm8, RegYMM, Unspecified|BaseIndex|RegXMM } +vcvtph2ps, 0x6613, F16C|AVX|AVX512F|AVX512VL, Modrm|Vex128|EVex128|Masking|Space0F38|VexW0|Disp8MemShift=3|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM } +vcvtph2ps, 0x6613, F16C|AVX|AVX512F|AVX512VL, Modrm|Vex256|EVex256|Masking|Space0F38|VexW0|Disp8MemShift=4|NoSuf, { RegXMM|Unspecified|BaseIndex, RegYMM } +vcvtps2ph, 0x661D, F16C|AVX|AVX512F|AVX512VL, Modrm|Vex128|EVex128|Masking|Space0F3A|VexW0|Disp8MemShift=3|NoSuf, { Imm8, RegXMM, RegXMM|Qword|Unspecified|BaseIndex } +vcvtps2ph, 0x661D, F16C|AVX|AVX512F|AVX512VL, Modrm|Vex256|EVex256|Masking|Space0F3A|VexW0|Disp8MemShift=4|NoSuf, { Imm8, RegYMM, RegXMM|Unspecified|BaseIndex } // FMA instructions @@ -2525,15 +2525,9 @@ vcvtdq2pd, 0xF3E6, AVX512F|AVX512VL, Mod vcvtudq2pd, 0xF37A, AVX512F|AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM } vcvtudq2pd, 0xF37A, AVX512F|AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM } -vcvtph2ps, 0x6613, AVX512F|AVX512VL, Modrm|EVex=2|Masking|Space0F38|VexW0|Disp8MemShift=3|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM } -vcvtph2ps, 0x6613, AVX512F|AVX512VL, Modrm|EVex=3|Masking|Space0F38|VexW=1|Disp8MemShift=4|NoSuf, { RegXMM|Unspecified|BaseIndex, RegYMM } - vcvtps2pd, 0x5A, AVX512F|AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM } vcvtps2pd, 0x5A, AVX512F|AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM } -vcvtps2ph, 0x661D, AVX512F|AVX512VL, Modrm|EVex128|Masking|Space0F3A|VexW0|Disp8MemShift=3|NoSuf, { Imm8, RegXMM, RegXMM|Qword|Unspecified|BaseIndex } -vcvtps2ph, 0x661D, AVX512F|AVX512VL, Modrm|EVex256|Masking|Space0F3A|VexW0|Disp8MemShift=4|NoSuf, { Imm8, RegYMM, RegXMM|Unspecified|BaseIndex } - vmovddup, 0xF212, AVX512F|AVX512VL, Modrm|EVex=2|Masking|Space0F|VexW1|Disp8MemShift=3|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM } vpmovdb, 0xF331, AVX512F|AVX512VL, Modrm|EVex=2|Masking|Space0F38|VexW0|Disp8MemShift=2|NoSuf, { RegXMM, RegXMM|Dword|Unspecified|BaseIndex }