From patchwork Fri Jun 16 07:30:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 108895 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1148547vqr; Fri, 16 Jun 2023 00:30:58 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4oZylT78q5nP4JEkbUvOW012POz992vpmtUqQB1BdrJIK0W2MWGUNfkDKPFsZZwBUoWU8e X-Received: by 2002:a17:906:6a18:b0:974:419d:7847 with SMTP id qw24-20020a1709066a1800b00974419d7847mr1201560ejc.71.1686900658757; Fri, 16 Jun 2023 00:30:58 -0700 (PDT) Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id a8-20020a17090680c800b00977bbe82762si10714287ejx.31.2023.06.16.00.30.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jun 2023 00:30:58 -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=y2NHsrWi; 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 C0F8E3853D05 for ; Fri, 16 Jun 2023 07:30:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C0F8E3853D05 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1686900653; bh=fQKOcZIj6sjo1GgWVyKPw5zZpngrh//knCtoV57CLEg=; 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=y2NHsrWiCcGsYwZ+k6l4Qj8E8XbvhQvtsm6FU30Kiv1qqBVuNLmJc8oTYp6t/feR9 5gVmtIeFg+w8hy1oXyXhKAms3tVlflmetfPk4BVYIfOyysR8SIfHLhk7m3s+wp0e0V h+cAq77+g2TNxgLksNScoMu9A0gynM1VfXKPN6bQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2054.outbound.protection.outlook.com [40.107.20.54]) by sourceware.org (Postfix) with ESMTPS id BF5CA3854E73 for ; Fri, 16 Jun 2023 07:30:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BF5CA3854E73 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AedNLFaxQPc1MpCaBX0JK2HzWhEVu0TaVLvvwv2XT90ZXGZK9jDOuW8mwVXuFmzZhWfYQFRyNEDjBYTkHULX9nOV+XTZKA6AUENWQBsluccVJ6FRo9BqnEodHA1hbvf8JjqRlqUoERd4X9h5WL96PowB0FZvCUQFfT+NKyYPXwIyG4ltts3eAyUn0aCUjwOmxmQckhuv7Zi29dsSspGCw+jNWE2J6uOqgXx050Ywis6TUY+EHifwcAoTMOI3EWcNixXfxnREv6pzU26fsTiMuEb12SE2I5WwavdFL5EWky+EEaBHjVXsbgvd+Yxdocr5m/N2wLPmiu6ZJDsKyHi3bg== 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=fQKOcZIj6sjo1GgWVyKPw5zZpngrh//knCtoV57CLEg=; b=kJKSKn0iql96jCdGqfQukaQPaE0piG8fZzJXon6IjEnTSVAhhUZgb13keYt65RLHt6UVEdH+oENjgt9oejbyVjeiO5fHVLafulH+iR1uj3JInuH08oBpgBuyWuLU4RxHJLMjJ5E923BBchAeGHzlBm7jAm6B2T5A7ANM54hKFPM7cnh7Ho2mxjCzYrAdqQ6JT3RiTJDZmXSmczhMHOLDl38aE7hDw4bTDDRI1nOrMr6E9dfXm+sigAkPoVlFq8ZyQDzGk94QorlPFInmynPue1zmgj6qPAkEi4sEweqHEVq394YB8FosUfEwHMyCL2QEXKMml8N95aR+lM02XQCSkQ== 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 AM0PR04MB6913.eurprd04.prod.outlook.com (2603:10a6:208:184::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.29; Fri, 16 Jun 2023 07:30:43 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%5]) with mapi id 15.20.6455.039; Fri, 16 Jun 2023 07:30:43 +0000 Message-ID: <503caac8-8824-823a-81c2-762cba207cb6@suse.com> Date: Fri, 16 Jun 2023 09:30:41 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PATCH 1/4] x86: optimize pre-AVX512 {,V}PCMPEQQ with identical sources Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR2P281CA0126.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::20) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM0PR04MB6913:EE_ X-MS-Office365-Filtering-Correlation-Id: 4063fc81-96c5-40ce-78f2-08db6e3b979b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ja/uA5iCf8a4C4VTNrJuhfy3+DTMzMjBXOhZ6ofAVS41pkc6va/L4HmWbB7JgOUzqpMgLHriOOh+9iiNuCCoD8LuAWoZigi8AORXd2EURdfo9wuf6sJ9tYUtSjR5/r6/KSc/Jl0g+5AMDAoqBpq12voxXqzzif966zM0fKTTWkte9+Z0puyYe69TtCWDOj4Os1rfuRAcwzir4WonIov6FTAPD/hLmjlezj05p9qL+M9wXvCLUxA0DWeNjDh0m5GVPfbiMIiqHuFcASn+YyYs52yTgsMopvzco6nQn3Nk9/uMi5w0cWnE69pJd0InLVBg/NwvCttv3/ZJFFFoZICexxO51gnl89H1EZGO0DjQlWz30/J9UdqrFB4bq0diStv2ZSHsxO1NcXRuYh6IN8jCOqgHva7JfcHFfIaYPQjG7XzBYkugEQoGUPUmLJuZCZZLqHrMlwdsTGtQGwwq50lGBY8I3BVL0Arc/kvOZxLRmrCyl8e1EyjPqM1yGXEhGU/gHeFTLbGBSeR3qntDR/f0p5qt6mCLvMrwlWRw7raIiak749yRYdfl6blYVVpTGce+/+b/KUSWVav4twLVR/119NU8l3tW2OelQiPKRRLjHBBrgecQFUbFpWQk2z+c+fEv1wFRt4V4mFEawgHeAu/onw== 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:(13230028)(376002)(396003)(366004)(136003)(346002)(39860400002)(451199021)(478600001)(6486002)(5660300002)(41300700001)(8936002)(8676002)(2906002)(36756003)(86362001)(31696002)(38100700002)(66476007)(66556008)(66946007)(316002)(6916009)(4326008)(26005)(6512007)(6506007)(186003)(31686004)(2616005)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9jShhh4jaPSg3D+KDsK3JPAW0JSS?= =?utf-8?q?BRWtpz4VgS8IUav+teVPZiCtz97JjGv3PddQUBPxJGth4Z/bGQYyAdCd2jJW4aMkL?= =?utf-8?q?02SOyoDvoUi/NE7GzF7ZDUAP0JyRgpmEFXrHSTcKY8oc6X7YgnDjH9R2zogIqSBn7?= =?utf-8?q?kQnvIuCKlGWbS88Gf8QvfHnqa72nSl1baA1lCCpbwGran30mxN79QBmKosTTiqCcI?= =?utf-8?q?jAfFnV4TXtyQ0Ui9w0vY+WqM6QK7P6/e1ScHgDMOQExqiNKfI/xArj4AEHiQCEP+8?= =?utf-8?q?I/bypO/JUaY/IlSFawysYwaen4RNnPzPolqoUpxWSBQKFC2v/qyyp4SzmqXULAgkp?= =?utf-8?q?XAtWbFLl+/NhZ20MYq5rGdXrkmS1pISLUUVwTrlSj+IPNX9tTO/bVk5/yeC/S9b7P?= =?utf-8?q?s7QmYFgEvdfx+ryXyXAsT/wsTi+wh8JI2fG5otVGg4uEKrECuV5YbrINqsG88wO/H?= =?utf-8?q?0/bRaahjjvsqOMZswGyUENcxUki3yvnT0yThAQWyKdB3+Tit7B4LFS0IH8tLp3Lse?= =?utf-8?q?aYmF7OvdB2x/QSlY/ZNgE8Du7vvF4zam09u4xdKHa7vO8h4MUfXMcoh8KakaVGe64?= =?utf-8?q?jYvmTLwtx2kBbqLSeYf3MwtXTB2TDJfaaTg3nXQ54RWbd5gVt6xFnbiodqgzQYfv9?= =?utf-8?q?8XLkqVf1EPOeN0ArrMWYHs4vWdrQtFxBFLaqATbWzaSJewuhKJJH9d5jAvmkDo8EM?= =?utf-8?q?MF2uZUPvLEwypa0XHJcHSrdnbO7d1budIGstjxGqYbHA2Se1JDLIh9BtVdYB43nYR?= =?utf-8?q?DWYx8JU/Waihxa3Dp6KAE2UE2+227P/bwQZ7H+8bawxgCK/yCZEvEd+wDRlpDFITp?= =?utf-8?q?2IzZQX+Q4481kRqq0uWTkeIVBLUJfV+X5m7W1eeS8ZcjhnebqunMUDNAWu4y4IdvX?= =?utf-8?q?G4vQ1daZvuBmQBtJInr21xuY8t0Dk+EsW8dJSfImmgWTyOwT0FFhrARTFTvbFvOc9?= =?utf-8?q?RS4tRP9ObDwvBtllh7zsiSF7ZeFI+2dMcwVDLhCFs/VeCoMIo/U1X7wnq/ZoJQtb6?= =?utf-8?q?GdgzG7NPnbM/kwdtHZEdXKGkaO143+w2ZYTwhmMT5NLXCgrj9i1MvK6rpDH5lhpqh?= =?utf-8?q?gORHTdTZbqG6D+Ly9JNx2GJ+dRf4VfQ9it1h0ypYuBFgklWbX5gD4kG2VBNByqYDs?= =?utf-8?q?OgTCjU/HveyvjjU3+rEzV9RigLDZSWRslBh1vj2bMsxXA34Er59oH+s4etfQjSCxY?= =?utf-8?q?8d2kQl7e9/058w6zEZnm95WcoRDR5CI3BZJbEydFhQn7MCtgqMxGicWTa5wVNXijH?= =?utf-8?q?KQwVifb3mrNJKw4TbMRTYL3FyYHbNohEV5Y9OpmnGUk45WscR3r8QfQMgLR40caGT?= =?utf-8?q?jeK6hlEljf+DegWtefreRMjU0nxZe6cRibtBY+pF5w9KtdpMntdYEATGb0CmeBoai?= =?utf-8?q?6EbxjNd21Mr7MNYvRnLrBHkA7mML3fRcqil+Sih2m9jICGIClob6jjtcrlYYc2IXA?= =?utf-8?q?wn5b+A0j9ZY9N9lzauIM2UHQM21mchaj9t4An65GQxMIgz0jPGXRerkoJbfGNyrY+?= =?utf-8?q?nQg9cpapr/ZB?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4063fc81-96c5-40ce-78f2-08db6e3b979b X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 07:30:43.0256 (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: /Po/5sr9Snf8++QZs5Z4FeUwgQC8gxLobKAxBse5IgPVN5nv6Y144rlLt6tFDu4iGRZqrdKPaQK6BOHOOqjeqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6913 X-Spam-Status: No, score=-3027.6 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, T_SCC_BODY_TEXT_LINE 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?1768843545106292241?= X-GMAIL-MSGID: =?utf-8?q?1768843545106292241?= The {,V}PCMPEQD alternative is 1 byte shorter in many cases. --- It's not really clear whether the same would be worthwhile for AVX512 forms: Some could be expressed via KXNOR* (when no masking is in effect) or KOR* (when masking is in effect), but others cannot. And while in pre-AVX512 code these patterns are likely to be used to produce all-ones idioms, this looks less likely in AVX512. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4563,6 +4563,23 @@ optimize_encoding (void) i.types[j].bitfield.disp8 = fits_in_disp8 (i.op[j].disps->X_add_number); } + else if (optimize_for_space + && i.tm.base_opcode == 0x29 + && i.tm.opcode_space == SPACE_0F38 + && i.operands == i.reg_operands + && i.op[0].regs == i.op[1].regs + && (!i.tm.opcode_modifier.vex + || !(i.op[0].regs->reg_flags & RegRex)) + && !is_evex_encoding (&i.tm)) + { + /* Optimize: -Os: + pcmpeqq %xmmN, %xmmN -> pcmpeqd %xmmN, %xmmN + vpcmpeqq %xmmN, %xmmN, %xmmM -> vpcmpeqd %xmmN, %xmmN, %xmmM (N < 8) + vpcmpeqq %ymmN, %ymmN, %ymmM -> vpcmpeqd %ymmN, %ymmN, %ymmM (N < 8) + */ + i.tm.opcode_space = SPACE_0F; + i.tm.base_opcode = 0x76; + } } /* Return non-zero for load instruction. */ --- a/gas/testsuite/gas/i386/optimize-2.d +++ b/gas/testsuite/gas/i386/optimize-2.d @@ -161,4 +161,7 @@ Disassembly of section .text: +[a-f0-9]+: 62 .* vporq \(%eax\)\{1to2\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxord \(%eax\)\{1to4\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxorq \(%eax\)\{1to4\},%ymm2,%ymm3 + +[a-f0-9]+: 66 .* pcmpeqd %xmm2,%xmm2 + +[a-f0-9]+: c5 .* vpcmpeqd %xmm2,%xmm2,%xmm0 + +[a-f0-9]+: c5 .* vpcmpeqd %ymm2,%ymm2,%ymm0 #pass --- a/gas/testsuite/gas/i386/optimize-2.s +++ b/gas/testsuite/gas/i386/optimize-2.s @@ -180,3 +180,7 @@ _start: vporq (%eax){1to2}, %xmm2, %xmm3 vpxord (%eax){1to4}, %xmm2, %xmm3 vpxorq (%eax){1to4}, %ymm2, %ymm3 + + pcmpeqq %xmm2, %xmm2 + vpcmpeqq %xmm2, %xmm2, %xmm0 + vpcmpeqq %ymm2, %ymm2, %ymm0 --- a/gas/testsuite/gas/i386/optimize-2b.d +++ b/gas/testsuite/gas/i386/optimize-2b.d @@ -162,4 +162,7 @@ Disassembly of section .text: +[a-f0-9]+: 62 .* vporq \(%eax\)\{1to2\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxord \(%eax\)\{1to4\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxorq \(%eax\)\{1to4\},%ymm2,%ymm3 + +[a-f0-9]+: 66 .* pcmpeqq %xmm2,%xmm2 + +[a-f0-9]+: c4 .* vpcmpeqq %xmm2,%xmm2,%xmm0 + +[a-f0-9]+: c4 .* vpcmpeqq %ymm2,%ymm2,%ymm0 #pass --- a/gas/testsuite/gas/i386/x86-64-optimize-3.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-3.d @@ -199,4 +199,10 @@ Disassembly of section .text: +[a-f0-9]+: 62 .* vporq \(%rax\)\{1to2\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxord \(%rax\)\{1to4\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxorq \(%rax\)\{1to4\},%ymm2,%ymm3 + +[a-f0-9]+: 66 .* pcmpeqd %xmm2,%xmm2 + +[a-f0-9]+: c5 .* vpcmpeqd %xmm2,%xmm2,%xmm0 + +[a-f0-9]+: c5 .* vpcmpeqd %ymm2,%ymm2,%ymm0 + +[a-f0-9]+: 66 .* pcmpeqd %xmm12,%xmm12 + +[a-f0-9]+: c4 .* vpcmpeqq %xmm12,%xmm12,%xmm0 + +[a-f0-9]+: c4 .* vpcmpeqq %ymm12,%ymm12,%ymm0 #pass --- a/gas/testsuite/gas/i386/x86-64-optimize-3.s +++ b/gas/testsuite/gas/i386/x86-64-optimize-3.s @@ -221,3 +221,11 @@ _start: vporq (%rax){1to2}, %xmm2, %xmm3 vpxord (%rax){1to4}, %xmm2, %xmm3 vpxorq (%rax){1to4}, %ymm2, %ymm3 + + pcmpeqq %xmm2, %xmm2 + vpcmpeqq %xmm2, %xmm2, %xmm0 + vpcmpeqq %ymm2, %ymm2, %ymm0 + + pcmpeqq %xmm12, %xmm12 + vpcmpeqq %xmm12, %xmm12, %xmm0 + vpcmpeqq %ymm12, %ymm12, %ymm0 --- a/gas/testsuite/gas/i386/x86-64-optimize-3b.d +++ b/gas/testsuite/gas/i386/x86-64-optimize-3b.d @@ -200,4 +200,10 @@ Disassembly of section .text: +[a-f0-9]+: 62 .* vporq \(%rax\)\{1to2\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxord \(%rax\)\{1to4\},%xmm2,%xmm3 +[a-f0-9]+: 62 .* vpxorq \(%rax\)\{1to4\},%ymm2,%ymm3 + +[a-f0-9]+: 66 .* pcmpeqq %xmm2,%xmm2 + +[a-f0-9]+: c4 .* vpcmpeqq %xmm2,%xmm2,%xmm0 + +[a-f0-9]+: c4 .* vpcmpeqq %ymm2,%ymm2,%ymm0 + +[a-f0-9]+: 66 .* pcmpeqq %xmm12,%xmm12 + +[a-f0-9]+: c4 .* vpcmpeqq %xmm12,%xmm12,%xmm0 + +[a-f0-9]+: c4 .* vpcmpeqq %ymm12,%ymm12,%ymm0 #pass --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1363,7 +1363,7 @@ pblendvb, 0x664c, AVX, Modrm|Vex128|Spac pblendvb, 0x660f3810, SSE4_1, Modrm|NoSuf, { Acc|Xmmword, RegXMM|Unspecified|BaseIndex, RegXMM } pblendvb, 0x660f3810, SSE4_1, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pblendw, 0x660f3a0e, , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -pcmpeqq, 0x660f3829, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pcmpeqq, 0x660f3829, , Modrm|||NoSuf|Optimize, { RegXMM|Unspecified|BaseIndex, RegXMM } pextr, 0x660f3a14 | , , RegMem||NoSuf|IgnoreSize|NoRex64, { Imm8, RegXMM, Reg32|Reg64 } pextr, 0x660f3a14 | , , Modrm||NoSuf, { Imm8, RegXMM, |Unspecified|BaseIndex } pextrd, 0x660f3a16, , Modrm||NoSuf|IgnoreSize, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex } @@ -1592,7 +1592,7 @@ vpblendvb, 0x664c, AVX|AVX2, Modrm|Vex|S vpblendw, 0x660e, AVX|AVX2, Modrm|Vex|Space0F3A|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Imm8|Imm8S, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } vpcmpeq, 0x6674 | , AVX|AVX2, Modrm|C|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } vpcmpeqd, 0x6676, AVX|AVX2, Modrm|C|Vex|Space0F|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } -vpcmpeqq, 0x6629, AVX|AVX2, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } +vpcmpeqq, 0x6629, AVX|AVX2, Modrm|Vex|Space0F38|VexVVVV|VexWIG|CheckOperandSize|NoSuf|Optimize, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM } vpcmpestri, 0x6661, AVX|No64, Modrm|Vex|Space0F3A|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM } vpcmpestri, 0x6661, AVX|x64, Modrm|Vex|Space0F3A|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM } vpcmpestrm, 0x6660, AVX|No64, Modrm|Vex|Space0F3A|NoSuf, { Imm8, Unspecified|BaseIndex|RegXMM, RegXMM }