From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by sourceware.org (Postfix) with ESMTPS id ABE143849AE1 for ; Fri, 19 Apr 2024 09:37:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ABE143849AE1 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-Filter: OpenARC Filter v1.0.0 sourceware.org ABE143849AE1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::332 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713519486; cv=none; b=c+7O0/e3A4YwxZ0+8z8Mf2I7Jy9r6zVC466n+mWNCF//khnoSNVP8Z6/89LvkWX3UaWf3mb00kw0kFEssMDhV1OCyKPx3EzRddRtN9AJEj8NE/Tb3R1/glae2oz40tJI6qkUy1+3w9AmGSCTZAY6I81EqAfvqbLCnEAtpzrSII4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713519486; c=relaxed/simple; bh=hwpBPhYgsEVyt6UU7HygB0g19kLGbFHy2oupxHjFL8s=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=SzvLazgJVA2jq0z/ONu69Zlj3DHAqO6O/NSpf2TkETvPhcAcu7tbfHGmxX2c0cFkKPSK59icYRUF/F8gedLYnwo66dN730IMMfI9+hl/k4sAzQZSf9G0pR7mpLFUfMqZZCRMq/TbV+Q/3gj0QsdPz3mxaSRYXsiuEjayVmQ0dds= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4199332c1dcso1272275e9.3 for ; Fri, 19 Apr 2024 02:37:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1713519478; x=1714124278; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=ICuo0JHrD5SOv/6SxjyylQwmqktzqRoKcL7GEKT5dv8=; b=XKGV40B7orMi0lWboUH/IcB+TDLreR+uv+WMVQDU/KG2xFqTHaUpXhBD8IjThutZpS rTQbB45MdlOB4rhq6jeYXgSHL0EWEKr32/Rgdasomj0q67mjQVENoZGR8VW1eG/UKAJC A7pQhduxLsWRYk3ynyLOQkUwJ++k7i1GVl/IyMnwRFm81OFMzjqxmDObQCdBhPaLAo/0 2A8RkuyuMl3x7DZcwCu+ipAdhms7XNkySI3JtMwYNkVvP4xMZqYzhHVD6bAGrEnT9TpT fsAifidfEa60HVAiuGKEh14ufhw2oe/SWURUWhpec/1qCNprEqw81M1BLu11K56ZDUOz 7/CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713519478; x=1714124278; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ICuo0JHrD5SOv/6SxjyylQwmqktzqRoKcL7GEKT5dv8=; b=kdGSCNfZerbPz9y1f067cr76iYIytaSBRCYZNbJ+IC6f1AEWKQhy/pBUu4firSKCgv 8ob7BiMKV5nZyVdrm6W2xQBH9/JKTpMEO7YGCLU+vnDxPXystBlpncy99qiWXHjowGAZ uIvuibcgqUNAxdamoYa63npPwvKruFs3M4RL7jqUBIZ6unzG/RKAvRcv9QF293ZhJ1HN 0cqi+wcqlzawTPcpA5Y1fdBGjQ75Yw20KHEE2i689+ByvoZ5BFtTAWfa9Zz3E1PReQcO ZIeNJTN3GIT6MCo8PGEqCeaIb0w28kb28+ACvk0/73QBELUE5Io764GJ+HlD8EsLGW/c Ha9A== X-Gm-Message-State: AOJu0Yy6PHRnn7mefZNdxRvMKUbcvIv1E4yv2wZ5JuDRVjhPTxQykFyy E8eSwWm3qMdvW9v6eStS9L30ueqAhQ1GMUUmSAivtkFeje537NfsgyGNEiD6HMAfDSuYVmr4kfU = X-Google-Smtp-Source: AGHT+IHOrp6949IVF9W6WO4HZPg2ux1KKuk++ib4Re3QkbnAKjbJZIBI8alSIoskmNiHDC0khDdPfQ== X-Received: by 2002:a05:600c:1c05:b0:417:d624:1fe8 with SMTP id j5-20020a05600c1c0500b00417d6241fe8mr1034672wms.30.1713519477836; Fri, 19 Apr 2024 02:37:57 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id b15-20020a05600c4e0f00b00418fdcc7168sm2940685wmq.2.2024.04.19.02.37.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 Apr 2024 02:37:57 -0700 (PDT) Message-ID: <1f66d44d-4185-48d8-ac74-edb92d372757@suse.com> Date: Fri, 19 Apr 2024 11:37:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 2/4] x86/APX: extend SSE2AVX coverage Content-Language: en-US From: Jan Beulich To: Binutils Cc: "H.J. Lu" , Lili Cui References: Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3025.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE,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: Legacy encoded SIMD insns are converted to AVX ones in that mode. When eGPR-s are in use, i.e. with APX, convert to AVX10 insns (where available; there are quite a few which can't be converted). Note that LDDQU is represented as VMOVDQU32 (and the prior use of the sse3 template there needs dropping, to get the order right). Note further that in a few cases, due to the use of templates, AVX512VL is used when AVX512F would suffice. Since AVX10 is the main reference, this shouldn't be too much of a problem. --- To preempt the question: If we weren't to do this (i.e. leave legacy- encoded SIMD insns using eGPR-s alone), I'd raise the counter question of why these insns are supported by APX then in the first place. By using a mask register (which supposedly shouldn't be used by legacy SIMD code) we could likely convert further insns (by emitting a pair of replacement ones). --- v2: Correct MOVSD. Also deal with RCP{P,S}S and RSQRT{P,S}S. Re-work . Re-base. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4133,7 +4133,7 @@ build_evex_prefix (void) /* Check the REX.W bit and VEXW. */ if (i.tm.opcode_modifier.vexw == VEXWIG) w = (evexwig == evexw1 || (i.rex & REX_W)) ? 1 : 0; - else if (i.tm.opcode_modifier.vexw) + else if (i.tm.opcode_modifier.vexw && !(i.rex & REX_W)) w = i.tm.opcode_modifier.vexw == VEXW1 ? 1 : 0; else w = (flag_code == CODE_64BIT ? i.rex & REX_W : evexwig == evexw1) ? 1 : 0; @@ -8278,7 +8278,12 @@ check_VecOperands (const insn_template * if ((is_cpu (t, CpuXOP) && t->operands == 5) || (t->opcode_space == SPACE_0F3A && (t->base_opcode | 3) == 0x0b - && is_cpu (t, CpuAPX_F))) + && (is_cpu (t, CpuAPX_F) + || (t->opcode_modifier.sse2avx && t->opcode_modifier.evex + && (!t->opcode_modifier.vex + || (i.encoding != encoding_default + && i.encoding != encoding_vex + && i.encoding != encoding_vex3)))))) { if (i.op[0].imms->X_op != O_constant || !fits_in_imm4 (i.op[0].imms->X_add_number)) --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -312,7 +312,9 @@ when respective checks fail. @cindex @samp{-msse2avx} option, x86-64 @item -msse2avx This option specifies that the assembler should encode SSE instructions -with VEX prefix. +with VEX prefix, requiring AVX to be available. SSE instructions using +extended GPRs will be encoded with EVEX prefix, requiring AVX512 or AVX10 to +be available. @cindex @samp{-muse-unaligned-vector-move} option, i386 @cindex @samp{-muse-unaligned-vector-move} option, x86-64 --- /dev/null +++ b/gas/testsuite/gas/i386/sse2avx-apx.d @@ -0,0 +1,261 @@ +#as: -msse2avx +#objdump: -dw +#name: x86-64 SSE+ with APX encoding + +.*: file format .* + +Disassembly of section .text: + +0+ : +[ ]*[a-f0-9]+: 62 f9 7c 08 5b 60 01 vcvtdq2ps 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 ff 08 e6 60 01 vcvtpd2dqx 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 5a 60 01 vcvtpd2psx 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7d 08 5b 60 01 vcvtps2dq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 e6 60 01 vcvttpd2dqx 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 5b 60 01 vcvttps2dq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 6f 60 01 vmovdqu32 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 28 60 01 vmovapd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7c 08 28 60 01 vmovaps 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7d 08 6f 60 01 vmovdqa32 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 6f 60 01 vmovdqu32 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 2a 60 01 vmovntdqa 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 16 60 01 vmovshdup 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 12 60 01 vmovsldup 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 10 60 01 vmovupd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7c 08 10 60 01 vmovups 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 1c 60 01 vpabsb 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 1d 60 01 vpabsw 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 1e 60 01 vpabsd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 4c 60 01 vrcp14ps 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 4e 60 01 vrsqrt14ps 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 51 60 01 vsqrtpd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7c 08 51 60 01 vsqrtps 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 29 60 01 vmovapd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7c 08 29 60 01 vmovaps %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7d 08 7f 60 01 vmovdqa32 %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7e 08 7f 60 01 vmovdqu32 %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7d 08 e7 60 01 vmovntdq %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 fd 08 2b 60 01 vmovntpd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7c 08 2b 60 01 vmovntps %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 fd 08 11 60 01 vmovupd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7c 08 11 60 01 vmovups %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 cd 08 58 70 01 vaddpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 58 70 01 vaddps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 dc 70 01 vaesenc 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 dd 70 01 vaesenclast 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 de 70 01 vaesdec 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 df 70 01 vaesdeclast 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 55 70 01 vandnpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 55 70 01 vandnps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 54 70 01 vandpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 54 70 01 vandps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 5e 70 01 vdivpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 5e 70 01 vdivps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 cf 70 01 vgf2p8mulb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 5f 70 01 vmaxpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 5f 70 01 vmaxps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 5d 70 01 vminpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 5d 70 01 vminps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 59 70 01 vmulpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 59 70 01 vmulps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 56 70 01 vorpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 56 70 01 vorps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 63 70 01 vpacksswb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 6b 70 01 vpackssdw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 67 70 01 vpackuswb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 2b 70 01 vpackusdw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 fc 70 01 vpaddb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 fd 70 01 vpaddw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 fe 70 01 vpaddd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 d4 70 01 vpaddq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 ec 70 01 vpaddsb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 ed 70 01 vpaddsw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 dc 70 01 vpaddusb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 dd 70 01 vpaddusw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 db 70 01 vpandd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 df 70 01 vpandnd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e0 70 01 vpavgb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e3 70 01 vpavgw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 44 70 01 00 vpclmullqlqdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 44 70 01 01 vpclmulhqlqdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 44 70 01 10 vpclmullqhqdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 44 70 01 11 vpclmulhqhqdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 f5 70 01 vpmaddwd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 04 70 01 vpmaddubsw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 3c 70 01 vpmaxsb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 ee 70 01 vpmaxsw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 3d 70 01 vpmaxsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 de 70 01 vpmaxub 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 3e 70 01 vpmaxuw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 3f 70 01 vpmaxud 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 38 70 01 vpminsb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 ea 70 01 vpminsw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 39 70 01 vpminsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 da 70 01 vpminub 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 3a 70 01 vpminuw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 3b 70 01 vpminud 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa cd 08 28 70 01 vpmuldq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e4 70 01 vpmulhuw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 0b 70 01 vpmulhrsw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e5 70 01 vpmulhw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 d5 70 01 vpmullw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 40 70 01 vpmulld 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 f4 70 01 vpmuludq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 eb 70 01 vpord 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 f6 70 01 vpsadbw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 00 70 01 vpshufb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 f1 70 01 vpsllw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 f2 70 01 vpslld 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 f3 70 01 vpsllq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e1 70 01 vpsraw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e2 70 01 vpsrad 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 d1 70 01 vpsrlw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 d2 70 01 vpsrld 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 d3 70 01 vpsrlq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 f8 70 01 vpsubb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 f9 70 01 vpsubw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 fa 70 01 vpsubd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 fb 70 01 vpsubq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e8 70 01 vpsubsb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 e9 70 01 vpsubsw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 d8 70 01 vpsubusb 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 d9 70 01 vpsubusw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 68 70 01 vpunpckhbw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 69 70 01 vpunpckhwd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 6a 70 01 vpunpckhdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 6d 70 01 vpunpckhqdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 60 70 01 vpunpcklbw 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 61 70 01 vpunpcklwd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 62 70 01 vpunpckldq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 6c 70 01 vpunpcklqdq 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4d 08 ef 70 01 vpxord 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 5c 70 01 vsubpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 5c 70 01 vsubps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 15 70 01 vunpckhpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 15 70 01 vunpckhps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 14 70 01 vunpcklpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 14 70 01 vunpcklps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 57 70 01 vxorpd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 57 70 01 vxorps 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 7d 08 70 70 01 64 vpshufd \$0x64,0x10\(%r16\),%xmm6 +[ ]*[a-f0-9]+: 62 f9 7e 08 70 70 01 64 vpshufhw \$0x64,0x10\(%r16\),%xmm6 +[ ]*[a-f0-9]+: 62 f9 7f 08 70 70 01 64 vpshuflw \$0x64,0x10\(%r16\),%xmm6 +[ ]*[a-f0-9]+: 62 fb fd 08 09 70 01 04 vrndscalepd \$(0x)?4,0x10\(%r16\),%xmm6 +[ ]*[a-f0-9]+: 62 fb 7d 08 08 70 01 04 vrndscaleps \$(0x)?4,0x10\(%r16\),%xmm6 +[ ]*[a-f0-9]+: 62 fb cd 08 ce 70 01 64 vgf2p8affineqb \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb cd 08 cf 70 01 64 vgf2p8affineinvqb \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 0f 70 01 64 vpalignr \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 44 70 01 64 vpclmulqdq \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cd 08 c6 70 01 64 vshufpd \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4c 08 c6 70 01 64 vshufps \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 fd 08 2f 60 02 vcomisd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 e6 60 02 vcvtdq2pd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 e6 60 02 vcvtdq2pd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7c 08 5a 60 02 vcvtps2pd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 ff 08 12 60 02 vmovddup 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 ff 08 10 60 02 vmovsd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 20 60 02 vpmovsxbw 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 23 60 02 vpmovsxwd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 25 60 02 vpmovsxdq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 30 60 02 vpmovzxbw 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 33 60 02 vpmovzxwd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 35 60 02 vpmovzxdq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 2e 60 02 vucomisd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 13 60 02 vmovlpd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7c 08 13 60 02 vmovlps %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 fd 08 17 60 02 vmovhpd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7c 08 17 60 02 vmovhps %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 ff 08 11 60 02 vmovsd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 dd 08 12 60 02 vmovlpd 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5c 08 12 60 02 vmovlps 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 dd 08 16 60 02 vmovhpd 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5c 08 16 60 02 vmovhps 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 7e e0 vmovq %xmm4,%r16 +[ ]*[a-f0-9]+: 62 f9 fd 08 6e e0 vmovq %r16,%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 7e e0 vmovq %xmm4,%r16 +[ ]*[a-f0-9]+: 62 f9 fd 08 6e e0 vmovq %r16,%xmm4 +[ ]*[a-f0-9]+: 62 f9 fd 08 d6 60 02 vmovq %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 fe 08 7e 60 02 vmovq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 e1 7f 08 2d c4 vcvtsd2si %xmm4,%r16d +[ ]*[a-f0-9]+: 62 f9 7f 08 2d 48 02 vcvtsd2si 0x10\(%r16\),%ecx +[ ]*[a-f0-9]+: 62 e1 7f 08 2c c4 vcvttsd2si %xmm4,%r16d +[ ]*[a-f0-9]+: 62 f9 7f 08 2c 48 02 vcvttsd2si 0x10\(%r16\),%ecx +[ ]*[a-f0-9]+: 62 e1 ff 08 2d c4 vcvtsd2si %xmm4,%r16 +[ ]*[a-f0-9]+: 62 f9 ff 08 2d 48 02 vcvtsd2si 0x10\(%r16\),%rcx +[ ]*[a-f0-9]+: 62 e1 ff 08 2c c4 vcvttsd2si %xmm4,%r16 +[ ]*[a-f0-9]+: 62 f9 ff 08 2c 48 02 vcvttsd2si 0x10\(%r16\),%rcx +[ ]*[a-f0-9]+: 62 f9 df 08 2a e0 vcvtsi2sd %r16,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 df 08 2a 60 02 vcvtsi2sdq 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 de 08 2a e0 vcvtsi2ss %r16,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 de 08 2a 60 02 vcvtsi2ssq 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb dd 08 22 e0 64 vpinsrq \$0x64,%r16,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb dd 08 22 60 02 64 vpinsrq \$0x64,0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb fd 08 16 e0 64 vpextrq \$0x64,%xmm4,%r16 +[ ]*[a-f0-9]+: 62 fb fd 08 16 60 02 64 vpextrq \$0x64,%xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 fb cd 08 0b 70 02 04 vrndscalesd \$(0x)?4,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 58 70 02 vaddsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 5a 70 02 vcvtsd2ss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 5e 70 02 vdivsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 5f 70 02 vmaxsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 5d 70 02 vminsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 59 70 02 vmulsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 51 70 02 vsqrtsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 cf 08 5c 70 02 vsubsd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 58 70 04 vaddss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 5a 70 04 vcvtss2sd 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 5e 70 04 vdivss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 5f 70 04 vmaxss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 5d 70 04 vminss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 59 70 04 vmulss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 4d 70 04 vrcp14ss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 4d 08 4f 70 04 vrsqrt14ss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 51 70 04 vsqrtss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 4e 08 5c 70 04 vsubss 0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 f9 7c 08 2f 60 04 vcomiss 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 10 60 04 vmovss 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 21 60 04 vpmovsxbd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 24 60 04 vpmovsxwq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 31 60 04 vpmovzxbd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 34 60 04 vpmovzxwq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7c 08 2e 60 04 vucomiss 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 f9 7e 08 11 60 04 vmovss %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7d 08 7e e0 vmovd %xmm4,%r16d +[ ]*[a-f0-9]+: 62 f9 7d 08 7e 60 04 vmovd %xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 7d 08 6e e0 vmovd %r16d,%xmm4 +[ ]*[a-f0-9]+: 62 f9 7d 08 6e 60 04 vmovd 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 e1 7e 08 2d c4 vcvtss2si %xmm4,%r16d +[ ]*[a-f0-9]+: 62 f9 7e 08 2d 48 04 vcvtss2si 0x10\(%r16\),%ecx +[ ]*[a-f0-9]+: 62 e1 7e 08 2c c4 vcvttss2si %xmm4,%r16d +[ ]*[a-f0-9]+: 62 f9 7e 08 2c 48 04 vcvttss2si 0x10\(%r16\),%ecx +[ ]*[a-f0-9]+: 62 e1 fe 08 2d c4 vcvtss2si %xmm4,%r16 +[ ]*[a-f0-9]+: 62 f9 fe 08 2d 48 04 vcvtss2si 0x10\(%r16\),%rcx +[ ]*[a-f0-9]+: 62 e1 fe 08 2c c4 vcvttss2si %xmm4,%r16 +[ ]*[a-f0-9]+: 62 f9 fe 08 2c 48 04 vcvttss2si 0x10\(%r16\),%rcx +[ ]*[a-f0-9]+: 62 fb fd 08 17 e0 64 vextractps \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 fb 7d 08 16 e0 64 vpextrd \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 fb 7d 08 16 60 04 64 vpextrd \$0x64,%xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 fb 7d 08 17 e0 64 vextractps \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 fb 7d 08 17 60 04 64 vextractps \$0x64,%xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 fb 5d 08 22 e0 64 vpinsrd \$0x64,%r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb 5d 08 22 60 04 64 vpinsrd \$0x64,0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5f 08 2a e0 vcvtsi2sd %r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5f 08 2a 60 04 vcvtsi2sdl 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5e 08 2a e0 vcvtsi2ss %r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5e 08 2a 60 04 vcvtsi2ssl 0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb 4d 08 21 70 04 64 vinsertps \$0x64,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fb 4d 08 0a 70 04 04 vrndscaless \$(0x)?4,0x10\(%r16\),%xmm6,%xmm6 +[ ]*[a-f0-9]+: 62 fa 7d 08 22 60 08 vpmovsxbq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 fa 7d 08 32 60 08 vpmovzxbq 0x10\(%r16\),%xmm4 +[ ]*[a-f0-9]+: 62 e1 7d 08 c5 c4 64 vpextrw \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 e1 7d 08 c5 c4 64 vpextrw \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 fb 7d 08 15 60 08 64 vpextrw \$0x64,%xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 f9 5d 08 c4 e0 64 vpinsrw \$0x64,%r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5d 08 c4 e0 64 vpinsrw \$0x64,%r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 f9 5d 08 c4 60 08 64 vpinsrw \$0x64,0x10\(%r16\),%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb 7d 08 14 e0 64 vpextrb \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 fb 7d 08 14 e0 64 vpextrb \$0x64,%xmm4,%r16d +[ ]*[a-f0-9]+: 62 fb 7d 08 14 60 10 64 vpextrb \$0x64,%xmm4,0x10\(%r16\) +[ ]*[a-f0-9]+: 62 fb 5d 08 20 e0 64 vpinsrb \$0x64,%r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb 5d 08 20 e0 64 vpinsrb \$0x64,%r16d,%xmm4,%xmm4 +[ ]*[a-f0-9]+: 62 fb 5d 08 20 60 10 64 vpinsrb \$0x64,0x10\(%r16\),%xmm4,%xmm4 +#pass --- /dev/null +++ b/gas/testsuite/gas/i386/sse2avx-apx.s @@ -0,0 +1,320 @@ + .text + .sse_check warning +sse2avx: + +# Tests for op mem128, xmm + cvtdq2ps 16(%r16),%xmm4 + cvtpd2dq 16(%r16),%xmm4 + cvtpd2ps 16(%r16),%xmm4 + cvtps2dq 16(%r16),%xmm4 + cvttpd2dq 16(%r16),%xmm4 + cvttps2dq 16(%r16),%xmm4 + lddqu 16(%r16),%xmm4 + movapd 16(%r16),%xmm4 + movaps 16(%r16),%xmm4 + movdqa 16(%r16),%xmm4 + movdqu 16(%r16),%xmm4 + movntdqa 16(%r16),%xmm4 + movshdup 16(%r16),%xmm4 + movsldup 16(%r16),%xmm4 + movupd 16(%r16),%xmm4 + movups 16(%r16),%xmm4 + pabsb 16(%r16),%xmm4 + pabsw 16(%r16),%xmm4 + pabsd 16(%r16),%xmm4 + rcpps 16(%r16),%xmm4 + rsqrtps 16(%r16),%xmm4 + sqrtpd 16(%r16),%xmm4 + sqrtps 16(%r16),%xmm4 + +# Tests for op xmm, mem128 + movapd %xmm4,16(%r16) + movaps %xmm4,16(%r16) + movdqa %xmm4,16(%r16) + movdqu %xmm4,16(%r16) + movntdq %xmm4,16(%r16) + movntpd %xmm4,16(%r16) + movntps %xmm4,16(%r16) + movupd %xmm4,16(%r16) + movups %xmm4,16(%r16) + +# Tests for op mem128, xmm[, xmm] + addpd 16(%r16),%xmm6 + addps 16(%r16),%xmm6 + aesenc 16(%r16),%xmm6 + aesenclast 16(%r16),%xmm6 + aesdec 16(%r16),%xmm6 + aesdeclast 16(%r16),%xmm6 + andnpd 16(%r16),%xmm6 + andnps 16(%r16),%xmm6 + andpd 16(%r16),%xmm6 + andps 16(%r16),%xmm6 + divpd 16(%r16),%xmm6 + divps 16(%r16),%xmm6 + gf2p8mulb 16(%r16),%xmm6 + maxpd 16(%r16),%xmm6 + maxps 16(%r16),%xmm6 + minpd 16(%r16),%xmm6 + minps 16(%r16),%xmm6 + mulpd 16(%r16),%xmm6 + mulps 16(%r16),%xmm6 + orpd 16(%r16),%xmm6 + orps 16(%r16),%xmm6 + packsswb 16(%r16),%xmm6 + packssdw 16(%r16),%xmm6 + packuswb 16(%r16),%xmm6 + packusdw 16(%r16),%xmm6 + paddb 16(%r16),%xmm6 + paddw 16(%r16),%xmm6 + paddd 16(%r16),%xmm6 + paddq 16(%r16),%xmm6 + paddsb 16(%r16),%xmm6 + paddsw 16(%r16),%xmm6 + paddusb 16(%r16),%xmm6 + paddusw 16(%r16),%xmm6 + pand 16(%r16),%xmm6 + pandn 16(%r16),%xmm6 + pavgb 16(%r16),%xmm6 + pavgw 16(%r16),%xmm6 + pclmullqlqdq 16(%r16),%xmm6 + pclmulhqlqdq 16(%r16),%xmm6 + pclmullqhqdq 16(%r16),%xmm6 + pclmulhqhqdq 16(%r16),%xmm6 + pmaddwd 16(%r16),%xmm6 + pmaddubsw 16(%r16),%xmm6 + pmaxsb 16(%r16),%xmm6 + pmaxsw 16(%r16),%xmm6 + pmaxsd 16(%r16),%xmm6 + pmaxub 16(%r16),%xmm6 + pmaxuw 16(%r16),%xmm6 + pmaxud 16(%r16),%xmm6 + pminsb 16(%r16),%xmm6 + pminsw 16(%r16),%xmm6 + pminsd 16(%r16),%xmm6 + pminub 16(%r16),%xmm6 + pminuw 16(%r16),%xmm6 + pminud 16(%r16),%xmm6 + pmuldq 16(%r16),%xmm6 + pmulhuw 16(%r16),%xmm6 + pmulhrsw 16(%r16),%xmm6 + pmulhw 16(%r16),%xmm6 + pmullw 16(%r16),%xmm6 + pmulld 16(%r16),%xmm6 + pmuludq 16(%r16),%xmm6 + por 16(%r16),%xmm6 + psadbw 16(%r16),%xmm6 + pshufb 16(%r16),%xmm6 + psllw 16(%r16),%xmm6 + pslld 16(%r16),%xmm6 + psllq 16(%r16),%xmm6 + psraw 16(%r16),%xmm6 + psrad 16(%r16),%xmm6 + psrlw 16(%r16),%xmm6 + psrld 16(%r16),%xmm6 + psrlq 16(%r16),%xmm6 + psubb 16(%r16),%xmm6 + psubw 16(%r16),%xmm6 + psubd 16(%r16),%xmm6 + psubq 16(%r16),%xmm6 + psubsb 16(%r16),%xmm6 + psubsw 16(%r16),%xmm6 + psubusb 16(%r16),%xmm6 + psubusw 16(%r16),%xmm6 + punpckhbw 16(%r16),%xmm6 + punpckhwd 16(%r16),%xmm6 + punpckhdq 16(%r16),%xmm6 + punpckhqdq 16(%r16),%xmm6 + punpcklbw 16(%r16),%xmm6 + punpcklwd 16(%r16),%xmm6 + punpckldq 16(%r16),%xmm6 + punpcklqdq 16(%r16),%xmm6 + pxor 16(%r16),%xmm6 + subpd 16(%r16),%xmm6 + subps 16(%r16),%xmm6 + unpckhpd 16(%r16),%xmm6 + unpckhps 16(%r16),%xmm6 + unpcklpd 16(%r16),%xmm6 + unpcklps 16(%r16),%xmm6 + xorpd 16(%r16),%xmm6 + xorps 16(%r16),%xmm6 + +# Tests for op imm8, mem128, xmm + pshufd $100,16(%r16),%xmm6 + pshufhw $100,16(%r16),%xmm6 + pshuflw $100,16(%r16),%xmm6 + roundpd $4,16(%r16),%xmm6 + roundps $4,16(%r16),%xmm6 + +# Tests for op imm8, mem128, xmm[, xmm] + gf2p8affineqb $100,16(%r16),%xmm6 + gf2p8affineinvqb $100,16(%r16),%xmm6 + palignr $100,16(%r16),%xmm6 + pclmulqdq $100,16(%r16),%xmm6 + shufpd $100,16(%r16),%xmm6 + shufps $100,16(%r16),%xmm6 + +# Tests for op mem64, xmm + comisd 16(%r16),%xmm4 + cvtdq2pd 16(%r16),%xmm4 + cvtpi2pd 16(%r16),%xmm4 + cvtps2pd 16(%r16),%xmm4 + movddup 16(%r16),%xmm4 + movsd 16(%r16),%xmm4 + pmovsxbw 16(%r16),%xmm4 + pmovsxwd 16(%r16),%xmm4 + pmovsxdq 16(%r16),%xmm4 + pmovzxbw 16(%r16),%xmm4 + pmovzxwd 16(%r16),%xmm4 + pmovzxdq 16(%r16),%xmm4 + ucomisd 16(%r16),%xmm4 + +# Tests for op xmm, mem64 + movlpd %xmm4,16(%r16) + movlps %xmm4,16(%r16) + movhpd %xmm4,16(%r16) + movhps %xmm4,16(%r16) + movsd %xmm4,16(%r16) + +# Tests for op mem64, xmm[, xmm] + movlpd 16(%r16),%xmm4 + movlps 16(%r16),%xmm4 + movhpd 16(%r16),%xmm4 + movhps 16(%r16),%xmm4 + +# Tests for op xmm, regq/mem64 +# Tests for op regq/mem64, xmm + movd %xmm4,%r16 + movd %r16,%xmm4 + movq %xmm4,%r16 + movq %r16,%xmm4 + movq %xmm4,16(%r16) + movq 16(%r16),%xmm4 + +# Tests for op xmm/mem64, regl + cvtsd2si %xmm4,%r16d + cvtsd2si 16(%r16),%ecx + cvttsd2si %xmm4,%r16d + cvttsd2si 16(%r16),%ecx + +# Tests for op xmm/mem64, regq + cvtsd2si %xmm4,%r16 + cvtsd2si 16(%r16),%rcx + cvttsd2si %xmm4,%r16 + cvttsd2si 16(%r16),%rcx + +# Tests for op regq/mem64, xmm[, xmm] + cvtsi2sdq %r16,%xmm4 + cvtsi2sdq 16(%r16),%xmm4 + cvtsi2ssq %r16,%xmm4 + cvtsi2ssq 16(%r16),%xmm4 + +# Tests for op imm8, regq/mem64, xmm[, xmm] + pinsrq $100,%r16,%xmm4 + pinsrq $100,16(%r16),%xmm4 + +# Tests for op imm8, xmm, regq/mem64 + pextrq $100,%xmm4,%r16 + pextrq $100,%xmm4,16(%r16) + +# Tests for op imm8, mem64, xmm[, xmm] + roundsd $4,16(%r16),%xmm6 + +# Tests for op mem64, xmm[, xmm] + addsd 16(%r16),%xmm6 + cvtsd2ss 16(%r16),%xmm6 + divsd 16(%r16),%xmm6 + maxsd 16(%r16),%xmm6 + minsd 16(%r16),%xmm6 + mulsd 16(%r16),%xmm6 + sqrtsd 16(%r16),%xmm6 + subsd 16(%r16),%xmm6 + +# Tests for op mem32, xmm[, xmm] + addss 16(%r16),%xmm6 + cvtss2sd 16(%r16),%xmm6 + divss 16(%r16),%xmm6 + maxss 16(%r16),%xmm6 + minss 16(%r16),%xmm6 + mulss 16(%r16),%xmm6 + rcpss 16(%r16),%xmm6 + rsqrtss 16(%r16),%xmm6 + sqrtss 16(%r16),%xmm6 + subss 16(%r16),%xmm6 + +# Tests for op mem32, xmm + comiss 16(%r16),%xmm4 + movss 16(%r16),%xmm4 + pmovsxbd 16(%r16),%xmm4 + pmovsxwq 16(%r16),%xmm4 + pmovzxbd 16(%r16),%xmm4 + pmovzxwq 16(%r16),%xmm4 + ucomiss 16(%r16),%xmm4 + +# Tests for op xmm, mem32 + movss %xmm4,16(%r16) + +# Tests for op xmm, regl/mem32 +# Tests for op regl/mem32, xmm + movd %xmm4,%r16d + movd %xmm4,16(%r16) + movd %r16d,%xmm4 + movd 16(%r16),%xmm4 + +# Tests for op xmm/mem32, regl + cvtss2si %xmm4,%r16d + cvtss2si 16(%r16),%ecx + cvttss2si %xmm4,%r16d + cvttss2si 16(%r16),%ecx + +# Tests for op xmm/mem32, regq + cvtss2si %xmm4,%r16 + cvtss2si 16(%r16),%rcx + cvttss2si %xmm4,%r16 + cvttss2si 16(%r16),%rcx + +# Tests for op imm8, xmm, regq/mem32 + extractps $100,%xmm4,%r16 + +# Tests for op imm8, xmm, regl/mem32 + pextrd $100,%xmm4,%r16d + pextrd $100,%xmm4,16(%r16) + extractps $100,%xmm4,%r16d + extractps $100,%xmm4,16(%r16) + +# Tests for op imm8, regl/mem32, xmm[, xmm] + pinsrd $100,%r16d,%xmm4 + pinsrd $100,16(%r16),%xmm4 + +# Tests for op regl/mem32, xmm[, xmm] + cvtsi2sd %r16d,%xmm4 + cvtsi2sd 16(%r16),%xmm4 + cvtsi2ss %r16d,%xmm4 + cvtsi2ss 16(%r16),%xmm4 + +# Tests for op imm8, mem32, xmm[, xmm] + insertps $100,16(%r16),%xmm6 + roundss $4,16(%r16),%xmm6 + +# Tests for op mem16, xmm + pmovsxbq 16(%r16),%xmm4 + pmovzxbq 16(%r16),%xmm4 + +# Tests for op imm8, xmm, regl/mem16 + pextrw $100,%xmm4,%r16d + pextrw $100,%xmm4,%r16 + pextrw $100,%xmm4,16(%r16) + +# Tests for op imm8, regl/mem16, xmm[, xmm] + pinsrw $100,%r16d,%xmm4 + pinsrw $100,%r16,%xmm4 + pinsrw $100,16(%r16),%xmm4 + +# Tests for op imm8, xmm, regl/mem8 + pextrb $100,%xmm4,%r16d + pextrb $100,%xmm4,%r16 + pextrb $100,%xmm4,16(%r16) + +# Tests for op imm8, regl/mem8, xmm[, xmm] + pinsrb $100,%r16d,%xmm4 + pinsrb $100,%r16,%xmm4 + pinsrb $100,16(%r16),%xmm4 --- a/gas/testsuite/gas/i386/x86-64.exp +++ b/gas/testsuite/gas/i386/x86-64.exp @@ -390,6 +390,7 @@ run_dump_test "x86-64-apx-jmpabs-inval" run_dump_test "x86-64-apx-nf" run_dump_test "x86-64-apx-nf-intel" run_dump_test "x86-64-apx_f-evex" +run_dump_test "sse2avx-apx" run_dump_test "x86-64-avx512f-rcigrz-intel" run_dump_test "x86-64-avx512f-rcigrz" run_dump_test "x86-64-clwb" --- a/gas/testsuite/gas/i386/x86-64-sse2avx.d +++ b/gas/testsuite/gas/i386/x86-64-sse2avx.d @@ -746,9 +746,19 @@ Disassembly of section .text: [ ]*[a-f0-9]+: c5 79 7e c8 vmovd %xmm9,%eax [ ]*[a-f0-9]+: c4 a1 79 7e c8 vmovd %xmm1,%eax [ ]*[a-f0-9]+: c4 e1 f9 7e c8 vmovq %xmm1,%rax +[ ]*[a-f0-9]+: 62 f1 7d 08 7e c8 \{evex\} vmovd %xmm1,%eax [ ]*[a-f0-9]+: c5 f9 7e c8 vmovd %xmm1,%eax [ ]*[a-f0-9]+: c5 f9 7e c8 vmovd %xmm1,%eax [ ]*[a-f0-9]+: c4 e1 79 7e c8 vmovd %xmm1,%eax +[ ]*[a-f0-9]+: 62 f9 7d 08 7e c8 vmovd %xmm1,%r16d +[ ]*[a-f0-9]+: 62 f9 7d 08 7e c8 vmovd %xmm1,%r16d +[ ]*[a-f0-9]+: 62 d9 7d 08 7e c8 vmovd %xmm1,%r24d +[ ]*[a-f0-9]+: 62 79 7d 08 7e c8 vmovd %xmm9,%r16d +[ ]*[a-f0-9]+: 62 b9 7d 08 7e c8 vmovd %xmm1,%r16d +[ ]*[a-f0-9]+: 62 f9 fd 08 7e c8 vmovq %xmm1,%r16 +[ ]*[a-f0-9]+: 62 f9 7d 08 7e c8 vmovd %xmm1,%r16d +[ ]*[a-f0-9]+: 62 f9 7d 08 7e c8 vmovd %xmm1,%r16d +[ ]*[a-f0-9]+: 62 f9 7d 08 7e c8 vmovd %xmm1,%r16d [ ]*[a-f0-9]+: c5 f8 ae 11 vldmxcsr \(%rcx\) [ ]*[a-f0-9]+: c5 f8 ae 19 vstmxcsr \(%rcx\) [ ]*[a-f0-9]+: c5 f8 5b f4 vcvtdq2ps %xmm4,%xmm6 --- a/gas/testsuite/gas/i386/x86-64-sse2avx.s +++ b/gas/testsuite/gas/i386/x86-64-sse2avx.s @@ -847,10 +847,21 @@ _start: rex.r movd %xmm1, %eax rex.x movd %xmm1, %eax rex.w movd %xmm1, %eax + {evex} movd %xmm1, %eax {rex} movd %xmm1, %eax {rex2} movd %xmm1, %eax {vex3} movd %xmm1, %eax + movd %xmm1, %r16d + rex movd %xmm1, %r16d + rex.b movd %xmm1, %r16d + rex.r movd %xmm1, %r16d + rex.x movd %xmm1, %r16d + rex.w movd %xmm1, %r16d + {evex} movd %xmm1, %r16d + {rex} movd %xmm1, %r16d + {rex2} movd %xmm1, %r16d + .intel_syntax noprefix # Tests for op mem64 ldmxcsr DWORD PTR [rcx] --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1004,10 +1004,40 @@ pause, 0xf390, i186, NoSuf, {} $avx:AVX:66:Vex128|VexVVVV|VexW0|SSE2AVX:RegXMM:Xmmword, + $sse:SSE2:66::RegXMM:Xmmword, + $mmx:MMX:::RegMMX:Qword> +// As above, but also allowing AVX512 (EVEX) encoding, to transform +// in particular insns using eGPR-s. + + + + + + , 0x0f6b, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -packsswb, 0x0f63, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -packuswb, 0x0f67, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -padd, 0x0ffc | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -paddd, 0x0ffe, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -paddq, 0x660fd4, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +packssdw, 0x0f6b, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +packsswb, 0x0f63, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +packuswb, 0x0f67, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +padd, 0x0ffc | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +paddd, 0x0ffe, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +paddq, 0x660fd4, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } paddq, 0xfd4, SSE2, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -padds, 0x0fec | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -paddus, 0x0fdc | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -pand, 0x0fdb, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -pandn, 0x0fdf, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +padds, 0x0fec | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +paddus, 0x0fdc | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +pand, 0x0fdb, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +pandn, 0x0fdf, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } pcmpeq, 0x0f74 | , , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } pcmpeqd, 0x0f76, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } pcmpgt, 0x0f64 | , , Modrm||NoSuf|Optimize, { ||Unspecified|BaseIndex, } pcmpgtd, 0x0f66, , Modrm||NoSuf|Optimize, { ||Unspecified|BaseIndex, } -pmaddwd, 0x0ff5, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -pmulhw, 0x0fe5, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -pmullw, 0x0fd5, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -por, 0x0feb, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } -psllw, 0x0ff1, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psllw, 0x0f71/6, , Modrm||NoSuf, { Imm8, } -psll, 0x0ff2 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psll, 0x0f72 | /6, , Modrm||NoSuf, { Imm8, } -psraw, 0x0fe1, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psraw, 0x0f71/4, , Modrm||NoSuf, { Imm8, } -psrad, 0x0fe2, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psrad, 0x0f72/4, , Modrm||NoSuf, { Imm8, } -psrlw, 0x0fd1, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psrlw, 0x0f71/2, , Modrm||NoSuf, { Imm8, } -psrl, 0x0fd2 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psrl, 0x0f72 | /2, , Modrm||NoSuf, { Imm8, } -psub, 0x0ff8 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psubd, 0x0ffa, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psubq, 0x660ffb, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaddwd, 0x0ff5, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +pmulhw, 0x0fe5, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +pmullw, 0x0fd5, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +por, 0x0feb, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +psllw, 0x0ff1, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psllw, 0x0f71/6, , Modrm||NoSuf, { Imm8, } +psll, 0x0ff2 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psll, 0x0f72 | /6, , Modrm||NoSuf, { Imm8, } +psraw, 0x0fe1, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psraw, 0x0f71/4, , Modrm||NoSuf, { Imm8, } +psrad, 0x0fe2, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psrad, 0x0f72/4, , Modrm||NoSuf, { Imm8, } +psrlw, 0x0fd1, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psrlw, 0x0f71/2, , Modrm||NoSuf, { Imm8, } +psrl, 0x0fd2 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psrl, 0x0f72 | /2, , Modrm||NoSuf, { Imm8, } +psub, 0x0ff8 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psubd, 0x0ffa, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psubq, 0x660ffb, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } psubq, 0xffb, SSE2, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -psubs, 0x0fe8 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -psubus, 0x0fd8 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -punpckhbw, 0x0f68, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -punpckhwd, 0x0f69, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -punpckhdq, 0x0f6a, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -punpcklbw, 0x660f60, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +psubs, 0x0fe8 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +psubus, 0x0fd8 | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +punpckhbw, 0x0f68, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +punpckhwd, 0x0f69, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +punpckhdq, 0x0f6a, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +punpcklbw, 0x660f60, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } punpcklbw, 0xf60, MMX, Modrm|NoSuf, { Dword|Unspecified|BaseIndex|RegMMX, RegMMX } -punpcklwd, 0x660f61, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +punpcklwd, 0x660f61, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } punpcklwd, 0xf61, MMX, Modrm|NoSuf, { Dword|Unspecified|BaseIndex|RegMMX, RegMMX } -punpckldq, 0x660f62, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +punpckldq, 0x660f62, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } punpckldq, 0xf62, MMX, Modrm|NoSuf, { Dword|Unspecified|BaseIndex|RegMMX, RegMMX } -pxor, 0x0fef, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } +pxor, 0x0fef, , Modrm||C|NoSuf, { ||Unspecified|BaseIndex, } // SSE instructions. + + + + -addps, 0x0f58, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -addss, 0xf30f58, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -andnps, 0x0f55, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -andps, 0x0f54, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +addps, 0x0f58, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +addss, 0xf30f58, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +andnps, 0x0f55, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +andps, 0x0f54, , Modrm||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } cmpps, 0x0fc2/, , Modrm||||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } cmpss, 0xf30fc2/, , Modrm||||NoSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM } cmpps, 0x0fc2, , Modrm|||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } cmpss, 0xf30fc2, , Modrm|||NoSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -comiss, 0x0f2f, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +comiss, 0x0f2f, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } cvtpi2ps, 0xf2a, SSE, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegXMM } cvtps2pi, 0xf2d, SSE, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegMMX } cvtsi2ss, 0xf30f2a, &No64, Modrm|||IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf, { Reg32|Unspecified|BaseIndex, RegXMM } -cvtsi2ss, 0xf32a, AVX&x64, Modrm|Vex=3|Space0F|VexVVVV|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|ATTSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } -cvtsi2ss, 0xf32a, AVX&x64, Modrm|Vex=3|Space0F|VexVVVV|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|IntelSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } +cvtsi2ss, 0xf32a, x64&(AVX|AVX512F), Modrm|VexLIG|EVexLIG|Space0F|VexVVVV|IgnoreSize|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|ATTSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } +cvtsi2ss, 0xf32a, x64&(AVX|AVX512F), Modrm|VexLIG|EVexLIG|Space0F|VexVVVV|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|IntelSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } cvtsi2ss, 0xf30f2a, SSE&x64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|ATTSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } cvtsi2ss, 0xf30f2a, SSE&x64, Modrm|No_bSuf|No_wSuf|No_sSuf|IntelSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } -cvtss2si, 0xf32d, AVX, Modrm|VexLIG|Space0F|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } +cvtss2si, 0xf32d, AVX|AVX512F, Modrm|VexLIG|EVexLIG|Space0F|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } cvtss2si, 0xf30f2d, SSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } cvttps2pi, 0xf2c, SSE, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegMMX } -cvttss2si, 0xf32c, AVX, Modrm|VexLIG|Space0F|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } +cvttss2si, 0xf32c, AVX|AVX512F, Modrm|VexLIG|EVexLIG|Space0F|Disp8MemShift=2|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } cvttss2si, 0xf30f2c, SSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } -divps, 0x0f5e, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -divss, 0xf30f5e, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +divps, 0x0f5e, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +divss, 0xf30f5e, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } ldmxcsr, 0x0fae/2, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex } maskmovq, 0xff7, SSE|3dnowA, Modrm|NoSuf, { RegMMX, RegMMX } -maxps, 0x0f5f, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -maxss, 0xf30f5f, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -minps, 0x0f5d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -minss, 0xf30f5d, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -movaps, 0x0f28, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +maxps, 0x0f5f, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +maxss, 0xf30f5f, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +minps, 0x0f5d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +minss, 0xf30f5d, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +movaps, 0x0f28, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } movhlps, 0x0f12, , Modrm|||NoSuf, { RegXMM, RegXMM } -movhps, 0x16, AVX, Modrm|Vex|Space0F|VexVVVV|VexW0|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } -movhps, 0x17, AVX, Modrm|Vex|Space0F|VexW0|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } +movhps, 0x16, AVX|AVX512F, Modrm|Vex128|EVex128|Space0F|VexVVVV|VexW0|Disp8MemShift=3|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } +movhps, 0x17, AVX|AVX512F, Modrm|Vex128|EVex128|Space0F|VexW0|Disp8MemShift=3|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } movhps, 0xf16, SSE, D|Modrm|NoSuf, { Qword|Unspecified|BaseIndex, RegXMM } movlhps, 0x0f16, , Modrm|||NoSuf, { RegXMM, RegXMM } -movlps, 0x12, AVX, Modrm|Vex|Space0F|VexVVVV|VexW0|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } -movlps, 0x13, AVX, Modrm|Vex|Space0F|VexW0|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } +movlps, 0x12, AVX|AVX512F, Modrm|Vex128|EVex128|Space0F|VexVVVV|VexW0|Disp8MemShift=3|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } +movlps, 0x13, AVX|AVX512F, Modrm|Vex128|EVex128|Space0F|VexW0|Disp8MemShift=3|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } movlps, 0xf12, SSE, D|Modrm|NoSuf, { Qword|Unspecified|BaseIndex, RegXMM } movmskps, 0x0f50, , Modrm||IgnoreSize|No_bSuf|No_wSuf|No_sSuf|NoRex64, { RegXMM, Reg32|Reg64 } -movntps, 0x0f2b, , Modrm||NoSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } +movntps, 0x0f2b, , Modrm||NoSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } movntq, 0xfe7, SSE|3dnowA, Modrm|NoSuf, { RegMMX, Qword|Unspecified|BaseIndex } -movntdq, 0x660fe7, , Modrm||NoSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } -movss, 0xf310, AVX, D|Modrm|VexLIG|Space0F|VexW0|NoSuf|SSE2AVX, { Dword|Unspecified|BaseIndex, RegXMM } +movntdq, 0x660fe7, , Modrm||NoSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } +movss, 0xf310, AVX|AVX512F, D|Modrm|VexLIG|EVexLIG|Space0F|VexW0|Disp8MemShift=2|NoSuf|SSE2AVX, { Dword|Unspecified|BaseIndex, RegXMM } movss, 0xf310, AVX, D|Modrm|VexLIG|Space0F|VexVVVV|VexW0|NoSuf|SSE2AVX, { RegXMM, RegXMM } movss, 0xf30f10, SSE, D|Modrm|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -movups, 0x0f10, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -mulps, 0x0f59, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -mulss, 0xf30f59, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -orps, 0x0f56, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +movups, 0x0f10, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +mulps, 0x0f59, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +mulss, 0xf30f59, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +orps, 0x0f56, , Modrm||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pavg, 0xfe0 | (3 * ), SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -pavg, 0x660fe0 | (3 * ), , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pextrw, 0x660fc5, , Load|Modrm||No_bSuf|No_wSuf|No_sSuf|IgnoreSize|NoRex64, { Imm8, RegXMM, Reg32|Reg64 } +pavg, 0x660fe0 | (3 * ), , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pextrw, 0x660fc5, , Load|Modrm||No_bSuf|No_wSuf|No_sSuf|IgnoreSize|NoRex64, { Imm8, RegXMM, Reg32|Reg64 } pextrw, 0xfc5, SSE|3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|NoRex64, { Imm8, RegMMX, Reg32|Reg64 } -pinsrw, 0x660fc4, , Modrm|||No_bSuf|No_wSuf|No_sSuf|IgnoreSize|NoRex64, { Imm8, Reg32|Reg64, RegXMM } -pinsrw, 0x660fc4, , Modrm|||NoSuf, { Imm8, Word|Unspecified|BaseIndex, RegXMM } +pinsrw, 0x660fc4, , Modrm|||No_bSuf|No_wSuf|No_sSuf|IgnoreSize|NoRex64, { Imm8, Reg32|Reg64, RegXMM } +pinsrw, 0x660fc4, , Modrm|||Disp8MemShift|NoSuf, { Imm8, Word|Unspecified|BaseIndex, RegXMM } pinsrw, 0xfc4, SSE|3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|NoRex64, { Imm8, Reg32|Reg64, RegMMX } pinsrw, 0xfc4, SSE|3dnowA, Modrm|NoSuf, { Imm8, Word|Unspecified|BaseIndex, RegMMX } -pmaxsw, 0x660fee, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaxsw, 0x660fee, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pmaxsw, 0xfee, SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -pmaxub, 0x660fde, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaxub, 0x660fde, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pmaxub, 0xfde, SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -pminsw, 0x660fea, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pminsw, 0x660fea, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pminsw, 0xfea, SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -pminub, 0x660fda, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pminub, 0x660fda, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pminub, 0xfda, SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } pmovmskb, 0x660fd7, , Modrm||IgnoreSize|No_bSuf|No_wSuf|No_sSuf|NoRex64, { RegXMM, Reg32|Reg64 } pmovmskb, 0xfd7, SSE|3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|NoRex64, { RegMMX, Reg32|Reg64 } -pmulhuw, 0x660fe4, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmulhuw, 0x660fe4, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pmulhuw, 0xfe4, SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } prefetchnta, 0xf18/0, SSE|3dnowA, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex } prefetcht0, 0xf18/1, SSE|3dnowA, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex } prefetcht1, 0xf18/2, SSE|3dnowA, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex } prefetcht2, 0xf18/3, SSE|3dnowA, Modrm|Anysize|IgnoreSize|NoSuf, { BaseIndex } psadbw, 0xff6, SSE|3dnowA, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -psadbw, 0x660ff6, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +psadbw, 0x660ff6, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pshufw, 0xf70, SSE|3dnowA, Modrm|NoSuf, { Imm8|Imm8S, Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -rcpps, 0x0f53, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -rcpss, 0xf30f53, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -rsqrtps, 0x0f52, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -rsqrtss, 0xf30f52, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +rcpps, , , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +rcpss, , , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +rsqrtps, , , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +rsqrtss, , , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } sfence, 0xfaef8, SSE|3dnowA, NoSuf, {} -shufps, 0x0fc6, , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -sqrtps, 0x0f51, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -sqrtss, 0xf30f51, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +shufps, 0x0fc6, , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } +sqrtps, 0x0f51, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +sqrtss, 0xf30f51, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } stmxcsr, 0x0fae/3, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex } -subps, 0x0f5c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -subss, 0xf30f5c, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -ucomiss, 0x0f2e, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -unpckhps, 0x0f15, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -unpcklps, 0x0f14, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -xorps, 0x0f57, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +subps, 0x0f5c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +subss, 0xf30f5c, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +ucomiss, 0x0f2e, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +unpckhps, 0x0f15, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +unpcklps, 0x0f14, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +xorps, 0x0f57, , Modrm||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } // SSE2 instructions. -addpd, 0x660f58, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -addsd, 0xf20f58, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -andnpd, 0x660f55, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -andpd, 0x660f54, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } + + +addpd, 0x660f58, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +addsd, 0xf20f58, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +andnpd, 0x660f55, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +andpd, 0x660f54, , Modrm||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } cmppd, 0x660fc2/, , Modrm||||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } cmpsd, 0xf20fc2/, , Modrm||||NoSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM } cmppd, 0x660fc2, , Modrm|||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } cmpsd, 0xf20fc2, , Modrm|||NoSuf, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -comisd, 0x660f2f, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +comisd, 0x660f2f, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } cvtpi2pd, 0x660f2a, SSE2, Modrm|NoSuf, { RegMMX, RegXMM } -cvtpi2pd, 0xf3e6, AVX, Modrm|Vex|Space0F|VexW0|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } +cvtpi2pd, 0xf3e6, AVX|AVX512VL, Modrm|Vex128|EVex128|Space0F|VexW0|Disp8MemShift=3|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } cvtpi2pd, 0x660f2a, SSE2, Modrm|NoSuf, { Qword|Unspecified|BaseIndex, RegXMM } cvtsi2sd, 0xf20f2a, &No64, Modrm|IgnoreSize|||No_bSuf|No_wSuf|No_sSuf|No_qSuf, { Reg32|Unspecified|BaseIndex, RegXMM } -cvtsi2sd, 0xf22a, AVX&x64, Modrm|Vex=3|Space0F|VexVVVV|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|ATTSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } -cvtsi2sd, 0xf22a, AVX&x64, Modrm|Vex=3|Space0F|VexVVVV|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|IntelSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } +cvtsi2sd, 0xf22a, x64&(AVX|AVX512F), Modrm|VexLIG|EVexLIG|Space0F|VexVVVV|Disp8ShiftVL|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|ATTSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } +cvtsi2sd, 0xf22a, x64&(AVX|AVX512F), Modrm|VexLIG|EVexLIG|Space0F|VexVVVV|Disp8ShiftVL|No_bSuf|No_wSuf|No_sSuf|SSE2AVX|IntelSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } cvtsi2sd, 0xf20f2a, SSE2&x64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|ATTSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } cvtsi2sd, 0xf20f2a, SSE2&x64, Modrm|No_bSuf|No_wSuf|No_sSuf|IntelSyntax, { Reg32|Reg64|Unspecified|BaseIndex, RegXMM } -divpd, 0x660f5e, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -divsd, 0xf20f5e, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -maxpd, 0x660f5f, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -maxsd, 0xf20f5f, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -minpd, 0x660f5d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -minsd, 0xf20f5d, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -movapd, 0x660f28, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +divpd, 0x660f5e, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +divsd, 0xf20f5e, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +maxpd, 0x660f5f, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +maxsd, 0xf20f5f, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +minpd, 0x660f5d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +minsd, 0xf20f5d, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +movapd, 0x660f28, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } movhpd, 0x6616, AVX, Modrm|Vex|Space0F|VexVVVV|VexW0|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } +movhpd, 0x6616, AVX512F, Modrm|EVex128|Space0F|VexVVVV|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } movhpd, 0x6617, AVX, Modrm|Vex|Space0F|VexW0|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } +movhpd, 0x6617, AVX512F, Modrm|EVex128|Space0F|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } movhpd, 0x660f16, SSE2, D|Modrm|NoSuf, { Qword|Unspecified|BaseIndex, RegXMM } movlpd, 0x6612, AVX, Modrm|Vex|Space0F|VexVVVV|VexW0|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } +movlpd, 0x6612, AVX512F, Modrm|EVex128|Space0F|VexVVVV|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } movlpd, 0x6613, AVX, Modrm|Vex|Space0F|VexW0|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } +movlpd, 0x6613, AVX512F, Modrm|EVex128|Space0F|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex } movlpd, 0x660f12, SSE2, D|Modrm|NoSuf, { Qword|Unspecified|BaseIndex, RegXMM } movmskpd, 0x660f50, , Modrm||IgnoreSize|No_bSuf|No_wSuf|No_sSuf|NoRex64, { RegXMM, Reg32|Reg64 } -movntpd, 0x660f2b, , Modrm||NoSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } +movntpd, 0x660f2b, , Modrm||NoSuf, { RegXMM, Xmmword|Unspecified|BaseIndex } movsd, 0xf210, AVX, D|Modrm|VexLIG|Space0F|VexW0|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } +movsd, 0xf210, AVX512F, D|Modrm|EVexLIG|Space0F|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM } movsd, 0xf210, AVX, D|Modrm|VexLIG|Space0F|VexVVVV|VexW0|NoSuf|SSE2AVX, { RegXMM, RegXMM } movsd, 0xf20f10, SSE2, D|Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -movupd, 0x660f10, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -mulpd, 0x660f59, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -mulsd, 0xf20f59, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -orpd, 0x660f56, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -shufpd, 0x660fc6, , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -sqrtpd, 0x660f51, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -sqrtsd, 0xf20f51, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -subpd, 0x660f5c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -subsd, 0xf20f5c, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -ucomisd, 0x660f2e, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -unpckhpd, 0x660f15, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -unpcklpd, 0x660f14, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -xorpd, 0x660f57, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -cvtdq2pd, 0xf30fe6, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -cvtpd2dq, 0xf20fe6, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -cvtdq2ps, 0x0f5b, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +movupd, 0x660f10, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +mulpd, 0x660f59, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +mulsd, 0xf20f59, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +orpd, 0x660f56, , Modrm||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +shufpd, 0x660fc6, , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } +sqrtpd, 0x660f51, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +sqrtsd, 0xf20f51, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +subpd, 0x660f5c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +subsd, 0xf20f5c, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +ucomisd, 0x660f2e, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +unpckhpd, 0x660f15, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +unpcklpd, 0x660f14, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +xorpd, 0x660f57, , Modrm||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +cvtdq2pd, 0xf30fe6, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +cvtpd2dq, 0xf20fe6, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +cvtdq2ps, 0x0f5b, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } cvtpd2pi, 0x660f2d, SSE2, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegMMX } -cvtpd2ps, 0x660f5a, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -cvtps2pd, 0x0f5a, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -cvtps2dq, 0x660f5b, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -cvtsd2si, 0xf22d, AVX, Modrm|VexLIG|Space0F|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } +cvtpd2ps, 0x660f5a, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +cvtps2pd, 0x0f5a, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +cvtps2dq, 0x660f5b, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +cvtsd2si, 0xf22d, AVX|AVX512F, Modrm|VexLIG|EVexLIG|Space0F|Disp8MemShift=3|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } cvtsd2si, 0xf20f2d, SSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } -cvtsd2ss, 0xf20f5a, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -cvtss2sd, 0xf30f5a, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } - +cvtsd2ss, 0xf20f5a, , Modrm|||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +cvtss2sd, 0xf30f5a, , Modrm|||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } cvttpd2pi, 0x660f2c, SSE2, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegMMX } -cvttsd2si, 0xf22c, AVX, Modrm|VexLIG|Space0F|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } +cvttsd2si, 0xf22c, AVX|AVX512F, Modrm|VexLIG|EVexLIG|Space0F|Disp8MemShift=3|No_bSuf|No_wSuf|No_sSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } cvttsd2si, 0xf20f2c, SSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 } -cvttpd2dq, 0x660fe6, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -cvttps2dq, 0xf30f5b, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +cvttpd2dq, 0x660fe6, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +cvttps2dq, 0xf30f5b, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } maskmovdqu, 0x660ff7, , Modrm||NoSuf, { RegXMM, RegXMM } -movdqa, 0x660f6f, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -movdqu, 0xf30f6f, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +movdqa, 0x660f6f, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +movdqu, 0xf30f6f, , D|Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } movdq2q, 0xf20fd6, SSE2, Modrm|NoSuf, { RegXMM, RegMMX } movq2dq, 0xf30fd6, SSE2, Modrm|NoSuf, { RegMMX, RegXMM } -pmuludq, 0x660ff4, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmuludq, 0x660ff4, , Modrm|||C|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pmuludq, 0xff4, SSE2, Modrm|NoSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX } -pshufd, 0x660f70, , Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -pshufhw, 0xf30f70, , Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -pshuflw, 0xf20f70, , Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } +pshufd, 0x660f70, , Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } +pshufhw, 0xf30f70, , Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } +pshuflw, 0xf20f70, , Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } pslldq, 0x660f73/7, , Modrm|||NoSuf, { Imm8, RegXMM } psrldq, 0x660f73/3, , Modrm|||NoSuf, { Imm8, RegXMM } -punpckhqdq, 0x660f6d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -punpcklqdq, 0x660f6c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +punpckhqdq, 0x660f6d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +punpcklqdq, 0x660f6c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } // SSE3 instructions. + + addsubpd, 0x660fd0, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } addsubps, 0xf20fd0, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } @@ -1279,10 +1342,13 @@ haddpd, 0x660f7c, , Modr haddps, 0xf20f7c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } hsubpd, 0x660f7d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } hsubps, 0xf20f7d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -lddqu, 0xf20ff0, , Modrm||NoSuf, { Xmmword|Unspecified|BaseIndex, RegXMM } -movddup, 0xf20f12, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -movshdup, 0xf30f16, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -movsldup, 0xf30f12, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +lddqu, 0xf20ff0, AVX, Modrm|Vex128|VexW0|SSE2AVX|NoSuf, { Xmmword|Unspecified|BaseIndex, RegXMM } +// For use with eGPR-s in the memory operand, utilize VMOVDQU32. +lddqu, 0xf30f6f, AVX512VL, Modrm|EVex128|VexW0|Disp8MemShift=4|SSE2AVX|NoSuf, { Xmmword|Unspecified|BaseIndex, RegXMM } +lddqu, 0xf20ff0, SSE3, Modrm|NoSuf, { Xmmword|Unspecified|BaseIndex, RegXMM } +movddup, 0xf20f12, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +movshdup, 0xf30f16, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +movsldup, 0xf30f12, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } // FPU instructions also covered by SSE3 CPUID flag. @@ -1352,6 +1418,15 @@ invpcid, 0xf3f2, INVPCID&APX_F, Modrm|No $avx:AVX:66:Vex128|VexW0|SSE2AVX:VexVVVV:RegXMM:Xmmword, + $sse:SSSE3:66:::RegXMM:Xmmword, + $mmx:SSSE3::::RegMMX:Qword> + + phaddw, 0x0f3801, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } phaddd, 0x0f3802, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } @@ -1359,18 +1434,34 @@ phaddsw, 0x0f3803, , 0x0f3805, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } phsubd, 0x0f3806, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } phsubsw, 0x0f3807, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } -pmaddubsw, 0x0f3804, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } -pmulhrsw, 0x0f380b, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } -pshufb, 0x0f3800, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } +pmaddubsw, 0x0f3804, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } +pmulhrsw, 0x0f380b, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } +pshufb, 0x0f3800, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } psign, 0x0f3808 | , , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } psignd, 0x0f380a, , Modrm|||NoSuf, { ||Unspecified|BaseIndex, } -palignr, 0x0f3a0f, , Modrm|||NoSuf, { Imm8, ||Unspecified|BaseIndex, } -pabs, 0x0f381c | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } -pabsd, 0x0f381e, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +palignr, 0x0f3a0f, , Modrm|||NoSuf, { Imm8, ||Unspecified|BaseIndex, } +pabs, 0x0f381c | , , Modrm||NoSuf, { ||Unspecified|BaseIndex, } +pabsd, 0x0f381e, , Modrm||NoSuf, { ||Unspecified|BaseIndex, } // SSE4.1 instructions. + + + + + blendp, 0x660f3a0c | , , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } @@ -1379,56 +1470,60 @@ blendvp, 0x664a | , AVX, Mod blendvp, 0x660f3814 | , SSE4_1, Modrm|NoSuf, { Acc|Xmmword, RegXMM|Unspecified|BaseIndex, RegXMM } blendvp, 0x660f3814 | , SSE4_1, Modrm|NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } dpp, 0x660f3a40 | , , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -extractps, 0x6617, AVX, Modrm|Vex128|Space0F3A|VexW0|NoSuf|SSE2AVX, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex } -extractps, 0x6617, AVX&x64, RegMem|Vex128|Space0F3A|VexW1|NoSuf|SSE2AVX, { Imm8, RegXMM, Reg64 } +extractps, 0x6617, AVX|AVX512F, Modrm|Vex128|EVex128|Space0F3A|VexW0|Disp8MemShift=2|NoSuf|SSE2AVX, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex } +extractps, 0x6617, x64&(AVX|AVX512F), RegMem|Vex128|EVex128|Space0F3A|VexW1|NoSuf|SSE2AVX, { Imm8, RegXMM, Reg64 } extractps, 0x660f3a17, SSE4_1, Modrm|IgnoreSize|NoSuf, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex } extractps, 0x660f3a17, SSE4_1&x64, RegMem|NoSuf|NoRex64, { Imm8, RegXMM, Reg64 } -insertps, 0x660f3a21, , Modrm|||NoSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -movntdqa, 0x660f382a, , Modrm||NoSuf, { Xmmword|Unspecified|BaseIndex, RegXMM } +insertps, 0x660f3a21, , Modrm|||Disp8MemShift|NoSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +movntdqa, 0x660f382a, , Modrm||NoSuf, { Xmmword|Unspecified|BaseIndex, RegXMM } mpsadbw, 0x660f3a42, , Modrm|||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -packusdw, 0x660f382b, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +packusdw, 0x660f382b, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } pblendvb, 0x664c, AVX, Modrm|Vex128|Space0F3A|VexVVVV|VexW0|NoSuf|SSE2AVX, { Acc|Xmmword, RegXMM|Unspecified|BaseIndex, RegXMM } pblendvb, 0x664c, AVX, Modrm|Vex128|Space0F3A|VexVVVV|VexW0|NoSuf|Implicit1stXmm0|SSE2AVX, { RegXMM|Unspecified|BaseIndex, RegXMM } 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|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 } +pextr, 0x660f3a14 | , , RegMem||NoSuf|IgnoreSize|NoRex64, { Imm8, RegXMM, Reg32|Reg64 } +pextr, 0x660f3a14 | , , Modrm||Disp8MemShift|NoSuf, { Imm8, RegXMM, |Unspecified|BaseIndex } +pextrd, 0x660f3a16, , Modrm||Disp8MemShift|NoSuf|IgnoreSize, { Imm8, RegXMM, Reg32|Unspecified|BaseIndex } pextrq, 0x6616, AVX&x64, Modrm|Vex|Space0F3A|VexW1|NoSuf|SSE2AVX, { Imm8, RegXMM, Reg64|Unspecified|BaseIndex } +pextrq, 0x6616, AVX512DQ&AVX512VL&x64, Modrm|EVex128|Space0F3A|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { Imm8, RegXMM, Reg64|Unspecified|BaseIndex } pextrq, 0x660f3a16, SSE4_1&x64, Modrm|Size64|NoSuf, { Imm8, RegXMM, Reg64|Unspecified|BaseIndex } phminposuw, 0x660f3841, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pinsrb, 0x660f3a20, , Modrm|||NoSuf|IgnoreSize|NoRex64, { Imm8, Reg32|Reg64, RegXMM } -pinsrb, 0x660f3a20, , Modrm|||NoSuf, { Imm8, Byte|Unspecified|BaseIndex, RegXMM } -pinsrd, 0x660f3a22, , Modrm|||NoSuf|IgnoreSize, { Imm8, Reg32|Unspecified|BaseIndex, RegXMM } +pinsrb, 0x660f3a20, , Modrm|||NoSuf|IgnoreSize|NoRex64, { Imm8, Reg32|Reg64, RegXMM } +pinsrb, 0x660f3a20, , Modrm|||Disp8MemShift|NoSuf, { Imm8, Byte|Unspecified|BaseIndex, RegXMM } +pinsrd, 0x660f3a22, , Modrm|||Disp8MemShift|NoSuf|IgnoreSize, { Imm8, Reg32|Unspecified|BaseIndex, RegXMM } pinsrq, 0x6622, AVX&x64, Modrm|Vex|Space0F3A|VexVVVV|VexW1|NoSuf|SSE2AVX, { Imm8, Reg64|Unspecified|BaseIndex, RegXMM } +pinsrq, 0x6622, AVX512DQ&AVX512VL&AVX&x64, Modrm|EVex128|Space0F3A|VexVVVV|VexW1|Disp8MemShift=3|NoSuf|SSE2AVX, { Imm8, Reg64|Unspecified|BaseIndex, RegXMM } pinsrq, 0x660f3a22, SSE4_1&x64, Modrm|Size64|NoSuf, { Imm8, Reg64|Unspecified|BaseIndex, RegXMM } -pmaxsb, 0x660f383c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pmaxsd, 0x660f383d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pmaxud, 0x660f383f, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pmaxuw, 0x660f383e, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pminsb, 0x660f3838, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pminsd, 0x660f3839, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pminud, 0x660f383b, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pminuw, 0x660f383a, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pmovsxbw, 0x660f3820, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovsxbd, 0x660f3821, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovsxbq, 0x660f3822, , Modrm||NoSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovsxwd, 0x660f3823, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovsxwq, 0x660f3824, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovsxdq, 0x660f3825, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovzxbw, 0x660f3830, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovzxbd, 0x660f3831, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovzxbq, 0x660f3832, , Modrm||NoSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovzxwd, 0x660f3833, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovzxwq, 0x660f3834, , Modrm||NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmovzxdq, 0x660f3835, , Modrm||NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } -pmuldq, 0x660f3828, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -pmulld, 0x660f3840, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaxsb, 0x660f383c, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaxsd, 0x660f383d, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaxud, 0x660f383f, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmaxuw, 0x660f383e, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pminsb, 0x660f3838, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pminsd, 0x660f3839, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pminud, 0x660f383b, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pminuw, 0x660f383a, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmovsxbw, 0x660f3820, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovsxbd, 0x660f3821, , Modrm||Disp8MemShift|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovsxbq, 0x660f3822, , Modrm||Disp8MemShift|NoSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovsxwd, 0x660f3823, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovsxwq, 0x660f3824, , Modrm||Disp8MemShift|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovsxdq, 0x660f3825, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovzxbw, 0x660f3830, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovzxbd, 0x660f3831, , Modrm||Disp8MemShift|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovzxbq, 0x660f3832, , Modrm||Disp8MemShift|NoSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovzxwd, 0x660f3833, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovzxwq, 0x660f3834, , Modrm||Disp8MemShift|NoSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmovzxdq, 0x660f3835, , Modrm||Disp8MemShift|NoSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +pmuldq, 0x660f3828, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +pmulld, 0x660f3840, , Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } ptest, 0x660f3817, , Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -roundp, 0x660f3a08 | , , Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } -rounds, 0x660f3a0a | , , Modrm|||NoSuf, { Imm8, |Unspecified|BaseIndex|RegXMM, RegXMM } +roundpd, 0x660f3a09, , Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } +roundps, 0x660f3a08, , Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } +roundsd, 0x660f3a0b, , Modrm|||NoSuf, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM } +roundss, 0x660f3a0a, , Modrm|||NoSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM } // SSE4.2 instructions. @@ -1465,31 +1560,38 @@ xsaveopt64, 0xfae/6, Xsaveopt&x64, Modrm // AES instructions. - -aesdec, 0x660f38de, AES, Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -aesdeclast, 0x660f38df, AES, Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -aesenc, 0x660f38dc, AES, Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } -aesenclast, 0x660f38dd, AES, Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } + + +aesdec, 0x660f38de, AES, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +aesdeclast, 0x660f38df, AES, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +aesenc, 0x660f38dc, AES, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } +aesenclast, 0x660f38dd, AES, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } aesimc, 0x660f38db, AES, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } aeskeygenassist, 0x660f3adf, AES, Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } // PCLMULQDQ - - -pclmulqdq, 0x660f3a44, PCLMULQDQ, Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } -pclmullqlqdq, 0x660f3a44/0x00, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } -pclmulhqlqdq, 0x660f3a44/0x01, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } -pclmullqhqdq, 0x660f3a44/0x10, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } -pclmulhqhqdq, 0x660f3a44/0x11, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } + + +pclmulqdq, 0x660f3a44, PCLMULQDQ, Modrm||NoSuf, { Imm8|Imm8S, RegXMM|Unspecified|BaseIndex, RegXMM } +pclmullqlqdq, 0x660f3a44/0x00, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } +pclmulhqlqdq, 0x660f3a44/0x01, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } +pclmullqhqdq, 0x660f3a44/0x10, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } +pclmulhqhqdq, 0x660f3a44/0x11, PCLMULQDQ, Modrm||NoSuf|ImmExt, { RegXMM|Unspecified|BaseIndex, RegXMM } // GFNI - - -gf2p8affineqb, 0x660f3ace, GFNI, Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } -gf2p8affineinvqb, 0x660f3acf, GFNI, Modrm||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } -gf2p8mulb, 0x660f38cf, GFNI, Modrm||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } + + +gf2p8affineqb, 0x660f3ace, GFNI, Modrm|||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } +gf2p8affineinvqb, 0x660f3acf, GFNI, Modrm|||NoSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM } +gf2p8mulb, 0x660f38cf, GFNI, Modrm|||NoSuf, { RegXMM|Unspecified|BaseIndex, RegXMM } // AVX instructions.