From patchwork Tue Sep 19 15:45:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 76397 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 E7E5D385770D for ; Tue, 19 Sep 2023 15:47:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E7E5D385770D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1695138465; bh=1IEe3wcAHFvvqyhHCGsLjR6bXD91E5Rtgt+j+EQ/XEE=; 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=cCAR+l70dbaz8pb5wIcRIpx/2KcvfHfdOriOAsJ/ZpWKeYB9hRlHQ/6KTDgB8dh/j 3/zHKfhMNleNIrDv6oV1BTL6PFAgdlpXTigpB9WJo24fnKUiSLWERm387hKdb3bO/M hE2J21n3hNpl5ftUF9oCpcrwCfR6k/7haUYQ4CNY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2064.outbound.protection.outlook.com [40.107.105.64]) by sourceware.org (Postfix) with ESMTPS id 9D518385CC90 for ; Tue, 19 Sep 2023 15:46:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9D518385CC90 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mjhf0iMFkHCsgoJBxQ1GgwCxKwO3FwGLyAmINP85mUaFF1c0AzHMo0jn2tDWvvdkp/kkq+DooBR6you6rrACiiFvHsdw1a275jDlqm/5sh1sAwg7Oq1BCovvzoJyAit6BcBlxfed3mInc/lTrZ+8kV5jzQj3l4HetcS4XMhQqTLEtvJ/Yl3wmAWcbFeLQyQnwsDP/FCGxtQk/mOitCtnoAwjNA4yuujRnr1S0CuP3jSO/pTtvAUL6zhuZ9yqfoXvi+UbTObhBxlTcVdYdDYyeuqV9vIZJ4CExWjv7+t0e6djszAV2glOFUltBTSM63xjxxAe435z19TdToWxFVH4nA== 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=1IEe3wcAHFvvqyhHCGsLjR6bXD91E5Rtgt+j+EQ/XEE=; b=lB+ClvBJPrgLUOSs6D80Uz1Q2aOz4C3RExVVFPxE7kpN0eD1Z9rVJCMMLSPNjYfxAW0OFNrhh1VVOLp+NvHZZ1H111R7T1TgrmYTLoCQ3zRFnTpcmHHmaF7jkwjWrDqavJvSiH8dCsoRxWr2N9CDD5TSrRQ8IfBQIYPlY+Jf/WDniwSCTZlCUdz+uorGvPUQkbUCsR5XVFZWRuHOAQ/OgGoZv0/QmXmqnjoTNPe1tJ0RUCl7DkIYyDTgLrdXTxu7insRQ1gXcuJ5UWZzWoLTG05DJeeG/VIvm+nLRG+EWLG3I/GyuUJNwYF1ivJ4IV9ApT93WwEzcueaXGHki9hb9A== 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 AM9PR04MB8194.eurprd04.prod.outlook.com (2603:10a6:20b:3e6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Tue, 19 Sep 2023 15:46:01 +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.026; Tue, 19 Sep 2023 15:46:01 +0000 Message-ID: <4dacf33d-8770-775c-cfee-8741d159e08d@suse.com> Date: Tue, 19 Sep 2023 17:45:59 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: [PATCH v2 4/4] x86: fold F16C VEX and EVEX templates Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR0P281CA0128.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::10) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM9PR04MB8194:EE_ X-MS-Office365-Filtering-Correlation-Id: bfff11d9-f308-4a3a-cd4d-08dbb9278698 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kJFuzPhzQoOMPKMNP/dztE4BHXID405epK19YzOuqsXIs+6uAOFgL3TWhlytLdkfiQ/56kKay3y8BNe97rWTNWcn6jLrGBKLiUaEPhcUG7O6eM3G5OCS0lZjYvR9osP3adRLEVg0aXBTW7tN+fSvYXVLVmjcfiQ1KK3kC0AapsV2gFIIB0beMOay7let9YTWAdlSXz+w6uzf81wdOrjRM27HvxD1owmztB2iWuSI/EwuWsPuNMXjhlo5fQsiFIXzPKSTMo6ktSFKi7qocDYO+Yn6wkNAecbzq4CeKP+OzBcEB6uVG2hvv83GdyYydE4yMonIros6U2vehCunpLjNYVANA8sjhN3TB19l7/1WPbrbGPETZxlhZPGFE/LeK8NBIVBS+q4FzmTf4aNmJkYc4PiUUlF7qBim60G9LXZG341RiZLJxqzk2wWu6ZO9VKqFySfTg1gNKMrl8RqK/e6Z+1EWIWxMZQ9OQ8htg9Napd8gYATBEHmWQ/LQyWfkdJ97nZfyiN5p/U6RhgFPXvP8J1rhHIcZoxaLd+M+Nq1Z8rwwVh1t7WHqIqpaR4XfhMfPt3fA83JDh0A3lwuPWLbu/S3Zd17OHLRpZy3HZ9hMa6HDtorxOBlTCUEQFxy2cgccw67JnYKc//996U/DK04Uvg== 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)(396003)(39860400002)(366004)(136003)(376002)(346002)(451199024)(186009)(1800799009)(36756003)(31686004)(5660300002)(8676002)(86362001)(41300700001)(4326008)(8936002)(6506007)(6486002)(2616005)(26005)(6512007)(2906002)(66946007)(66556008)(478600001)(66476007)(31696002)(38100700002)(316002)(6916009)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9S3tUoolDd2xLCc5BCHCto6TY+LE?= =?utf-8?q?6OQy2YmhsojeH4+xT7xutlPclFcULLK0uJmKGFnOMTL8ydr6iMwK42ij4AQPUCil+?= =?utf-8?q?7FnPm6WKCXnDh60nUOh3x01EiWC4/zzhYYFECz1BQjRbiXEQ3VHz38Uo8CTtytojs?= =?utf-8?q?uF1Soy//HtghvIawAM1aQ7Lbcmu11yEXld/ZQiPN1Klf2ltsLrQld4pTk/Bg0ra2B?= =?utf-8?q?wL6mIr7eKZxvUGGV9PRkOe3LLVGlOHLBAVz/oAVpwqSNBHTFpaRh/gIQISwxmWKQZ?= =?utf-8?q?rw0OYT6np5KQ+lcmCz9StsAEpx99IKFO3U/3zSASNLUS9h+9nX6N1QHPLnN1gwQ1/?= =?utf-8?q?a93c0HqlHj3xQIkur+37pSEXlDha/Bnz3auspf7wxMOix3g/8fe3comIbM3gVTimn?= =?utf-8?q?kccP8UacaABQ6fJKPrXM1bPh1cBDUPpHfdaCAM45XLg02q1DGZtzwKWfdac4R2U2K?= =?utf-8?q?pDZgXUkftnpAIqn3dToTvLv6dKvHlsiBGHKjao/T05aBwB+Z0UgSPrGbFOZnaxV/0?= =?utf-8?q?LByUudqpS5NGVXSN/gCne0a5JDP135xDOlPWhUtX03LhxJSBYFxPmv+NWTNMYsIMd?= =?utf-8?q?TZMd82uFpAmpAp2bX3/ZtAhW3bgVN86drH+vM3/uaDoQIiIxbwcUNXwHTMY6DWhZD?= =?utf-8?q?obx1IuRJ5Tm+/kus7r1POJJp71Z67FwHbI26KXirGUT9S7DHIGnyCuMtyIysrg7xT?= =?utf-8?q?UaMpt9Q0VgLpYiWIg3FggzaJKTQWE/jcBtPknGtAfdxUiJEE07JVa23ANL6YKW3hy?= =?utf-8?q?osRdXlglTCJQkxd03VFbhAbyKE9YXajRK+uss1AmjwRjQzfHp0VwsrOdnt+xOJ4ky?= =?utf-8?q?O42fp+gzrAL4WYQqSLhwBWA4NpWWN+elWKrIMSgkKQutC4hdljFEBv/8raSIY1bI9?= =?utf-8?q?Z4aEXKMA6XW4qmC8/bY5v+ZU1R/eucwf5K8zv3WuuLVsGTnGzLTFYN6ocnFXFcu0v?= =?utf-8?q?R6/1ZfPSVRHSB+5KeDcSRQhipo3TAb4tVm3mwPpihDcJnTOBhe3t6NPkS5JoluhKf?= =?utf-8?q?P/ZXXMVxCvzRfHNwJHxk6MViTs4dZphCmyRNGHKvEFmO1Xn99KVCLYHKgLKBTfUqF?= =?utf-8?q?mIysmfUNQkatNnKs+PDi8Bt1DxxrLqUsv9OCL9Y3UOYejEe0xewzyymA/mMAVsee+?= =?utf-8?q?MpLZ2Fphn8+XFk73Dt0yrUexCy6sJwhxGQI4llfD3+kbpG3y+SvSMLzR1AYTMOq75?= =?utf-8?q?l7XrbjlisJnBuvU06jUp942+GbUGudXsZZCNUi0fEUyHrjRiiLDYgGL8pCyt68mBD?= =?utf-8?q?vy0JSB8EtQqpsjx/or1UM8UZvrmaQfPyb76+YGh/t8dEexOx8jpTW94RsSsRjthHj?= =?utf-8?q?IWCztoqsUXT4RRrnYd/zw14vIFVE0tHfDQ+x39t75qQCa/3diG3FJEvazoQ65e7BZ?= =?utf-8?q?AnWtR9HDHgHh9mb6vv4YEgHQmg/ilVQNxWIUKIJ2SqMg01HQX4I42hJOf6skkkoDF?= =?utf-8?q?87IhXFfzd1h14Hi6Ks6OK8ebdMiViZxYO3pn/51csdnvUf25TEdSMFwvxSHdJkGNl?= =?utf-8?q?hqodoxSdQ6Wn?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfff11d9-f308-4a3a-cd4d-08dbb9278698 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2023 15:46:01.7166 (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: 16sR8rkBmHZcr5xwxW+l/p/+7bdS8pmW34b3mOE968j+7QFlOhP+WhlGbISz8Rb62AfU2Q4HGk9TQZQFWvo9HQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8194 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 there is a slight asymmetry with the FMA checks, resulting from the various vector lengths having separate insn templates here, but being a single combined one (each) for FMA. --- TBD: Unlike for FMA the gains aren't as big yet the code changes are slightly bigger. The change may therefore be deemed to not be worth it. --- v2: Eliminate unwanted side effect. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1926,9 +1926,12 @@ cpu_flags_match (const insn_template *t) { x.bitfield.cpuavx512f = 0; x.bitfield.cpuavx512vl = 0; - if (x.bitfield.cpufma && !cpu.bitfield.cpufma) + if ((x.bitfield.cpufma && !cpu.bitfield.cpufma) + || (x.bitfield.cpuf16c && !cpu.bitfield.cpuf16c)) x.bitfield.cpuavx = 0; } + else if (cpu.bitfield.cpuf16c) + x.bitfield.cpuavx512vl = 0; } } @@ -1953,6 +1956,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 }