From patchwork Tue Sep 5 07:51:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 137483 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp1523965vqo; Tue, 5 Sep 2023 00:51:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEBsim8Ogjd9rq/lSHCr92iKuWHjNZibq+fM49X/XaP7Qotgm7Ge2Yjn5zfMrqz8CbWGNzX X-Received: by 2002:a17:906:8a70:b0:9a1:cfd5:1f38 with SMTP id hy16-20020a1709068a7000b009a1cfd51f38mr12292106ejc.11.1693900288946; Tue, 05 Sep 2023 00:51:28 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id t24-20020a1709064f1800b009a224eb0938si7499598eju.21.2023.09.05.00.51.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Sep 2023 00:51:28 -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=WYMsmXFS; 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 C08F3385842A for ; Tue, 5 Sep 2023 07:51:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C08F3385842A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1693900287; bh=3ZzsRbdUcFounU/MUrbkL7v8yWo1dkIl0a4gYJT2dpY=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=WYMsmXFSI8mPiLiu+bIuE8XDW+wJei5c66whOXFxWYQNoXeI1psEQFMexjHHVoDn1 oDWObnTEYZrBcarSRBxSKKNjbAgADsemVWXxXqLvKFwMrlJkS/vfAbaU8eGRfAiLAY G76JUiehSib/mb1HIajBZ4+njz/VRku+GIFf9GrI= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2068.outbound.protection.outlook.com [40.107.241.68]) by sourceware.org (Postfix) with ESMTPS id C48033858D32 for ; Tue, 5 Sep 2023 07:51:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C48033858D32 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G9u8zmIA0N3sa8KZnyKm3YekcjMvcajMZhUCEuoVHK7a0NLmAWG6mJKqioHhqbQnoUKyzBfiWv30E5Ez4XkPtOsvfHUWTplk/ap+FW4Iu0qPAcuggOKqIXd6KjndsE5nNMfncSpFdaW95pFl3uJv+sueUYFuNIOcM6Jl80Kt9/uL7FwvfNWJGoCMV4A1KW+s/0dKAYJASrQ+P9nfM2zyzsLz2MwbB2verru90q5EFerq83YvzsuBHNZycZj+qscy3Wxl9rLbsuNdinFQb5zsOv+BQqqs+1xpvg8qFQ5uKRZxguhufJJAmQD41b2gF///TXaaLz05uYyaU9Wml6iPkw== 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=3ZzsRbdUcFounU/MUrbkL7v8yWo1dkIl0a4gYJT2dpY=; b=SLd04m4B2xxPjqBEJlggK6CjFNrKdnUaRu3xam0a9Zewo/xTD9+cUAFGA5zbHdXXpk9xzdk5OmxmfkG7K8tr7AONHzeF+7sg5Jt6GPDHZj6PYHvyn1Z7pbW33YQgjQ4xoQ+z6mFIFQfn9EOwhn5cH8Xi7GVMuBEBTYGsu5yD7Ms4uAIqvbgue2G6lU4y2lpJaskVAP4wA4hhZ5aXJc3QQpKYg1LY3VR/DtFM/32pP7KhAMZbNBt9UApNw5pqCHEr9pWuhs6PcLReLPdJUH6jAAA6u4t1mFgZSWr9TOVYRzt6p/YeHBQ06bH1wrdarb2Fz5cpc+7sy9SjBBoiFI+RlA== 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 DB9PR04MB9356.eurprd04.prod.outlook.com (2603:10a6:10:36a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.33; Tue, 5 Sep 2023 07:51:14 +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.6745.030; Tue, 5 Sep 2023 07:51:14 +0000 Message-ID: Date: Tue, 5 Sep 2023 09:51:11 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Subject: [PATCH v2 1/3] x86: make AES/PCMULQDQ respectively prereqs of VAES/VPCMULQDQ Content-Language: en-US To: Binutils References: <598bfb0c-495b-0445-735f-2ddafc45643d@suse.com> In-Reply-To: <598bfb0c-495b-0445-735f-2ddafc45643d@suse.com> X-ClientProxiedBy: FR0P281CA0237.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b2::9) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB9356:EE_ X-MS-Office365-Filtering-Correlation-Id: f2ef70f8-840a-4964-d6b8-08dbade4e0c5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kx/qcWpyllaXZMXgjLkx3vnjL9fv54Co65YfQ5iNQ4ZZlH2w3IQq8xrSuO2M0EnPqa2UaRH6LPbwuO6osoxkQ7nJGRys9NU6X00i7yUllTaAp2DX9yF7igZBCnhZzepDmXhdYPCI3DeGqUwOmaeKWFv076Zes7yFGPDyXLuFNSyMWrEPp4KyciG1rrptUxkQc6WqXzsTzOosr8DdL1sgwYg9j6uotJE1OFxbbb4ixkVYU3rBXJEfkVMxRgjtzwjxfHn2D7n9nt/+UHwySh4XuM3Lwqi6mq+j1Ct/il5BbGRPZgX604LfXynDhQiqX/mCR8oplzrKZdMEUAy4uAXV2MsXMnpeXYqx/Yg3BO5T2ry/2MCPqT4ODGeveJaAzgE6HVPBpwHP62awQVtHxDmhSJkJsTnV9f9SxZuo4oFelTFjeRVMYQHhBKQAUVgiF8SCKzUUo8AjOrpCWGhOIiUclHVkb+5mQ+aLkGiMiLw9FkQG0kZ1W4XdQMGgSpG8htxhBy4hCw3/VN+dyQgLr8F1wagIsDA2Mv6wXt2ITwmeq9foKttoGzO6/4E2oNhsNSfrDYxvuXjN4MV7zLNjjrtPE/DZ5gintOq8YvdtLXmubUcvf3jFx7z550EvHYMEoDoCGIvPzmtgRe+q25RyI6f4VA== 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)(346002)(366004)(39860400002)(136003)(376002)(396003)(186009)(451199024)(1800799009)(31686004)(36756003)(26005)(6506007)(83380400001)(31696002)(41300700001)(86362001)(5660300002)(4326008)(8676002)(8936002)(6666004)(6486002)(2616005)(6512007)(478600001)(316002)(2906002)(38100700002)(66476007)(66556008)(54906003)(66946007)(6916009)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?jzxKuUC8pEarbD4nVoXmG+FjhZ9b?= =?utf-8?q?mIQAFaae4k66Mzf4Waq4eE/dx61SDAjf+g7yAbkThdLgbDn5C/YmOBV7vN7pOq9Me?= =?utf-8?q?maMt6EcWAbJaZNqenVtfBMMMWPvL9re9UgrAklYj+JZPLWBiHle9pPujEJ3fbdO/i?= =?utf-8?q?n8CNFaa1N4rP3azJDspAu3aFniGmXIjneg9FpbbMKQjbnTziqGWGR1+ji3iEvkHVs?= =?utf-8?q?nyRsD7eRkxp16yexGXv+fExVqKhDdD8U88qyfOKUj8oxwzsU5mjXl3Wv6Y1SpL7OP?= =?utf-8?q?Qf5YxEEHDg4CO0nmVptPe19PSKIqXu3sTFn6ay/cUtXkOf5R0SC8q7oYL0ETzg8li?= =?utf-8?q?+7lmcj14NBO63we1ipwyws9p35b4z5LDTf2+KgJelHPJPX5SaXlvFhdwfzKu5VSY7?= =?utf-8?q?V8BbLFT+X9ZsA6a0FLZ+S4PioM5jka2eDFeYlHVn+vPTP5xMZt8TY0oqY0vCTuZID?= =?utf-8?q?1oYPithShmmYDABbmQsxB4AdOaCMj3qzhwd8q73E3qnK7Wq34qHv1pIFnS9HKXaeI?= =?utf-8?q?tVKJkMwBficSNQ6x3llyj1XsMJ6ZKocfdda2txlJbxVn38WBIUbDD4FS0Z0AKpBJR?= =?utf-8?q?w8GRTGssvgBWGq8t7YMFfc5Uw07OqJY8OxFfiQFXD5aQXHhsYE65jX302Q+6BBNOg?= =?utf-8?q?Jzijpgi8Dur88CsOwLv2TPQdV0/gzbD397UIpIAm/XEmF137x/oIpMULt3ZVC1+wE?= =?utf-8?q?SCoHaZtx+/COSPU7Fim39MMYlqVquunb8KtCVJGBj9Px/tJK3IgoskXlALKr4t7Io?= =?utf-8?q?Ja1/oLZ94SHAB0XPHhXYFIUuWczWZAA+Kn9LfRFPcKpHAQUAvOiZGqWiHRnqm3bX5?= =?utf-8?q?atLWqI83uE1Wt+uBKrJRyx9copvKnovmFMY/9XXeXI520AkFH6bh00nYZx0h39V6J?= =?utf-8?q?bfGLNZ7T9Kn22sBlVoKMnaYn56lKFbGe+TTLq6WiU/mGCiXtj456s3CBw9WN86NDe?= =?utf-8?q?C+TYYJkHbQqH1/lizZKMwZJfvnHwSWxEtBU4lJWxkPRz7s0TxH4nu4k3GDhvUO0L5?= =?utf-8?q?MT1huFgRUKBg59elL0KSLzEezjJCtt31jw4IZ0CDgRFBTnAVTP0P1hQiR/hO74w7v?= =?utf-8?q?txHd908uJgnGVxRyOeYeiCt7iZcbnF6uWQeT4lxgQ+CoLTcWaeYjOTu/36cMk5gfM?= =?utf-8?q?gruf9e2xTuxokLnrEPivMf/lcatNavZk22VlDuZ0UAD+W+Fj0QudP1nLkDsLyBf4/?= =?utf-8?q?tbfXFG/I2tlWWEKo8F+cf6XTz/iBVPNm6s+a/GKuGm2lrXM3JtKFhVfZHMZxFchkx?= =?utf-8?q?TdTH7zD148SummcJlUPLaassgEDuxABy8BM3Fsz+DM+QTXH4PC+poHNR/+6Hza02o?= =?utf-8?q?aUbgcUJBpROHK3mSGQ+AA+26v9KKhIuu5iEI6p/2K+sZeQ8WHQXffOHtJJXZC/J8H?= =?utf-8?q?SOz89rWlFPA6W8qvFBHNlObNRSZvtRqgXFoONMpmYj9Kpgovc+RMfz0Yh7ikuGydo?= =?utf-8?q?8vDCCgWROVTn4Dc6c5uKoWCV/Q2QKv+7kjPxtND5v6nGU61GthLPfXu0F1cX3lgkM?= =?utf-8?q?Tu+lGNYeaAsk?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2ef70f8-840a-4964-d6b8-08dbade4e0c5 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2023 07:51:14.0247 (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: Y6POImhJcYCrmE3bPPMVMEsiHQz71QLV+evs5XYSH2ZxFTy8KYJptj2jNnsNB9BNfZXk/hyBGE9mnIignKDc2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB9356 X-Spam-Status: No, score=-3027.0 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+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776183189116257019 X-GMAIL-MSGID: 1776183189116257019 These probably should have been put in place already anyway, but they're very much wanted in order to then put AVX10.1 support on top. Note that to avoid reverse dependencies towards SSE (just like we already do for AVX and XOP), add_isa_dependencies() needs some further tweaking. While there also address a related anomaly: Disabling AES but neither AVX nor VAES (similarly for {,V}PCLMULQDQ) would better keep the 128-bit VEX-encoded forms available. Note that for this the VAES insns are moved past the AVX+AES ones, to avoid the property-11 test suddenly failing. The test really is wrong, but let's not also make things inconsistent: Without the movement, YMM use would be correctly recorded for the 128-bit forms simply because the first template already matches, as long as VAES wasn't disabled. Yet it still wouldn't be if only AVX+AES were enabled. Nor would behavior here then be the same as for VPCLMUL* insns. --- v2: New. --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -229,9 +229,9 @@ static const dependency isa_dependencies { "GFNI", "SSE2" }, { "VAES", - "AVX2" }, + "AVX2|AES" }, { "VPCLMULQDQ", - "AVX2" }, + "AVX2|PCLMULQDQ" }, { "SEV_ES", "SVME" }, { "SNP", @@ -712,7 +712,8 @@ add_isa_dependencies (bitfield *flags, c unsigned int i; char *str = NULL; const char *isa = f; - bool is_isa = false, is_avx = false; + static bool is_avx; + bool is_isa = false, orig_is_avx = is_avx; /* Need to find base entry for references to auxiliary ones. */ if (strchr (f, ':')) @@ -732,7 +733,7 @@ add_isa_dependencies (bitfield *flags, c && reverse > Cpu686) isa_reverse_deps[i][reverse] = 1; is_isa = true; - if (i == CpuAVX || i == CpuXOP) + if (i == CpuAVX || i == CpuXOP || i == CpuVAES || i == CpuVPCLMULQDQ) is_avx = true; break; } @@ -740,7 +741,10 @@ add_isa_dependencies (bitfield *flags, c /* Do not turn off dependencies. */ if (is_isa && !value) - return; + { + is_avx = orig_is_avx; + return; + } for (i = 0; i < ARRAY_SIZE (isa_dependencies); ++i) if (strcasecmp (isa_dependencies[i].name, f) == 0) @@ -765,11 +769,14 @@ add_isa_dependencies (bitfield *flags, c if (reverse < ARRAY_SIZE (isa_reverse_deps[0])) isa_reverse_deps[reverse][reverse] = 1; + is_avx = orig_is_avx; return; } if (!is_isa) fail ("unknown bitfield: %s\n", f); + + is_avx = orig_is_avx; } static void --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1441,13 +1441,6 @@ aesenclast, 0x660f38dd, AE aesimc, 0x660f38db, AES, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } aeskeygenassist, 0x660f3adf, AES, Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } -// VAES - -vaesdec, 0x66de, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM } -vaesdeclast, 0x66df, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM } -vaesenc, 0x66dc, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM } -vaesenclast, 0x66dd, VAES, Modrm|Vex256|Space0F38|VexVVVV|VexWIG|NoSuf, { RegYMM|Unspecified|BaseIndex, RegYMM, RegYMM } - // PCLMULQDQ @@ -2065,13 +2058,22 @@ vsm4rnds4, 0xf2da, SM4, Modrm|Space0F38| // SM4 instructions end. +// VAES + +vaesdec, 0x66de, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } +vaesdeclast, 0x66df, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } +vaesenc, 0x66dc, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } +vaesenclast, 0x66dd, VAES, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { RegXMM|RegYMM|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM } + +// VAES instructions end + // VPCLMULQDQ instructions -vpclmulqdq, 0x6644, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM } -vpclmullqlqdq, 0x6644/0x00, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM } -vpclmulhqlqdq, 0x6644/0x01, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM } -vpclmullqhqdq, 0x6644/0x10, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM } -vpclmulhqhqdq, 0x6644/0x11, VPCLMULQDQ, Modrm|Vex256|Space0F3A|VexWIG|VexVVVV|NoSuf|ImmExt, { Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM } +vpclmulqdq, 0x6644, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpclmullqlqdq, 0x6644/0x00, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpclmulhqlqdq, 0x6644/0x01, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpclmullqhqdq, 0x6644/0x10, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpclmulhqhqdq, 0x6644/0x11, VPCLMULQDQ, Modrm|Vex|Space0F3A|VexWIG|VexVVVV|CheckOperandSize|NoSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } // VPCLMULQDQ instructions end