From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70081.outbound.protection.outlook.com [40.107.7.81]) by sourceware.org (Postfix) with ESMTPS id E46C63857B98 for ; Wed, 19 Oct 2022 09:52:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E46C63857B98 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=E7/g1OQ+x9cP8/HZWxEi3sAH/25b5OMgMVLvk6Cxyzvz2kTNfkxWaMHD95+YzfQARAjKcfyaSjX6J2TSuBrepjXkh076R7BxbIzH+dcShinVeTzQqamwJKdLZVcKZ5AFDH4RTajHe+SALEABP5gifBBxN9QxgAr7dPdhyr4z9M3iVly2+m8fiPibj52HcXYvEyWN0AmO9asaK7urq4SRohuxzhgu2wdlwVIO5xoXeySfyl7cffPjWNLKtGK6fSwY2cHm9WgmVu7CB9PLxU0bzwTqdpoMRIPyzDZY91rYvQgrZwlT8J0Yi6MI5oXjYDgLV0s91oo4RtuCBslYH82Ekw== 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=sIqHkGZz4U0Hz8m3QEUWqL600twoEHQMHwXZl9ZuQwU=; b=DipxjgxveLkV/gJlnCUvCcq+rS5JyMDAjudmMuIvBHzfxaTu5jq5U7jHePhMUj2EVsmZdfU+HmthaNo0fHRy/lHRP19UE71ZNFJQ6Tt7uVhlXU8HgmF/Fu8deFU+3/GsfCsgdPeWyUYPFprwGcJXry/J6eP/FuouxepL7kNFqfdU3q+SK2zWkDDvMi44HKSqtGP3npYmyetkCDF9yoojuXoYpTUbD9JSNeasNNriU3HTFu4bYUff8aH11L9+en1UVLkkiUoW5IFH1RoeAZcao1hPefWb4bZZ+poYNe/en0KZ7qJ6x3sZgFr0HJBS8ky1WddNRTM3nVFFjG2cdnHtMg== 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=sIqHkGZz4U0Hz8m3QEUWqL600twoEHQMHwXZl9ZuQwU=; b=YqFYevpjQQ+yQUVucVKKQtZ2Mf46kImWmBjuAMGb8kKXxR0B2WdbYOpjKrh0CBgETDsJg/RfTchVo89nW6zb3qIJmqaaCJulIQ0AysWzdorbZCzdePttue3k4G7s9Vr6xz6fvIBT+zlz++WN56xRkno7/O9EpmAt4w8qKMAen3IAy7h0agyk2wAi9ebUDxwt3eRbodoAr2W84ecK0D2VUgwsceMZUX1WJ3tVlHnQ0FM5he2HCmVY3GhC99CYYoilaPg2o2ewU9T7RmO9Y9I/nObwngyO9ZXZQ86kpqzqkXSJOzSdFV9xqpgw9kG/wfMW21OCL3quODKfuH5XCT6tHQ== 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 AS8PR04MB9048.eurprd04.prod.outlook.com (2603:10a6:20b:443::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.33; Wed, 19 Oct 2022 09:52:47 +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.034; Wed, 19 Oct 2022 09:52:47 +0000 Message-ID: Date: Wed, 19 Oct 2022 11:52:46 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.3 Content-Language: en-US To: Binutils Cc: "H.J. Lu" From: Jan Beulich Subject: [PATCH] x86: re-work AVX-VNNI support Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AS8PR07CA0052.eurprd07.prod.outlook.com (2603:10a6:20b:459::13) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB9048:EE_ X-MS-Office365-Filtering-Correlation-Id: 96006918-ce2e-4d72-20c6-08dab1b7ad97 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jnZU5Bif8/6QQxJM8ctYgAIIlBC4j9iRDtx5J+5dWm+P+j7Ei9GAmxFxeHW2oKm6KiFjAttI0vwj6GmclETd6yMSUsgt9cr89INIOqdDRy4DSjKXBRL0RLqCRtf1EuXwlK9wN5qyftLRx8i6MF26rVKcNtMP9Ndu4EZCutV/kSAcqCJsfW9wWe9ALERLWTktEwEydfH4ZCxCfriaDjHtWSW4eW83Y/SVryeLScCKmIJo6Tsj8Av0QD7RVcJtRORbHm/zXZUr39jy15Yh3w7rfQiz6WTI1jvIocct3dKB3DS2RuG3Uy8IznYnvGxzOCNkoCDOB7TtQd34waetaWz6WVl0C6qJ+JapKxSUsmtM6siml8hb6vla0WJo2H1NapCMez3oP/ConykxSK1mo/x/3SIDX4HwTSZFRjTmqAlc/Cq3vHU3UKYJxjdwlCL6abmccYNHHt/IjoKM6mxEn/fJrUrP0JTMVWtBh7o+Ly/U17zMFbC64YumOl448e5RktQTGmrPzmHiyKiWIFl8TGB8jVKjM/cUFZGe5nt9jsPK/ASJk1Oz2NKmfJZgyiPUdTNPo6MI/iQkjjocbvwXBXavb2mMu/im3FPOLadGKjPg7l6T8LUwePkr3DmXrWAjvAL0gWwLUXHyz5W2/p2yvHF/UpDBGLVLWp7RibZxlF8ayMPFogWlXM0q/QfcS3CGnK3kuTQLcmsf41dZ9wyRpDDomvEGgcd9Zi4vNKos3WSQSQTHZ/WgVrg/Sj6sVW8P1+iOIIbpbaPOfRcTbVhEw6541Cyq3rfhxMbA/nx+HWFkSiw= 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)(136003)(376002)(39860400002)(366004)(396003)(346002)(451199015)(31686004)(5660300002)(2906002)(8936002)(41300700001)(66946007)(6486002)(6506007)(36756003)(478600001)(6916009)(66556008)(316002)(66476007)(4326008)(8676002)(83380400001)(31696002)(86362001)(38100700002)(6512007)(186003)(26005)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QndILzBubXdLMXRTeW05Sk1oanBvV25GR0NwMXNkZ0pkVHJvMXlmTGNWK3lT?= =?utf-8?B?SFVISkpGRnUwbXVEWWE0Qk5GdGp5dXJZVy9sTVNZUWRLdkV0VzdaMDNrYW9L?= =?utf-8?B?L2VBbmVUck1GMENTVnREYjJFWlA4R2tvN2RnZndCK242YzRCdXN2MFh3cDgx?= =?utf-8?B?Y29WTWNQd1JxbXQyYmJuNE0yM0NEVTlTeEwveC9qM3pQYUhHV29KUE1aRmtu?= =?utf-8?B?NEI1a0dscnNJMDRabWZ0MGZyQ1R0UHkzVmZTUC9aWWhVakdNQkp6KzFBSVVM?= =?utf-8?B?aEpQTmVacDN3Ump0cEdwRDlCU0I1Ry9wbEJTY3ViR2k2S2x3aWZIN3VscUx3?= =?utf-8?B?TDZLbFp6Q01LV3BXZEtCdFVQa2xMOGg1bzM5NmRXSitRU3l1eVBBL0FlUkw4?= =?utf-8?B?d3p5djhRTXgyRCtsUE9ac212R25vOUJ2Wk53WXRsbEk3STRHN0pxYXlVZGxt?= =?utf-8?B?QW9SS3RtcFlTY1cyeFpOV09RaS9NTSs0a0ttSFJBVFVlZGxZakw2OG9waDBC?= =?utf-8?B?SlJEYXhVajlHa3A1dmxSL0UzakQwcnBBak13K0dsdXRtcU1uSlA2anF2cm5P?= =?utf-8?B?aS8vakxhdzU0VXpib24rZk5PVjgzZS93TVVacnFhaC9tMWE0aVphZVFpV285?= =?utf-8?B?S3BqZW1kVXlyb2lRMmhrT0tzUERPNXFQZzk2TXAzUndUYkE1cHpLTXFVZzNk?= =?utf-8?B?cTEyeTZVMUN5TDM1RDJyK0JUTHhueE5oOGpwei9rb1VYSDFiYnIvTkR4Zy8w?= =?utf-8?B?THlHemxSc0t3anhNWlIrUVplVGxCNk1MR0FyYWlFUmNjTW5TWE55VjkzU05H?= =?utf-8?B?K0xvQ0RxSGxMNnFsQmpHSVp6R0ptazg0WWI4bHhsOEVFeVBIZkYwczM1WHZa?= =?utf-8?B?UEFwNkVJK2oxSkEvL0F1RjRhTkpScW1VUExDWUgvbVl5NHkveWxUNStkbm5U?= =?utf-8?B?TUZVaTFNL0JCRFNQeW5yV0k4QXlKVE00WFovYVliL282M28xak1yZ1h1UEQ5?= =?utf-8?B?ajZJd2h6b3Nyb256dzFQQ2hBMlpCaFladDYzQVExLzlNSWgzMnVIZVdJMnR6?= =?utf-8?B?V1N2TDEvbWxiN2RNNTdDb05QTVlDRTZXNDlZVlFaQ3p1eFRNRzU0Nk1NT1Ay?= =?utf-8?B?ZkgzOEpEaUpVTkZjZ3V5S25oVWFuVEk5WmpxelZrWkhhK0xvWm5QclNobHQ2?= =?utf-8?B?c2s1TU1zY1BDOWYrTEw1emZNMDlJYUVsUXZaTmxtbTNuYkU0dWdjeWh0NDE3?= =?utf-8?B?VVQzMG5EenpYVWNPV2RBbHV5VTR6QjlycFhkQ28vRTJaYWtvV3hsRXloNmxC?= =?utf-8?B?eUMxQ3VKSTc2US9yOTdCZXRiZlJTK200c3h2TWxjckowVE8wRUl2Mms1SmxB?= =?utf-8?B?cEQyNU5rMENFeU11Y3ZiNGU5eHprbytyNWpZR2h2VDRGU1hTSVlPdmdzMXgr?= =?utf-8?B?S25HUFVlTmJOb3A5aUN0dEdOMDQwbHk3ckVKd0svNEl5Rmo2YzlxOEVjUS8y?= =?utf-8?B?V0RpbE1CLzhPQmF0V1dxcXRBRjRDMkhMWkwyRzJIelBZQWRJVWNPVkpkVC8w?= =?utf-8?B?TlJjQmtITlNFMWZCQUJ5U0V2WXF0UkZlYzM5M1lLUyt1Ylh5bGpPOXp0S1Fz?= =?utf-8?B?RmpTVXJtNWdyUzhGVmRXNXJINTRSR3dUNUV6OXh6azN4V1I5L09uVnlRM1px?= =?utf-8?B?UzFJZTBvZEhZeEgzYlhrcjhhVTZpSGh4dzgzbzB2Q0JNdzhtVzFLK1p5cGRn?= =?utf-8?B?b1VKWnVnSUlxTTZzdzRPeEdjbFdmUDZKeE9YbmtoRFViRVZoZjMwcW5lUUh6?= =?utf-8?B?OTdQQUpjaWFzNzVodGtVenAxNzUxdm5SbG1jQWxRZE9QSW5kZmEraVZqTUdM?= =?utf-8?B?UHdFREFISCtJOUg4RCtITy9ycHFsdFJuc2UvWEVDM1NobnNoNFV3akxoVVd1?= =?utf-8?B?VmFxQUh6bTdtVUY4RzVSa1pYN3lZRVV1VlJ2L2pZM0h4UGhNck8wVFdZUkVo?= =?utf-8?B?VS93NDFOSEQvbEhQL0JjQ2dhYk9aVnh0ZThWN2k0dTJTSEx4ZmV6dHNDbHZ0?= =?utf-8?B?SjYyK3pwemFtQ1RzT1Y5ZjRtZHdDN3RXc0phTWEyWEFFbWhwcytnQm1KYjhH?= =?utf-8?Q?4KLxE7lssX0pdKUtnEnwHv6so?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96006918-ce2e-4d72-20c6-08dab1b7ad97 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2022 09:52:47.7559 (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: 3UjTK8fczEG6UFg2wSU/RH0bvcn+FZEncZ4+TiiB3Gve+Kzn1NK1M0/QByq5jl9Rim37wnFFtfxnoi/G7seY3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB9048 X-Spam-Status: No, score=-3029.7 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 List-Id: By putting the templates after their AVX512 counterparts, the AVX512 flavors will be picked by default. That way the need to always use {vex} ceases to exist once respective CPU features (AVX512-VNNI or AVX512VL as a whole) have been disabled. This way the need for the PseudoVexPrefix attribute also disappears. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6457,12 +6457,6 @@ match_template (char mnem_suffix) if (cpu_flags_match (t) != CPU_FLAGS_PERFECT_MATCH) continue; - /* Check Pseudo Prefix. */ - if (t->opcode_modifier.pseudovexprefix - && !(i.vec_encoding == vex_encoding_vex - || i.vec_encoding == vex_encoding_vex3)) - continue; - /* Check AT&T mnemonic. */ specific_error = progress (unsupported_with_intel_mnemonic); if (intel_mnemonic && t->opcode_modifier.attmnemonic) --- a/gas/testsuite/gas/i386/avx-vnni.d +++ b/gas/testsuite/gas/i386/avx-vnni.d @@ -31,5 +31,12 @@ Disassembly of section .text: +[a-f0-9]+: c4 e2 59 53 d2 \{vex\} vpdpwssds %xmm2,%xmm4,%xmm2 +[a-f0-9]+: c4 e2 59 53 11 \{vex\} vpdpwssds \(%ecx\),%xmm4,%xmm2 +[a-f0-9]+: c4 e2 59 53 11 \{vex\} vpdpwssds \(%ecx\),%xmm4,%xmm2 + +[a-f0-9]+: 62 f2 7d 48 50 c0 vpdpbusd %zmm0,%zmm0,%zmm0 + +[a-f0-9]+: c4 e2 7d 50 c0 \{vex\} vpdpbusd %ymm0,%ymm0,%ymm0 + +[a-f0-9]+: c4 e2 79 50 c0 \{vex\} vpdpbusd %xmm0,%xmm0,%xmm0 + +[a-f0-9]+: c4 e2 7d 50 c0 \{vex\} vpdpbusd %ymm0,%ymm0,%ymm0 + +[a-f0-9]+: c4 e2 79 50 c0 \{vex\} vpdpbusd %xmm0,%xmm0,%xmm0 + +[a-f0-9]+: c4 e2 7d 50 c0 \{vex\} vpdpbusd %ymm0,%ymm0,%ymm0 + +[a-f0-9]+: c4 e2 79 50 c0 \{vex\} vpdpbusd %xmm0,%xmm0,%xmm0 +[a-f0-9]+: 62 f2 5d 08 50 d2 vpdpbusd %xmm2,%xmm4,%xmm2 #pass --- a/gas/testsuite/gas/i386/avx-vnni.s +++ b/gas/testsuite/gas/i386/avx-vnni.s @@ -16,5 +16,24 @@ _start: test_insn vpdpbusds test_insn vpdpwssds + .arch .noavx512vl + + vpdpbusd %zmm0, %zmm0, %zmm0 + vpdpbusd %ymm0, %ymm0, %ymm0 + vpdpbusd %xmm0, %xmm0, %xmm0 + + .arch default + .arch .noavx512_vnni + + vpdpbusd %ymm0, %ymm0, %ymm0 + vpdpbusd %xmm0, %xmm0, %xmm0 + + .arch default + .arch .noavx512f + + vpdpbusd %ymm0, %ymm0, %ymm0 + vpdpbusd %xmm0, %xmm0, %xmm0 + + .arch default .arch .avx_vnni vpdpbusd %xmm2, %xmm4, %xmm2 --- a/gas/testsuite/gas/i386/avx-vnni-inval.l +++ b/gas/testsuite/gas/i386/avx-vnni-inval.l @@ -1,2 +1,3 @@ .* Assembler messages: -.*:6: Error: unsupported instruction `vpdpbusd' +.*:6: Error: unsupported .* `vpdpbusd' +.*:7: Error: operand .* `vpdpbusd' --- a/gas/testsuite/gas/i386/avx-vnni-inval.s +++ b/gas/testsuite/gas/i386/avx-vnni-inval.s @@ -3,4 +3,5 @@ .text .arch .noavx512_vnni _start: - vpdpbusd %xmm2,%xmm4,%xmm2 + vpdpbusd %xmm2, %xmm4, %xmm2{%k6} + vpdpbusd %zmm2, %zmm4, %zmm2 --- a/gas/testsuite/gas/i386/x86-64-avx-vnni-inval.l +++ b/gas/testsuite/gas/i386/x86-64-avx-vnni-inval.l @@ -1,3 +1,4 @@ .* Assembler messages: -.*:6: Error: unsupported instruction `vpdpbusds' -.*:7: Error: unsupported instruction `vpdpbusds' +.*:6: Error: unsupported .* `vpdpbusds' +.*:7: Error: unsupported .* `vpdpbusds' +.*:8: Error: operand .* `vpdpbusds' --- a/gas/testsuite/gas/i386/x86-64-avx-vnni-inval.s +++ b/gas/testsuite/gas/i386/x86-64-avx-vnni-inval.s @@ -3,5 +3,6 @@ .text .arch .noavx512_vnni _start: - vpdpbusds %xmm2, %xmm4, %xmm2 - vpdpbusds %xmm22, %xmm4, %xmm2 + vpdpbusds %xmm2, %xmm4, %xmm2{%k6} + vpdpbusds %xmm22, %xmm4, %xmm2{%k1} + vpdpbusds %zmm2, %zmm4, %zmm2 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -711,7 +711,6 @@ static bitfield opcode_modifiers[] = BITFIELD (ImmExt), BITFIELD (NoRex64), BITFIELD (Ugh), - BITFIELD (PseudoVexPrefix), BITFIELD (Vex), BITFIELD (VexVVVV), BITFIELD (VexW), --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -531,8 +531,6 @@ enum NoRex64, /* deprecated fp insn, gets a warning */ Ugh, - /* Intel AVX Instructions support via {vex} prefix */ - PseudoVexPrefix, /* insn has VEX prefix: 1: 128bit VEX prefix (or operand dependent). 2: 256bit VEX prefix. @@ -741,7 +739,6 @@ typedef struct i386_opcode_modifier unsigned int immext:1; unsigned int norex64:1; unsigned int ugh:1; - unsigned int pseudovexprefix:1; unsigned int vex:2; unsigned int vexvvvv:2; unsigned int vexw:2; --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -2861,16 +2861,6 @@ vpshrdw, 0x6672, None, CpuAVX512_VBMI2, // AVX512_VBMI2 instructions end -// AVX_VNNI instructions - -vpdpbusd, 0x6650, None, CpuAVX_VNNI, Modrm|Vex|PseudoVexPrefix|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } -vpdpwssd, 0x6652, None, CpuAVX_VNNI, Modrm|Vex|PseudoVexPrefix|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } - -vpdpbusds, 0x6651, None, CpuAVX_VNNI, Modrm|Vex|PseudoVexPrefix|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } -vpdpwssds, 0x6653, None, CpuAVX_VNNI, Modrm|Vex|PseudoVexPrefix|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } - -// AVX_VNNI instructions end - // AVX512_VNNI instructions vpdpbusd, 0x6650, None, CpuAVX512_VNNI, Modrm|Masking=3|Space0F38|VexVVVV=1|VexW=1|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 } @@ -2881,6 +2871,16 @@ vpdpwssds, 0x6653, None, CpuAVX512_VNNI, // AVX512_VNNI instructions end +// AVX_VNNI instructions + +vpdpbusd, 0x6650, None, CpuAVX_VNNI, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpdpwssd, 0x6652, None, CpuAVX_VNNI, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } + +vpdpbusds, 0x6651, None, CpuAVX_VNNI, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpdpwssds, 0x6653, None, CpuAVX_VNNI, Modrm|Vex|Space0F38|VexVVVV|VexW0|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } + +// AVX_VNNI instructions end + // AVX512_BITALG instructions vpopcnt, 0x6654, None, CpuAVX512_BITALG, Modrm|Masking=3|Space0F38||Disp8ShiftVL|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }