From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150047.outbound.protection.outlook.com [40.107.15.47]) by sourceware.org (Postfix) with ESMTPS id 1B7993858C83 for ; Fri, 14 Oct 2022 12:58:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1B7993858C83 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aQcvOaRM1QQx+X2915wAYnIM3sAgpjNoa9eKR0HSPpBD4A72Q05MaNb4kFMi1yWM1mHC7BM8LumxSreT4nVgdk6tm88ywsBdrL1ZWzMJErdYVpOPmGRVKceD3TkjCrEPZdiwCrHnKG+/CzWCBPURczP7wwrfL3FhRCcYD2YWee3/YtxaJPwMhh1nR9DiFEi3Xy/DSEqA9gafdNtVW1cgsJMig5lGiectaaiLEPkTxN3j7Guzo6ZWnTkQgRO+Xn6w2yd8+bbrsn1dtR9ZISvfgoeiNEIkvdlPzyX9ePrqPtj6qxMlmdz0oeOPBC5C3be4kskEkxbuw2Czchs938lm+A== 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=j5WyDrzaxXjyEmSAaHXsJydF9faPhkB8Klcs/DA6R44=; b=Q0HBxhqzFjLMewHWp70XCW38GZ7nONIVjvHlvsbM1JApi/5Zn/hH6HjlrSneLJRU7blCnYetIyRQTvnspZtTleWmovNp1IdpfPAjv1UT2egKnhrfIQv6oZki/AW0rCT1pj8hGxucXykiLfOwOv2dRdi3jOnEXfVW2r+70CXobyo1j0V4iAxcGeIbWGWFz//lRaYjeNHg4nJVRgg19ZAVea5QuyHM/j0rSM8x30y8xunZYiP3mTnpBGChIOIrM5zQ9WqKv1iWFmWBOJTwcglqVHVIGphwVQasLbccsD2Hf2EDEU016bBCjuxwyaFuG/PGLJZK7OM7c5AWMR+SiG31yA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j5WyDrzaxXjyEmSAaHXsJydF9faPhkB8Klcs/DA6R44=; b=00mG6F/JNmyc6VvoynvOKFEVvpyGcTjPEmNrcxumWVc9IshBorjidxL74njowMt1Z4D4zYxt3bibj6AunJO2xshDckh0BSHZUV9yrMQMMpNUFcKSEGtBstlnzOs7LhzTc5+BA061q7tzqd0EN1T7MdYEi5ew+apjuPCuWriqug2HxZ0PIKk/GnCSLGtcbHTX46tyxW7ZrHTYr/OAnoscKNvSqffp8qUygkf3hD9N4ZmrWZg30zBeMhyM6FO5rh8YfB7zZXG1VLQXRq+C4wILdC0ZsxDSNqagX6JZwk6cZszE9rVBTd/saiXiMEY9glEM0X/B5MCB7PwSKZKa3DWfkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8210.eurprd04.prod.outlook.com (2603:10a6:20b:3e7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.21; Fri, 14 Oct 2022 12:58:34 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a%7]) with mapi id 15.20.5723.026; Fri, 14 Oct 2022 12:58:34 +0000 Message-ID: <29239b15-58d7-c57d-caf6-a23c40814f3e@suse.com> Date: Fri, 14 Oct 2022 14:58:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.2 Subject: Re: [PATCH 03/10] Support Intel AVX-NE-CONVERT Content-Language: en-US To: Haochen Jiang Cc: hjl.tools@gmail.com, Kong Lingling , binutils@sourceware.org References: <20221014091248.4920-1-haochen.jiang@intel.com> <20221014091248.4920-4-haochen.jiang@intel.com> From: Jan Beulich In-Reply-To: <20221014091248.4920-4-haochen.jiang@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0043.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8210:EE_ X-MS-Office365-Filtering-Correlation-Id: c78b460c-ce6a-4d70-e211-08daade3cda5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dA3b5mAiDkNE3v+9edNdm2HiychKLYPVFL0/UuH1+xvl1+qfZoMHZavGAfGqIjdjErMyDKt/9UjJrhTKBN6vjPNGn6Tp8wyyyPelQSkxYNg26zarzi7jg0BXw13ED++afFXKF4zl/LAgQRInouLGZxcIxBlq3eYGuyXCMpZxW4UFp0brjJ2CGtqXK4mguyDT+3gePZc6G1dtTL6z0gK7x5E89hseU6HRlPip34KksKiR1vXUoEknugRDMBh/a67PJbjCncQ3SouVHptUZ8ihl25MiA5HOpHdIjKv6cOExqxsHb9uRDbrdMQYzj+fOMLaMV3y5IINo4CZjnVeI88uRsalDuVRfJ+6AM2QgNy0b7PA4xMG1FdWYcks5NA3k0KpnYYTYqUHwoVeaAC2kqSsuuiL54SRP/fyWgNzwaTCF5qFkI1hre7BtvnxIBWGt5l8cGaSpxbjJDUPEJ0E6caKSqajP0ukSbCWfbLadrk/FtN1noG/z/tZAnKO39lbofzQ3euMKhbbxcg2bmaOXEq+jNQjmXP2Qp0ZHZ6ebH8zShH5jnLxrbzldCyr7iMRnBY517wo/wqQqYxlhEh744mISV+VHmthuj6l64zqP6olk8O9Qm9ptDa29HBCclJ4WG2ahD5g+UJL3LA3w7Yg0wPHOdN/9DgGgfchUYXrgAjKlTlStQs34oCU5YSDO/ZWrZcJ5dREwJna91mlDHWYjSqjJs0lE/8MpS49QKP4D6tVRpjAUGlY5GA/kSMvE6zNuSpfPDYhi+QEBflOENL8Z02EPKyfUfimjNfy1osC+e4inuA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(39860400002)(136003)(366004)(396003)(346002)(451199015)(31686004)(36756003)(31696002)(41300700001)(4326008)(5660300002)(6512007)(66556008)(8676002)(66946007)(86362001)(6916009)(316002)(66476007)(8936002)(38100700002)(2906002)(26005)(478600001)(6486002)(53546011)(6506007)(2616005)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UUpuV0tCRnhraTlzZkxtK3BUa25nVmNPMnhIajRENnNJTi9jMEpmQjNLNVIv?= =?utf-8?B?K2Y2cWMvQXFMajV3eVg2UlhoeDVyOHJ6c3R4WDBUd1FrQ2NXYmdyWUdTa2lw?= =?utf-8?B?STIxeHJNZDFzS1ZvMUJESGNLRTdaMytnVEFpZG9jV290WjhjaXJKR0QyMUU3?= =?utf-8?B?T0hIL3Y1OTY5eVBZWmhYNlh5bmNRZFNDSHIzcGxYRUVpQ3lhd0RML0lPSHlL?= =?utf-8?B?Z0JvRW00WWlmeW1jRVcwWk1ydHJPTEdHT2J4eVgyZUlYWW9JMFVDU2ZiL1gr?= =?utf-8?B?S2ZrMkVCeFBYcmhQSWRMNnljYzIwa2MzclR0NjNlSndMSUgyaitTejVKdytN?= =?utf-8?B?dEpWQUh4bllYbUFaRXFoaStwckdNcEE5NHBWT21mdjlxZERqM0hnTFN2NkQ2?= =?utf-8?B?cm1DZlNpOEJnLzNYL0RwQlVIVjNWY0FZMWorSXdVSjNITlpQbmsyVUJBYnhh?= =?utf-8?B?UmtHaXBwVTJIbURmQWxVclhIdFd4UGlMbDJETEVuMnZZR1EvdnNYMWw4aUtB?= =?utf-8?B?dHdKS0MwT0NmYXNPV0FDSWlDOUszeTBMbW1zNzE3TklLZTRGQU9EdmxWSUMw?= =?utf-8?B?VTA0RkFTRTh6YktYTUFDR0RGV2Y4MSs5RTRDclZWNzA1NlVIZ0EvZ21idys3?= =?utf-8?B?Z3ZzUyszbmRKTWt4MlR6bmtwcmRCbzMzTjN0cy9pSWVkN3M5MmYyZUZwNlEv?= =?utf-8?B?THhpNXdkTGp2V3NmeWl2MWVyOUlhNmxVdkwvaW15ZU1SL1Fmd29OWVozTStN?= =?utf-8?B?dXNHb2dGOEFMWjRVSEI4T3BPUWgxZVNKdmhWc3FQa2hLZFk3dEd6WnhmaWYx?= =?utf-8?B?UzAxRG5yQlpDNFBEK2VJY3RkMzMwN3ZJRzVVSkM2c2RmeWtDWUxFNVBpTVlN?= =?utf-8?B?SDAvS2lDcEtvQ01oNWhJSHhBVHZ1Y3JRSUhKL3lyUkF2SVBnaXB4SktFSGtI?= =?utf-8?B?Um9VZXdxay9PdUxySjNBcm9Wcnl1UGRKTjd2WUlIbkdHRkpvOGJ1TUlNVUtI?= =?utf-8?B?L1VzSm1udGlJVEhwOXFZd3hQWWV6U285emFpTFpSWnpMWlFGYVA2TUlCa3k2?= =?utf-8?B?V2VoSXhFZVhwR2Vxb3hYL3Fibnp3NU1iN2tZNXRDeDY4YUZ2QkpzcDcwQ1kv?= =?utf-8?B?cXd6U1ZLQmh0RzlGeGdpbzRheFVOUUJTOGNDWHFhdVJKaUxXWHlmeHlncEli?= =?utf-8?B?dmlSN3BkRnVuSGxGRm80NlByZDhEMFBsUGowR1daWkZodHRNRW9oNDRlb0pK?= =?utf-8?B?RzBsMEpKRElVekQ3ampmSncyN3BudFFMS0JaY3dSZUdMRWp3WjRLRzlnYnI3?= =?utf-8?B?NlFBU2lFOTNOb25sUXJSZFlUUi9KS2xHb3NaUkdJVmtaMFh4cXcwaW5CM3ly?= =?utf-8?B?UXp4VFVibXR5ZG1FSUlwUXphRlRaUHlvbEx5Z1ZST3lhUkUvOVpvRTdxVUU0?= =?utf-8?B?bjMvRklDYmtYUWFkb3pYWTE0aC9KeGJUVE5VcjRJSmZXSno4aE5JdXp6R3h1?= =?utf-8?B?emhFUDcxT052NkFSYzJyVmxOeWRMQ0lGR2NpNklsVTdQbzBxdDZYUHJ1bllv?= =?utf-8?B?Njk2VU9xUklESnBiSW8xVlNSN0syelNXdDQvQUY0U2RxeUJxaDcxcFJ1V1Fz?= =?utf-8?B?WmJkdUFlcjlKbVBxZWFmdVpZOTJXRDF5Mk1KT1ByazRweFA0YTRXY0d1R2Jw?= =?utf-8?B?N1NEaVMxOWF6SEMvWWI3aFAzMUZlRDNNRGF2UUEwN0dXT2U4Wm1lQlF1bnls?= =?utf-8?B?MUw0Y0ZMMnQ0WHY0enpzSCtFeVM5cVF4MWowckdCc25aUHp5aFQ5REd3WXQ1?= =?utf-8?B?SmxyMnFlbVIvQTJQRmU1ZWtzaEc3cjlOV2NkU2xVZVRCRXhvNUF4M1hqZ1Y1?= =?utf-8?B?SHYzVkZlQnlxa1g4c3hiamdPTUVzbU5oT0orY0EzSGJKdUFHam1DVHJDVjU0?= =?utf-8?B?RDZ4eG1WMENJY2U4Njd4R1ZGRkxzdGlhcVo5QWpqUHRReFlGMXFHYmEvcmlp?= =?utf-8?B?QXZsb1N1a2xIcXVKcUJkTEo1VkFwZ1BpbXY4OENMcXJmdGFPQjlHNFBGcEpG?= =?utf-8?B?SldBQlhXZ2x3YzhEaEVIYVNGTThVL2dJSzVTS1FubVlFWGxuVUt6OG4wUHpY?= =?utf-8?Q?9xqHr8Lx5zUgkWwAzJ8uHPJAy?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c78b460c-ce6a-4d70-e211-08daade3cda5 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2022 12:58:34.6978 (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: MdZmT6c1vKm4gTJRA1CAQuUeqmpiLOB1vdjoYS/M7meXWy6EF+Dz1wu0gHUR6PKZDrdBNz8dsvpncvbZf2vMPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8210 X-Spam-Status: No, score=-3031.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,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 List-Id: On 14.10.2022 11:12, Haochen Jiang wrote: > --- a/opcodes/i386-dis.c > +++ b/opcodes/i386-dis.c > @@ -937,6 +937,8 @@ enum > MOD_VEX_0F385E_X86_64_P_3_W_0, > MOD_VEX_0F388C, > MOD_VEX_0F388E, > + MOD_VEX_0F38B0, > + MOD_VEX_0F38B1, > MOD_VEX_0F3A30_L_0, > MOD_VEX_0F3A31_L_0, > MOD_VEX_0F3A32_L_0, > @@ -1132,6 +1134,9 @@ enum > PREFIX_VEX_0F3851_W_0, > PREFIX_VEX_0F385C_X86_64, > PREFIX_VEX_0F385E_X86_64, > + PREFIX_VEX_0F3872, > + PREFIX_VEX_0F38B0, > + PREFIX_VEX_0F38B1, PREFIX_VEX_0F38B0_M_1_W_0 and PREFIX_VEX_0F38B1_M_1_W_0 respectively, please. These enumerators are supposed to show the already decoded components. Plus they need to be unambiguous if insns appear which vary in (here) permitted ModR/M forms or the VEX.W bit. > @@ -1526,8 +1531,11 @@ enum > VEX_W_0F385E_X86_64_P_1, > VEX_W_0F385E_X86_64_P_2, > VEX_W_0F385E_X86_64_P_3, > + VEX_W_0F3872_P_1, > VEX_W_0F3878, > VEX_W_0F3879, > + VEX_W_0F38B0, > + VEX_W_0F38B1, VEX_W_0F38B0_M_1 and VEX_W_0F38B1_M_1 respectively, please. > @@ -7618,6 +7654,14 @@ static const struct dis386 vex_w_table[][2] = { > /* VEX_W_0F3879 */ > { "vpbroadcastw", { XM, EXw }, PREFIX_DATA }, > }, > + { > + /* VEX_W_0F38B0 */ Nit: Indentation. > @@ -8428,6 +8472,14 @@ static const struct dis386 mod_table[][2] = { > /* MOD_VEX_0F388E */ > { "vpmaskmov%DQ", { Mx, Vex, XM }, PREFIX_DATA }, > }, > + { > + /* MOD_VEX_0F38B0*/ > + { VEX_W_TABLE (VEX_W_0F38B0) }, > + }, > + { > + /* MOD_VEX_0F38B1*/ > + { VEX_W_TABLE (VEX_W_0F38B1) }, > + }, Nit: Blanks missing in both of the comments. > --- a/opcodes/i386-gen.c > +++ b/opcodes/i386-gen.c > @@ -249,6 +249,8 @@ static initializer cpu_flag_init[] = > "CPU_AVX2_FLAGS|CpuAVX_IFMA" }, > { "CPU_AVX_VNNI_INT8_FLAGS", > "CPU_AVX2_FLAGS|CpuAVX_VNNI_INT8" }, > + { "CPU_AVX_NE_CONVERT_FLAGS", > + "CPU_AVX2_FLAGS|CpuAVX_NE_CONVERT" }, > { "CPU_IAMCU_FLAGS", > "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuIAMCU" }, > { "CPU_ADX_FLAGS", > @@ -447,6 +449,8 @@ static initializer cpu_flag_init[] = > "CpuAVX_IFMA" }, > { "CPU_ANY_AVX_VNNI_INT8_FLAGS", > "CpuAVX_VNNI_INT8" }, > + { "CPU_ANY_AVX_NE_CONVERT_FLAGS", > + "CpuAVX_NE_CONVERT" }, > }; Like for patches 1 and 2 - CPU_ANY_AVX2_FLAGS also need adjusting. > --- a/opcodes/i386-opc.tbl > +++ b/opcodes/i386-opc.tbl > @@ -3027,6 +3027,21 @@ movdir64b, 0x660f38f8, None, CpuMOVDIR64B, Modrm|AddrPrefixOpReg, { Unspecified| > > // MOVEDIR instructions end. > > +// AVX_NE_CONVERT instructions. > + > +vbcstnebf162ps, 0xf3b1, None, CpuAVX_NE_CONVERT, Modrm|Vex|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Word|Unspecified|BaseIndex, RegXMM|RegYMM} > +vbcstnesh2ps, 0x66b1, None, CpuAVX_NE_CONVERT, Modrm|Vex|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Word|Unspecified|BaseIndex, RegXMM|RegYMM} Why CheckRegSize? > +vcvtneoph2ps, 0xb0, None, CpuAVX_NE_CONVERT, Modrm|Vex|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM} > +vcvtneebf162ps, 0xf3b0, None, CpuAVX_NE_CONVERT, Modrm|Vex|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM} > +vcvtneeph2ps, 0x66b0, None, CpuAVX_NE_CONVERT, Modrm|Vex|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM} > +vcvtneobf162ps, 0xf2b0, None, CpuAVX_NE_CONVERT, Modrm|Vex|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM} > +vcvtneps2bf16, 0xf372, None, CpuAVX_NE_CONVERT, Modrm|PseudoVexPrefix|Vex128|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM} > +vcvtneps2bf16, 0xf372, None, CpuAVX_NE_CONVERT, Modrm|PseudoVexPrefix|Vex256|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {Ymmword|RegYMM|Unspecified|BaseIndex, RegXMM} > +vcvtneps2bf16x, 0xf372, None, CpuAVX_NE_CONVERT, Modrm|PseudoVexPrefix|Vex128|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, {Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM} > +vcvtneps2bf16y, 0xf372, None, CpuAVX_NE_CONVERT, Modrm|PseudoVexPrefix|Vex256|Space0F38|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, {Ymmword|RegYMM|Unspecified|BaseIndex, RegXMM} Nit: Excess blank after the first comma on the last of the above lines, and excess blanks on all vcvt* lines before CpuAVX_NE_CONVERT. Unnecessary Xmmword / Ymmword on the last four lines. And there again - why CheckRegSize? But these would anyway benefit from using the AVX instance of the template - then AT&T syntax handling for the suffix-less variant would automatically be correct (it isn't in your code). Problem is that it wasn't clear that there'll be a need to re-use xy's AVX instance this late in the file, so the overloading of the name (commit e07ae9a3efee) will need undoing. To keep names short (see commit 390ddd6f6812) I'd recommend using Vxy and Exy (for the VEX and EVEX variants respectively). Like for the earlier patches I disagree with the uses of PseudoVexPrefix here (as said - the attribute should really go away again, and I have a patch doing so), but then ... > + > +// AVX_NE_CONVERT instructions end. > + > // AVX512_BF16 instructions. > > vcvtne2ps2bf16, 0xf272, None, CpuAVX512_BF16, Modrm|Space0F38|VexVVVV|Masking=3|VexW0|Broadcast|Disp8ShiftVL|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM } ... the new insns (at least the ones having AVX512 counterparts) need to be placed after the AVX512 ones (which you'll note use the template. Jan