From patchwork Wed Oct 19 09:52:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 4998 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp228683wrs; Wed, 19 Oct 2022 02:53:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM484YyJWpXwyyiSQ/ounaUTe4H299lNfS9Cw0ZdUot74H1VlfcjBJ3b2n9/BMZQgyzIramD X-Received: by 2002:a05:6402:538f:b0:444:c17b:1665 with SMTP id ew15-20020a056402538f00b00444c17b1665mr6761632edb.98.1666173182126; Wed, 19 Oct 2022 02:53:02 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id nc9-20020a1709071c0900b0078e27f2ef52si12377975ejc.603.2022.10.19.02.53.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Oct 2022 02:53:02 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=e9Loostp; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BA5A23858D3C for ; Wed, 19 Oct 2022 09:53:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BA5A23858D3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1666173180; bh=sIqHkGZz4U0Hz8m3QEUWqL600twoEHQMHwXZl9ZuQwU=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=e9Loostp8Yhbx7ghck4Qt608HcyJBWqb79QeoWmZNkwWKH/6sSZpR9o5ME1pQJPX2 opY0kawtimftrSHJ7BkrSWN6+d6Y2njo+JoBPumfxNi3OipFRWE99eWuR7cQf0zng7 zTVnlj516y2MVJz6X8xqFShk/2sTqhBRpD9t3XUY= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org 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 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 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 Subject: [PATCH] x86: re-work AVX-VNNI support 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?q?BwH/0nmwK1tSym9JMhjpoWnFGCp1?= =?utf-8?q?sdgJdTro1yfLcV+ySHUHJJFFu0muDYa4BNFtjyurYW/lMSYQdKvEtW7Z03kaoK/eA?= =?utf-8?q?neTrMF0CSVtDb2EZP8Gko7dgfwB+n6c4Busv0Xwp81coVMcPwRqmt2bbn4M23CDU9?= =?utf-8?q?SxL/x/j3zPaHGWoJPMZFkn4B5kGlrsI04Zmft0frCTtPy3VfSP/ZYhUjGMBJz+1AI?= =?utf-8?q?ULhJPNeZp3wRjtpGpD9BSB5G/plBScubGi6KlwifH7ulqLwL6KlZzCMKWpWdKBtUP?= =?utf-8?q?klL8h5o396dWJ+QSyuyPA/AeRL8wzyv8QMx2D+lPOZsmvGno9BvZNwYtllI7I4G7J?= =?utf-8?q?qayUdlmAoRKtmpYScW2xZNWOQi/MM+4kKmHRATUedlYjL68oph0BJRDaxUj9Gkp5v?= =?utf-8?q?lR/E3jD0rpAjMw+GlutmqMnJP6jqvrnOi//jLaw54Uzbon+fNOV83e/wMUZrqah/m?= =?utf-8?q?1a4iZaeQiWo9KpjemdUyroiQ2hkOKsPDO5qPg96Mp3RwTbA5pzKMqUg3dq12y6U1C?= =?utf-8?q?yL35D2r+BTLxnxNh8jpz/koUXH1bbr/NDxg/0LyGzlRsKwjxMZR+QZeTlB6MLGAra?= =?utf-8?q?iERccMnSXNyV93SNG+LoCDqHlL6qlBjGIZzGJmk84Yb8lxl8EEyPHfF0s35XvZPAp?= =?utf-8?q?6EI+j1JA//AuF4aNJRqmUPLCYH/mYy4y/ylT5+dnnTMFUi1M/BBDSPynrWI8AyJTM?= =?utf-8?q?4XZ/aYb/o63o1jMrgXuPD9j6Iwhzosronzw1PChA2ZBhYZt63AQ1/9MIh32uHeWI2?= =?utf-8?q?tzWSvL1/mlb7dM57CoNPMYCE6W49YVQZCzuxTMG546MMOP2fH38JDiJUNFcguyKnh?= =?utf-8?q?UanTI9ZjqzVkZHa+LoZnPrShlt6sk5MMscPC9f+LL5zfM09IaElQvZNlmm3nbE4ug?= =?utf-8?q?cyht417UT30nDzzXUcOWdAluyU4zB9rpXdCo/E2ZakoWxlEyh6lByC1CuJI76Q/r9?= =?utf-8?q?7BetbfRS+m4sxvMlcrJ0TO0EIv2k5JlApD25Nk0CEyMucvb4e9xzko+r5jYGhvT4F?= =?utf-8?q?SXSIYOvgs1x+KnGPUeNbNop9iCttGN040ly7rEJwK/4IyFj6c9q8EcQ/2WDilMB/8?= =?utf-8?q?OBatWWqqtAF4C2HLZL2G2HzPYAdIUcOVJdT/0NRcBkHNSE1fBABySEvYqtRFec393?= =?utf-8?q?YKS+ubXyljO9ztKQsFjSUrm5grS8FVdW5rH54RGwT5Ez9xzk3xWR9/OnVyQ3ZqS1I?= =?utf-8?q?e0odHYxH3bXkr8aU6iHhxw83o0vCBMw8mW1K+ZypdgoUJZugIIqM6sw4OxGclWfP6?= =?utf-8?q?JxOXnkhDUbEVhf30qneQHz97PAJcias75htkUzp1751vnRlmcAlQdOPIndfa+iVjM?= =?utf-8?q?GLPwEDAHH+I9H8D+HO/rpqltRnse/XEC3Shnsh4UwjLhUWuVaqAHzm7mUF8G5RkZX?= =?utf-8?q?7yYEUuVRv/jY3HxPhMrO0TWYREhU/w41NHD/lHP/BcCgabOZVxte8V7i4u2SHLxfe?= =?utf-8?q?ztsClvtJ62+zpzamCTsOV9f4mdwC7tWsJaMa2XAEmhps+gBmJb8G4KLxE7lssX0pd?= =?utf-8?q?KUtnEnwHv6so?= 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 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+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747109210516019047?= X-GMAIL-MSGID: =?utf-8?q?1747109210516019047?= 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 }