diff options
author | Stephen Hines <srhines@google.com> | 2014-04-23 16:57:46 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-04-24 15:53:16 -0700 |
commit | 36b56886974eae4f9c5ebc96befd3e7bfe5de338 (patch) | |
tree | e6cfb69fbbd937f450eeb83bfb83b9da3b01275a /test/MC/X86 | |
parent | 69a8640022b04415ae9fac62f8ab090601d8f889 (diff) | |
download | external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.zip external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.gz external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.bz2 |
Update to LLVM 3.5a.
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
Diffstat (limited to 'test/MC/X86')
25 files changed, 3672 insertions, 110 deletions
diff --git a/test/MC/X86/address-size.s b/test/MC/X86/address-size.s index b105b40..c9d04c4 100644 --- a/test/MC/X86/address-size.s +++ b/test/MC/X86/address-size.s @@ -8,6 +8,20 @@ .code32 movb $0x0, (%si) -// CHECK: encoding: [0x67,0xc6,0x06,0x00] +// CHECK: encoding: [0x67,0xc6,0x04,0x00] movb $0x0, (%esi) // CHECK: encoding: [0xc6,0x06,0x00] + movw $0x1234, (%si) +// CHECK: encoding: [0x67,0x66,0xc7,0x04,0x34,0x12] + movl $0x12345678, (%bx,%si,1) +// CHECK: encoding: [0x67,0xc7,0x00,0x78,0x56,0x34,0x12] + movw $0x1234, 0x5678(%bp) +// CHECK: encoding: [0x67,0x66,0xc7,0x86,0x78,0x56,0x34,0x12] + + .code16 + movb $0x0, (%si) +// CHECK: encoding: [0xc6,0x04,0x00] + movb $0x0, (%esi) +// CHECK: encoding: [0x67,0xc6,0x06,0x00] + movb $0x5a, (%di,%bp,1) +// CHECK: encoding: [0xc6,0x03,0x5a] diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index 38f9190..42c50e1 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -1,5 +1,2125 @@ // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl --show-encoding %s | FileCheck %s +// CHECK: vaddpd -8192(%rdx), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x42,0x80] + vaddpd -8192(%rdx), %zmm27, %zmm8 + +// CHECK: vaddpd -1024(%rdx){1to8}, %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x42,0x80] + vaddpd -1024(%rdx){1to8}, %zmm27, %zmm8 + +// CHECK: vaddps -8192(%rdx), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x52,0x80] + vaddps -8192(%rdx), %zmm13, %zmm18 + +// CHECK: vaddps -512(%rdx){1to16}, %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x52,0x80] + vaddps -512(%rdx){1to16}, %zmm13, %zmm18 + +// CHECK: vdivpd -8192(%rdx), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x52,0x80] + vdivpd -8192(%rdx), %zmm6, %zmm18 + +// CHECK: vdivpd -1024(%rdx){1to8}, %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x52,0x80] + vdivpd -1024(%rdx){1to8}, %zmm6, %zmm18 + +// CHECK: vdivps -8192(%rdx), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x7a,0x80] + vdivps -8192(%rdx), %zmm23, %zmm23 + +// CHECK: vdivps -512(%rdx){1to16}, %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0x7a,0x80] + vdivps -512(%rdx){1to16}, %zmm23, %zmm23 + +// CHECK: vmaxpd -8192(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x72,0x80] + vmaxpd -8192(%rdx), %zmm28, %zmm30 + +// CHECK: vmaxpd -1024(%rdx){1to8}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0x72,0x80] + vmaxpd -1024(%rdx){1to8}, %zmm28, %zmm30 + +// CHECK: vmaxps -8192(%rdx), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x4a,0x80] + vmaxps -8192(%rdx), %zmm6, %zmm25 + +// CHECK: vmaxps -512(%rdx){1to16}, %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x4a,0x80] + vmaxps -512(%rdx){1to16}, %zmm6, %zmm25 + +// CHECK: vminpd -8192(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x72,0x80] + vminpd -8192(%rdx), %zmm6, %zmm6 + +// CHECK: vminpd -1024(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x72,0x80] + vminpd -1024(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vminps -8192(%rdx), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x5a,0x80] + vminps -8192(%rdx), %zmm3, %zmm3 + +// CHECK: vminps -512(%rdx){1to16}, %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x5a,0x80] + vminps -512(%rdx){1to16}, %zmm3, %zmm3 + +// CHECK: vmulpd -8192(%rdx), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x42,0x80] + vmulpd -8192(%rdx), %zmm4, %zmm24 + +// CHECK: vmulpd -1024(%rdx){1to8}, %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x42,0x80] + vmulpd -1024(%rdx){1to8}, %zmm4, %zmm24 + +// CHECK: vmulps -8192(%rdx), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x5a,0x80] + vmulps -8192(%rdx), %zmm6, %zmm3 + +// CHECK: vmulps -512(%rdx){1to16}, %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x5a,0x80] + vmulps -512(%rdx){1to16}, %zmm6, %zmm3 + +// CHECK: vsubpd -8192(%rdx), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x4a,0x80] + vsubpd -8192(%rdx), %zmm12, %zmm9 + +// CHECK: vsubpd -1024(%rdx){1to8}, %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x4a,0x80] + vsubpd -1024(%rdx){1to8}, %zmm12, %zmm9 + +// CHECK: vsubps -8192(%rdx), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x72,0x80] + vsubps -8192(%rdx), %zmm27, %zmm14 + +// CHECK: vsubps -512(%rdx){1to16}, %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0x72,0x80] + vsubps -512(%rdx){1to16}, %zmm27, %zmm14 + +// CHECK: vaddpd %zmm6, %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0xc6] + vaddpd %zmm6, %zmm27, %zmm8 + +// CHECK: vaddpd %zmm6, %zmm27, %zmm8 {%k7} +// CHECK: encoding: [0x62,0x71,0xa5,0x47,0x58,0xc6] + vaddpd %zmm6, %zmm27, %zmm8 {%k7} + +// CHECK: vaddpd %zmm6, %zmm27, %zmm8 {%k7} {z} +// CHECK: encoding: [0x62,0x71,0xa5,0xc7,0x58,0xc6] + vaddpd %zmm6, %zmm27, %zmm8 {%k7} {z} + +// CHECK: vaddpd (%rcx), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x01] + vaddpd (%rcx), %zmm27, %zmm8 + +// CHECK: vaddpd 291(%rax,%r14,8), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x31,0xa5,0x40,0x58,0x84,0xf0,0x23,0x01,0x00,0x00] + vaddpd 291(%rax,%r14,8), %zmm27, %zmm8 + +// CHECK: vaddpd (%rcx){1to8}, %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x01] + vaddpd (%rcx){1to8}, %zmm27, %zmm8 + +// CHECK: vaddpd 8128(%rdx), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x42,0x7f] + vaddpd 8128(%rdx), %zmm27, %zmm8 + +// CHECK: vaddpd 8192(%rdx), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x82,0x00,0x20,0x00,0x00] + vaddpd 8192(%rdx), %zmm27, %zmm8 + +// CHECK: vaddpd -8256(%rdx), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x82,0xc0,0xdf,0xff,0xff] + vaddpd -8256(%rdx), %zmm27, %zmm8 + +// CHECK: vaddpd 1016(%rdx){1to8}, %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x42,0x7f] + vaddpd 1016(%rdx){1to8}, %zmm27, %zmm8 + +// CHECK: vaddpd 1024(%rdx){1to8}, %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x82,0x00,0x04,0x00,0x00] + vaddpd 1024(%rdx){1to8}, %zmm27, %zmm8 + +// CHECK: vaddpd -1032(%rdx){1to8}, %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x82,0xf8,0xfb,0xff,0xff] + vaddpd -1032(%rdx){1to8}, %zmm27, %zmm8 + +// CHECK: vaddps %zmm2, %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0xd2] + vaddps %zmm2, %zmm13, %zmm18 + +// CHECK: vaddps %zmm2, %zmm13, %zmm18 {%k4} +// CHECK: encoding: [0x62,0xe1,0x14,0x4c,0x58,0xd2] + vaddps %zmm2, %zmm13, %zmm18 {%k4} + +// CHECK: vaddps %zmm2, %zmm13, %zmm18 {%k4} {z} +// CHECK: encoding: [0x62,0xe1,0x14,0xcc,0x58,0xd2] + vaddps %zmm2, %zmm13, %zmm18 {%k4} {z} + +// CHECK: vaddps (%rcx), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x11] + vaddps (%rcx), %zmm13, %zmm18 + +// CHECK: vaddps 291(%rax,%r14,8), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xa1,0x14,0x48,0x58,0x94,0xf0,0x23,0x01,0x00,0x00] + vaddps 291(%rax,%r14,8), %zmm13, %zmm18 + +// CHECK: vaddps (%rcx){1to16}, %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x11] + vaddps (%rcx){1to16}, %zmm13, %zmm18 + +// CHECK: vaddps 8128(%rdx), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x52,0x7f] + vaddps 8128(%rdx), %zmm13, %zmm18 + +// CHECK: vaddps 8192(%rdx), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x92,0x00,0x20,0x00,0x00] + vaddps 8192(%rdx), %zmm13, %zmm18 + +// CHECK: vaddps -8256(%rdx), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x92,0xc0,0xdf,0xff,0xff] + vaddps -8256(%rdx), %zmm13, %zmm18 + +// CHECK: vaddps 508(%rdx){1to16}, %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x52,0x7f] + vaddps 508(%rdx){1to16}, %zmm13, %zmm18 + +// CHECK: vaddps 512(%rdx){1to16}, %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x92,0x00,0x02,0x00,0x00] + vaddps 512(%rdx){1to16}, %zmm13, %zmm18 + +// CHECK: vaddps -516(%rdx){1to16}, %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x92,0xfc,0xfd,0xff,0xff] + vaddps -516(%rdx){1to16}, %zmm13, %zmm18 + +// CHECK: vdivpd %zmm11, %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xc1,0xcd,0x48,0x5e,0xd3] + vdivpd %zmm11, %zmm6, %zmm18 + +// CHECK: vdivpd %zmm11, %zmm6, %zmm18 {%k4} +// CHECK: encoding: [0x62,0xc1,0xcd,0x4c,0x5e,0xd3] + vdivpd %zmm11, %zmm6, %zmm18 {%k4} + +// CHECK: vdivpd %zmm11, %zmm6, %zmm18 {%k4} {z} +// CHECK: encoding: [0x62,0xc1,0xcd,0xcc,0x5e,0xd3] + vdivpd %zmm11, %zmm6, %zmm18 {%k4} {z} + +// CHECK: vdivpd (%rcx), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x11] + vdivpd (%rcx), %zmm6, %zmm18 + +// CHECK: vdivpd 291(%rax,%r14,8), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xa1,0xcd,0x48,0x5e,0x94,0xf0,0x23,0x01,0x00,0x00] + vdivpd 291(%rax,%r14,8), %zmm6, %zmm18 + +// CHECK: vdivpd (%rcx){1to8}, %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x11] + vdivpd (%rcx){1to8}, %zmm6, %zmm18 + +// CHECK: vdivpd 8128(%rdx), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x52,0x7f] + vdivpd 8128(%rdx), %zmm6, %zmm18 + +// CHECK: vdivpd 8192(%rdx), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x92,0x00,0x20,0x00,0x00] + vdivpd 8192(%rdx), %zmm6, %zmm18 + +// CHECK: vdivpd -8256(%rdx), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x92,0xc0,0xdf,0xff,0xff] + vdivpd -8256(%rdx), %zmm6, %zmm18 + +// CHECK: vdivpd 1016(%rdx){1to8}, %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x52,0x7f] + vdivpd 1016(%rdx){1to8}, %zmm6, %zmm18 + +// CHECK: vdivpd 1024(%rdx){1to8}, %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x92,0x00,0x04,0x00,0x00] + vdivpd 1024(%rdx){1to8}, %zmm6, %zmm18 + +// CHECK: vdivpd -1032(%rdx){1to8}, %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x92,0xf8,0xfb,0xff,0xff] + vdivpd -1032(%rdx){1to8}, %zmm6, %zmm18 + +// CHECK: vdivps %zmm28, %zmm23, %zmm23 +// CHECK: encoding: [0x62,0x81,0x44,0x40,0x5e,0xfc] + vdivps %zmm28, %zmm23, %zmm23 + +// CHECK: vdivps %zmm28, %zmm23, %zmm23 {%k2} +// CHECK: encoding: [0x62,0x81,0x44,0x42,0x5e,0xfc] + vdivps %zmm28, %zmm23, %zmm23 {%k2} + +// CHECK: vdivps %zmm28, %zmm23, %zmm23 {%k2} {z} +// CHECK: encoding: [0x62,0x81,0x44,0xc2,0x5e,0xfc] + vdivps %zmm28, %zmm23, %zmm23 {%k2} {z} + +// CHECK: vdivps (%rcx), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x39] + vdivps (%rcx), %zmm23, %zmm23 + +// CHECK: vdivps 291(%rax,%r14,8), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xa1,0x44,0x40,0x5e,0xbc,0xf0,0x23,0x01,0x00,0x00] + vdivps 291(%rax,%r14,8), %zmm23, %zmm23 + +// CHECK: vdivps (%rcx){1to16}, %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0x39] + vdivps (%rcx){1to16}, %zmm23, %zmm23 + +// CHECK: vdivps 8128(%rdx), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x7a,0x7f] + vdivps 8128(%rdx), %zmm23, %zmm23 + +// CHECK: vdivps 8192(%rdx), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0xba,0x00,0x20,0x00,0x00] + vdivps 8192(%rdx), %zmm23, %zmm23 + +// CHECK: vdivps -8256(%rdx), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0xba,0xc0,0xdf,0xff,0xff] + vdivps -8256(%rdx), %zmm23, %zmm23 + +// CHECK: vdivps 508(%rdx){1to16}, %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0x7a,0x7f] + vdivps 508(%rdx){1to16}, %zmm23, %zmm23 + +// CHECK: vdivps 512(%rdx){1to16}, %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0xba,0x00,0x02,0x00,0x00] + vdivps 512(%rdx){1to16}, %zmm23, %zmm23 + +// CHECK: vdivps -516(%rdx){1to16}, %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0xba,0xfc,0xfd,0xff,0xff] + vdivps -516(%rdx){1to16}, %zmm23, %zmm23 + +// CHECK: vmaxpd %zmm20, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x21,0x9d,0x40,0x5f,0xf4] + vmaxpd %zmm20, %zmm28, %zmm30 + +// CHECK: vmaxpd %zmm20, %zmm28, %zmm30 {%k1} +// CHECK: encoding: [0x62,0x21,0x9d,0x41,0x5f,0xf4] + vmaxpd %zmm20, %zmm28, %zmm30 {%k1} + +// CHECK: vmaxpd %zmm20, %zmm28, %zmm30 {%k1} {z} +// CHECK: encoding: [0x62,0x21,0x9d,0xc1,0x5f,0xf4] + vmaxpd %zmm20, %zmm28, %zmm30 {%k1} {z} + +// CHECK: vmaxpd (%rcx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x31] + vmaxpd (%rcx), %zmm28, %zmm30 + +// CHECK: vmaxpd 291(%rax,%r14,8), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x21,0x9d,0x40,0x5f,0xb4,0xf0,0x23,0x01,0x00,0x00] + vmaxpd 291(%rax,%r14,8), %zmm28, %zmm30 + +// CHECK: vmaxpd (%rcx){1to8}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0x31] + vmaxpd (%rcx){1to8}, %zmm28, %zmm30 + +// CHECK: vmaxpd 8128(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x72,0x7f] + vmaxpd 8128(%rdx), %zmm28, %zmm30 + +// CHECK: vmaxpd 8192(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0xb2,0x00,0x20,0x00,0x00] + vmaxpd 8192(%rdx), %zmm28, %zmm30 + +// CHECK: vmaxpd -8256(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0xb2,0xc0,0xdf,0xff,0xff] + vmaxpd -8256(%rdx), %zmm28, %zmm30 + +// CHECK: vmaxpd 1016(%rdx){1to8}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0x72,0x7f] + vmaxpd 1016(%rdx){1to8}, %zmm28, %zmm30 + +// CHECK: vmaxpd 1024(%rdx){1to8}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0xb2,0x00,0x04,0x00,0x00] + vmaxpd 1024(%rdx){1to8}, %zmm28, %zmm30 + +// CHECK: vmaxpd -1032(%rdx){1to8}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0xb2,0xf8,0xfb,0xff,0xff] + vmaxpd -1032(%rdx){1to8}, %zmm28, %zmm30 + +// CHECK: vmaxps %zmm20, %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x21,0x4c,0x48,0x5f,0xcc] + vmaxps %zmm20, %zmm6, %zmm25 + +// CHECK: vmaxps %zmm20, %zmm6, %zmm25 {%k1} +// CHECK: encoding: [0x62,0x21,0x4c,0x49,0x5f,0xcc] + vmaxps %zmm20, %zmm6, %zmm25 {%k1} + +// CHECK: vmaxps %zmm20, %zmm6, %zmm25 {%k1} {z} +// CHECK: encoding: [0x62,0x21,0x4c,0xc9,0x5f,0xcc] + vmaxps %zmm20, %zmm6, %zmm25 {%k1} {z} + +// CHECK: vmaxps (%rcx), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x09] + vmaxps (%rcx), %zmm6, %zmm25 + +// CHECK: vmaxps 291(%rax,%r14,8), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x21,0x4c,0x48,0x5f,0x8c,0xf0,0x23,0x01,0x00,0x00] + vmaxps 291(%rax,%r14,8), %zmm6, %zmm25 + +// CHECK: vmaxps (%rcx){1to16}, %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x09] + vmaxps (%rcx){1to16}, %zmm6, %zmm25 + +// CHECK: vmaxps 8128(%rdx), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x4a,0x7f] + vmaxps 8128(%rdx), %zmm6, %zmm25 + +// CHECK: vmaxps 8192(%rdx), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x8a,0x00,0x20,0x00,0x00] + vmaxps 8192(%rdx), %zmm6, %zmm25 + +// CHECK: vmaxps -8256(%rdx), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x8a,0xc0,0xdf,0xff,0xff] + vmaxps -8256(%rdx), %zmm6, %zmm25 + +// CHECK: vmaxps 508(%rdx){1to16}, %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x4a,0x7f] + vmaxps 508(%rdx){1to16}, %zmm6, %zmm25 + +// CHECK: vmaxps 512(%rdx){1to16}, %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x8a,0x00,0x02,0x00,0x00] + vmaxps 512(%rdx){1to16}, %zmm6, %zmm25 + +// CHECK: vmaxps -516(%rdx){1to16}, %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x8a,0xfc,0xfd,0xff,0xff] + vmaxps -516(%rdx){1to16}, %zmm6, %zmm25 + +// CHECK: vminpd %zmm22, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xb1,0xcd,0x48,0x5d,0xf6] + vminpd %zmm22, %zmm6, %zmm6 + +// CHECK: vminpd %zmm22, %zmm6, %zmm6 {%k7} +// CHECK: encoding: [0x62,0xb1,0xcd,0x4f,0x5d,0xf6] + vminpd %zmm22, %zmm6, %zmm6 {%k7} + +// CHECK: vminpd %zmm22, %zmm6, %zmm6 {%k7} {z} +// CHECK: encoding: [0x62,0xb1,0xcd,0xcf,0x5d,0xf6] + vminpd %zmm22, %zmm6, %zmm6 {%k7} {z} + +// CHECK: vminpd (%rcx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x31] + vminpd (%rcx), %zmm6, %zmm6 + +// CHECK: vminpd 291(%rax,%r14,8), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xb1,0xcd,0x48,0x5d,0xb4,0xf0,0x23,0x01,0x00,0x00] + vminpd 291(%rax,%r14,8), %zmm6, %zmm6 + +// CHECK: vminpd (%rcx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x31] + vminpd (%rcx){1to8}, %zmm6, %zmm6 + +// CHECK: vminpd 8128(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x72,0x7f] + vminpd 8128(%rdx), %zmm6, %zmm6 + +// CHECK: vminpd 8192(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0xb2,0x00,0x20,0x00,0x00] + vminpd 8192(%rdx), %zmm6, %zmm6 + +// CHECK: vminpd -8256(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0xb2,0xc0,0xdf,0xff,0xff] + vminpd -8256(%rdx), %zmm6, %zmm6 + +// CHECK: vminpd 1016(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x72,0x7f] + vminpd 1016(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vminpd 1024(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0xb2,0x00,0x04,0x00,0x00] + vminpd 1024(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vminpd -1032(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0xb2,0xf8,0xfb,0xff,0xff] + vminpd -1032(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vminps %zmm7, %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0xdf] + vminps %zmm7, %zmm3, %zmm3 + +// CHECK: vminps %zmm7, %zmm3, %zmm3 {%k3} +// CHECK: encoding: [0x62,0xf1,0x64,0x4b,0x5d,0xdf] + vminps %zmm7, %zmm3, %zmm3 {%k3} + +// CHECK: vminps %zmm7, %zmm3, %zmm3 {%k3} {z} +// CHECK: encoding: [0x62,0xf1,0x64,0xcb,0x5d,0xdf] + vminps %zmm7, %zmm3, %zmm3 {%k3} {z} + +// CHECK: vminps (%rcx), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x19] + vminps (%rcx), %zmm3, %zmm3 + +// CHECK: vminps 291(%rax,%r14,8), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xb1,0x64,0x48,0x5d,0x9c,0xf0,0x23,0x01,0x00,0x00] + vminps 291(%rax,%r14,8), %zmm3, %zmm3 + +// CHECK: vminps (%rcx){1to16}, %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x19] + vminps (%rcx){1to16}, %zmm3, %zmm3 + +// CHECK: vminps 8128(%rdx), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x5a,0x7f] + vminps 8128(%rdx), %zmm3, %zmm3 + +// CHECK: vminps 8192(%rdx), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x9a,0x00,0x20,0x00,0x00] + vminps 8192(%rdx), %zmm3, %zmm3 + +// CHECK: vminps -8256(%rdx), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x9a,0xc0,0xdf,0xff,0xff] + vminps -8256(%rdx), %zmm3, %zmm3 + +// CHECK: vminps 508(%rdx){1to16}, %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x5a,0x7f] + vminps 508(%rdx){1to16}, %zmm3, %zmm3 + +// CHECK: vminps 512(%rdx){1to16}, %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x9a,0x00,0x02,0x00,0x00] + vminps 512(%rdx){1to16}, %zmm3, %zmm3 + +// CHECK: vminps -516(%rdx){1to16}, %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x9a,0xfc,0xfd,0xff,0xff] + vminps -516(%rdx){1to16}, %zmm3, %zmm3 + +// CHECK: vmulpd %zmm23, %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x21,0xdd,0x48,0x59,0xc7] + vmulpd %zmm23, %zmm4, %zmm24 + +// CHECK: vmulpd %zmm23, %zmm4, %zmm24 {%k6} +// CHECK: encoding: [0x62,0x21,0xdd,0x4e,0x59,0xc7] + vmulpd %zmm23, %zmm4, %zmm24 {%k6} + +// CHECK: vmulpd %zmm23, %zmm4, %zmm24 {%k6} {z} +// CHECK: encoding: [0x62,0x21,0xdd,0xce,0x59,0xc7] + vmulpd %zmm23, %zmm4, %zmm24 {%k6} {z} + +// CHECK: vmulpd (%rcx), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x01] + vmulpd (%rcx), %zmm4, %zmm24 + +// CHECK: vmulpd 291(%rax,%r14,8), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x21,0xdd,0x48,0x59,0x84,0xf0,0x23,0x01,0x00,0x00] + vmulpd 291(%rax,%r14,8), %zmm4, %zmm24 + +// CHECK: vmulpd (%rcx){1to8}, %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x01] + vmulpd (%rcx){1to8}, %zmm4, %zmm24 + +// CHECK: vmulpd 8128(%rdx), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x42,0x7f] + vmulpd 8128(%rdx), %zmm4, %zmm24 + +// CHECK: vmulpd 8192(%rdx), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x82,0x00,0x20,0x00,0x00] + vmulpd 8192(%rdx), %zmm4, %zmm24 + +// CHECK: vmulpd -8256(%rdx), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x82,0xc0,0xdf,0xff,0xff] + vmulpd -8256(%rdx), %zmm4, %zmm24 + +// CHECK: vmulpd 1016(%rdx){1to8}, %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x42,0x7f] + vmulpd 1016(%rdx){1to8}, %zmm4, %zmm24 + +// CHECK: vmulpd 1024(%rdx){1to8}, %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x82,0x00,0x04,0x00,0x00] + vmulpd 1024(%rdx){1to8}, %zmm4, %zmm24 + +// CHECK: vmulpd -1032(%rdx){1to8}, %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x82,0xf8,0xfb,0xff,0xff] + vmulpd -1032(%rdx){1to8}, %zmm4, %zmm24 + +// CHECK: vmulps %zmm24, %zmm6, %zmm3 +// CHECK: encoding: [0x62,0x91,0x4c,0x48,0x59,0xd8] + vmulps %zmm24, %zmm6, %zmm3 + +// CHECK: vmulps %zmm24, %zmm6, %zmm3 {%k4} +// CHECK: encoding: [0x62,0x91,0x4c,0x4c,0x59,0xd8] + vmulps %zmm24, %zmm6, %zmm3 {%k4} + +// CHECK: vmulps %zmm24, %zmm6, %zmm3 {%k4} {z} +// CHECK: encoding: [0x62,0x91,0x4c,0xcc,0x59,0xd8] + vmulps %zmm24, %zmm6, %zmm3 {%k4} {z} + +// CHECK: vmulps (%rcx), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x19] + vmulps (%rcx), %zmm6, %zmm3 + +// CHECK: vmulps 291(%rax,%r14,8), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xb1,0x4c,0x48,0x59,0x9c,0xf0,0x23,0x01,0x00,0x00] + vmulps 291(%rax,%r14,8), %zmm6, %zmm3 + +// CHECK: vmulps (%rcx){1to16}, %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x19] + vmulps (%rcx){1to16}, %zmm6, %zmm3 + +// CHECK: vmulps 8128(%rdx), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x5a,0x7f] + vmulps 8128(%rdx), %zmm6, %zmm3 + +// CHECK: vmulps 8192(%rdx), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x9a,0x00,0x20,0x00,0x00] + vmulps 8192(%rdx), %zmm6, %zmm3 + +// CHECK: vmulps -8256(%rdx), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x9a,0xc0,0xdf,0xff,0xff] + vmulps -8256(%rdx), %zmm6, %zmm3 + +// CHECK: vmulps 508(%rdx){1to16}, %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x5a,0x7f] + vmulps 508(%rdx){1to16}, %zmm6, %zmm3 + +// CHECK: vmulps 512(%rdx){1to16}, %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x9a,0x00,0x02,0x00,0x00] + vmulps 512(%rdx){1to16}, %zmm6, %zmm3 + +// CHECK: vmulps -516(%rdx){1to16}, %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x9a,0xfc,0xfd,0xff,0xff] + vmulps -516(%rdx){1to16}, %zmm6, %zmm3 + +// CHECK: vpabsd %zmm14, %zmm15 +// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x1e,0xfe] + vpabsd %zmm14, %zmm15 + +// CHECK: vpabsd %zmm14, %zmm15 {%k6} +// CHECK: encoding: [0x62,0x52,0x7d,0x4e,0x1e,0xfe] + vpabsd %zmm14, %zmm15 {%k6} + +// CHECK: vpabsd %zmm14, %zmm15 {%k6} {z} +// CHECK: encoding: [0x62,0x52,0x7d,0xce,0x1e,0xfe] + vpabsd %zmm14, %zmm15 {%k6} {z} + +// CHECK: vpabsd (%rcx), %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0x39] + vpabsd (%rcx), %zmm15 + +// CHECK: vpabsd (%rcx), %zmm15 {%k1} +// CHECK: encoding: [0x62,0x72,0x7d,0x49,0x1e,0x39] + vpabsd (%rcx), %zmm15 {%k1} + +// CHECK: vpabsd (%rcx), %zmm15 {%k1} {z} +// CHECK: encoding: [0x62,0x72,0x7d,0xc9,0x1e,0x39] + vpabsd (%rcx), %zmm15 {%k1} {z} + +// CHECK: vpabsd 291(%rax,%r14,8), %zmm15 +// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x1e,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpabsd 291(%rax,%r14,8), %zmm15 + +// CHECK: vpabsd (%rcx){1to16}, %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0x39] + vpabsd (%rcx){1to16}, %zmm15 + +// CHECK: vpabsd 8128(%rdx), %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0x7a,0x7f] + vpabsd 8128(%rdx), %zmm15 + +// CHECK: vpabsd 8192(%rdx), %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0xba,0x00,0x20,0x00,0x00] + vpabsd 8192(%rdx), %zmm15 + +// CHECK: vpabsd -8192(%rdx), %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0x7a,0x80] + vpabsd -8192(%rdx), %zmm15 + +// CHECK: vpabsd -8256(%rdx), %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0xba,0xc0,0xdf,0xff,0xff] + vpabsd -8256(%rdx), %zmm15 + +// CHECK: vpabsd 508(%rdx){1to16}, %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0x7a,0x7f] + vpabsd 508(%rdx){1to16}, %zmm15 + +// CHECK: vpabsd 512(%rdx){1to16}, %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0xba,0x00,0x02,0x00,0x00] + vpabsd 512(%rdx){1to16}, %zmm15 + +// CHECK: vpabsd -512(%rdx){1to16}, %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0x7a,0x80] + vpabsd -512(%rdx){1to16}, %zmm15 + +// CHECK: vpabsd -516(%rdx){1to16}, %zmm15 +// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0xba,0xfc,0xfd,0xff,0xff] + vpabsd -516(%rdx){1to16}, %zmm15 + +// CHECK: vpabsd (%rcx){1to16}, %zmm15 {%k2} +// CHECK: encoding: [0x62,0x72,0x7d,0x5a,0x1e,0x39] + vpabsd (%rcx){1to16}, %zmm15 {%k2} + +// CHECK: vpabsd (%rcx){1to16}, %zmm15 {%k2} {z} +// CHECK: encoding: [0x62,0x72,0x7d,0xda,0x1e,0x39] + vpabsd (%rcx){1to16}, %zmm15 {%k2} {z} + +// CHECK: vpabsq %zmm24, %zmm5 +// CHECK: encoding: [0x62,0x92,0xfd,0x48,0x1f,0xe8] + vpabsq %zmm24, %zmm5 + +// CHECK: vpabsq %zmm24, %zmm5 {%k6} +// CHECK: encoding: [0x62,0x92,0xfd,0x4e,0x1f,0xe8] + vpabsq %zmm24, %zmm5 {%k6} + +// CHECK: vpabsq %zmm24, %zmm5 {%k6} {z} +// CHECK: encoding: [0x62,0x92,0xfd,0xce,0x1f,0xe8] + vpabsq %zmm24, %zmm5 {%k6} {z} + +// CHECK: vpabsq (%rcx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0x29] + vpabsq (%rcx), %zmm5 + +// CHECK: vpabsq 291(%rax,%r14,8), %zmm5 +// CHECK: encoding: [0x62,0xb2,0xfd,0x48,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00] + vpabsq 291(%rax,%r14,8), %zmm5 + +// CHECK: vpabsq (%rcx){1to8}, %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0x29] + vpabsq (%rcx){1to8}, %zmm5 + +// CHECK: vpabsq 8128(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0x6a,0x7f] + vpabsq 8128(%rdx), %zmm5 + +// CHECK: vpabsq 8192(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0xaa,0x00,0x20,0x00,0x00] + vpabsq 8192(%rdx), %zmm5 + +// CHECK: vpabsq -8192(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0x6a,0x80] + vpabsq -8192(%rdx), %zmm5 + +// CHECK: vpabsq -8256(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0xaa,0xc0,0xdf,0xff,0xff] + vpabsq -8256(%rdx), %zmm5 + +// CHECK: vpabsq 1016(%rdx){1to8}, %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0x6a,0x7f] + vpabsq 1016(%rdx){1to8}, %zmm5 + +// CHECK: vpabsq 1024(%rdx){1to8}, %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0xaa,0x00,0x04,0x00,0x00] + vpabsq 1024(%rdx){1to8}, %zmm5 + +// CHECK: vpabsq -1024(%rdx){1to8}, %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0x6a,0x80] + vpabsq -1024(%rdx){1to8}, %zmm5 + +// CHECK: vpabsq -1032(%rdx){1to8}, %zmm5 +// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0xaa,0xf8,0xfb,0xff,0xff] + vpabsq -1032(%rdx){1to8}, %zmm5 + +// CHECK: vpaddd %zmm20, %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x21,0x55,0x48,0xfe,0xd4] + vpaddd %zmm20, %zmm5, %zmm26 + +// CHECK: vpaddd %zmm20, %zmm5, %zmm26 {%k1} +// CHECK: encoding: [0x62,0x21,0x55,0x49,0xfe,0xd4] + vpaddd %zmm20, %zmm5, %zmm26 {%k1} + +// CHECK: vpaddd %zmm20, %zmm5, %zmm26 {%k1} {z} +// CHECK: encoding: [0x62,0x21,0x55,0xc9,0xfe,0xd4] + vpaddd %zmm20, %zmm5, %zmm26 {%k1} {z} + +// CHECK: vpaddd (%rcx), %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x11] + vpaddd (%rcx), %zmm5, %zmm26 + +// CHECK: vpaddd (%rcx), %zmm5, %zmm26 {%k2} +// CHECK: encoding: [0x62,0x61,0x55,0x4a,0xfe,0x11] + vpaddd (%rcx), %zmm5, %zmm26 {%k2} + +// CHECK: vpaddd (%rcx), %zmm5, %zmm26 {%k2} {z} +// CHECK: encoding: [0x62,0x61,0x55,0xca,0xfe,0x11] + vpaddd (%rcx), %zmm5, %zmm26 {%k2} {z} + +// CHECK: vpaddd 291(%rax,%r14,8), %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x21,0x55,0x48,0xfe,0x94,0xf0,0x23,0x01,0x00,0x00] + vpaddd 291(%rax,%r14,8), %zmm5, %zmm26 + +// CHECK: vpaddd (%rcx){1to16}, %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x11] + vpaddd (%rcx){1to16}, %zmm5, %zmm26 + +// CHECK: vpaddd 8128(%rdx), %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x52,0x7f] + vpaddd 8128(%rdx), %zmm5, %zmm26 + +// CHECK: vpaddd 8192(%rdx), %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x92,0x00,0x20,0x00,0x00] + vpaddd 8192(%rdx), %zmm5, %zmm26 + +// CHECK: vpaddd -8192(%rdx), %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x52,0x80] + vpaddd -8192(%rdx), %zmm5, %zmm26 + +// CHECK: vpaddd -8256(%rdx), %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x92,0xc0,0xdf,0xff,0xff] + vpaddd -8256(%rdx), %zmm5, %zmm26 + +// CHECK: vpaddd (%rcx){1to16}, %zmm5, %zmm26 {%k2} +// CHECK: encoding: [0x62,0x61,0x55,0x5a,0xfe,0x11] + vpaddd (%rcx){1to16}, %zmm5, %zmm26 {%k2} + +// CHECK: vpaddd (%rcx){1to16}, %zmm5, %zmm26 {%k2} {z} +// CHECK: encoding: [0x62,0x61,0x55,0xda,0xfe,0x11] + vpaddd (%rcx){1to16}, %zmm5, %zmm26 {%k2} {z} + +// CHECK: vpaddd 508(%rdx){1to16}, %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x52,0x7f] + vpaddd 508(%rdx){1to16}, %zmm5, %zmm26 + +// CHECK: vpaddd 512(%rdx){1to16}, %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x92,0x00,0x02,0x00,0x00] + vpaddd 512(%rdx){1to16}, %zmm5, %zmm26 + +// CHECK: vpaddd -512(%rdx){1to16}, %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x52,0x80] + vpaddd -512(%rdx){1to16}, %zmm5, %zmm26 + +// CHECK: vpaddd -516(%rdx){1to16}, %zmm5, %zmm26 +// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x92,0xfc,0xfd,0xff,0xff] + vpaddd -516(%rdx){1to16}, %zmm5, %zmm26 + +// CHECK: vpaddq %zmm14, %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x51,0xb5,0x40,0xd4,0xc6] + vpaddq %zmm14, %zmm25, %zmm8 + +// CHECK: vpaddq %zmm14, %zmm25, %zmm8 {%k3} +// CHECK: encoding: [0x62,0x51,0xb5,0x43,0xd4,0xc6] + vpaddq %zmm14, %zmm25, %zmm8 {%k3} + +// CHECK: vpaddq %zmm14, %zmm25, %zmm8 {%k3} {z} +// CHECK: encoding: [0x62,0x51,0xb5,0xc3,0xd4,0xc6] + vpaddq %zmm14, %zmm25, %zmm8 {%k3} {z} + +// CHECK: vpaddq (%rcx), %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x01] + vpaddq (%rcx), %zmm25, %zmm8 + +// CHECK: vpaddq 291(%rax,%r14,8), %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x31,0xb5,0x40,0xd4,0x84,0xf0,0x23,0x01,0x00,0x00] + vpaddq 291(%rax,%r14,8), %zmm25, %zmm8 + +// CHECK: vpaddq (%rcx){1to8}, %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x01] + vpaddq (%rcx){1to8}, %zmm25, %zmm8 + +// CHECK: vpaddq 8128(%rdx), %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x42,0x7f] + vpaddq 8128(%rdx), %zmm25, %zmm8 + +// CHECK: vpaddq 8192(%rdx), %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x82,0x00,0x20,0x00,0x00] + vpaddq 8192(%rdx), %zmm25, %zmm8 + +// CHECK: vpaddq -8192(%rdx), %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x42,0x80] + vpaddq -8192(%rdx), %zmm25, %zmm8 + +// CHECK: vpaddq -8256(%rdx), %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x82,0xc0,0xdf,0xff,0xff] + vpaddq -8256(%rdx), %zmm25, %zmm8 + +// CHECK: vpaddq 1016(%rdx){1to8}, %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x42,0x7f] + vpaddq 1016(%rdx){1to8}, %zmm25, %zmm8 + +// CHECK: vpaddq 1024(%rdx){1to8}, %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x82,0x00,0x04,0x00,0x00] + vpaddq 1024(%rdx){1to8}, %zmm25, %zmm8 + +// CHECK: vpaddq -1024(%rdx){1to8}, %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x42,0x80] + vpaddq -1024(%rdx){1to8}, %zmm25, %zmm8 + +// CHECK: vpaddq -1032(%rdx){1to8}, %zmm25, %zmm8 +// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x82,0xf8,0xfb,0xff,0xff] + vpaddq -1032(%rdx){1to8}, %zmm25, %zmm8 + +// CHECK: vpandd %zmm25, %zmm22, %zmm19 +// CHECK: encoding: [0x62,0x81,0x4d,0x40,0xdb,0xd9] + vpandd %zmm25, %zmm22, %zmm19 + +// CHECK: vpandd %zmm25, %zmm22, %zmm19 {%k1} +// CHECK: encoding: [0x62,0x81,0x4d,0x41,0xdb,0xd9] + vpandd %zmm25, %zmm22, %zmm19 {%k1} + +// CHECK: vpandd %zmm25, %zmm22, %zmm19 {%k1} {z} +// CHECK: encoding: [0x62,0x81,0x4d,0xc1,0xdb,0xd9] + vpandd %zmm25, %zmm22, %zmm19 {%k1} {z} + +// CHECK: vpandd (%rcx), %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x19] + vpandd (%rcx), %zmm22, %zmm19 + +// CHECK: vpandd 291(%rax,%r14,8), %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xa1,0x4d,0x40,0xdb,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpandd 291(%rax,%r14,8), %zmm22, %zmm19 + +// CHECK: vpandd (%rcx){1to16}, %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x19] + vpandd (%rcx){1to16}, %zmm22, %zmm19 + +// CHECK: vpandd 8128(%rdx), %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x5a,0x7f] + vpandd 8128(%rdx), %zmm22, %zmm19 + +// CHECK: vpandd 8192(%rdx), %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x9a,0x00,0x20,0x00,0x00] + vpandd 8192(%rdx), %zmm22, %zmm19 + +// CHECK: vpandd -8192(%rdx), %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x5a,0x80] + vpandd -8192(%rdx), %zmm22, %zmm19 + +// CHECK: vpandd -8256(%rdx), %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x9a,0xc0,0xdf,0xff,0xff] + vpandd -8256(%rdx), %zmm22, %zmm19 + +// CHECK: vpandd 508(%rdx){1to16}, %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x5a,0x7f] + vpandd 508(%rdx){1to16}, %zmm22, %zmm19 + +// CHECK: vpandd 512(%rdx){1to16}, %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x9a,0x00,0x02,0x00,0x00] + vpandd 512(%rdx){1to16}, %zmm22, %zmm19 + +// CHECK: vpandd -512(%rdx){1to16}, %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x5a,0x80] + vpandd -512(%rdx){1to16}, %zmm22, %zmm19 + +// CHECK: vpandd -516(%rdx){1to16}, %zmm22, %zmm19 +// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x9a,0xfc,0xfd,0xff,0xff] + vpandd -516(%rdx){1to16}, %zmm22, %zmm19 + +// CHECK: vpandnd %zmm15, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x41,0x1d,0x40,0xdf,0xf7] + vpandnd %zmm15, %zmm28, %zmm30 + +// CHECK: vpandnd %zmm15, %zmm28, %zmm30 {%k3} +// CHECK: encoding: [0x62,0x41,0x1d,0x43,0xdf,0xf7] + vpandnd %zmm15, %zmm28, %zmm30 {%k3} + +// CHECK: vpandnd %zmm15, %zmm28, %zmm30 {%k3} {z} +// CHECK: encoding: [0x62,0x41,0x1d,0xc3,0xdf,0xf7] + vpandnd %zmm15, %zmm28, %zmm30 {%k3} {z} + +// CHECK: vpandnd (%rcx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0x31] + vpandnd (%rcx), %zmm28, %zmm30 + +// CHECK: vpandnd 291(%rax,%r14,8), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x21,0x1d,0x40,0xdf,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpandnd 291(%rax,%r14,8), %zmm28, %zmm30 + +// CHECK: vpandnd (%rcx){1to16}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0x31] + vpandnd (%rcx){1to16}, %zmm28, %zmm30 + +// CHECK: vpandnd 8128(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0x72,0x7f] + vpandnd 8128(%rdx), %zmm28, %zmm30 + +// CHECK: vpandnd 8192(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0xb2,0x00,0x20,0x00,0x00] + vpandnd 8192(%rdx), %zmm28, %zmm30 + +// CHECK: vpandnd -8192(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0x72,0x80] + vpandnd -8192(%rdx), %zmm28, %zmm30 + +// CHECK: vpandnd -8256(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0xb2,0xc0,0xdf,0xff,0xff] + vpandnd -8256(%rdx), %zmm28, %zmm30 + +// CHECK: vpandnd 508(%rdx){1to16}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0x72,0x7f] + vpandnd 508(%rdx){1to16}, %zmm28, %zmm30 + +// CHECK: vpandnd 512(%rdx){1to16}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0xb2,0x00,0x02,0x00,0x00] + vpandnd 512(%rdx){1to16}, %zmm28, %zmm30 + +// CHECK: vpandnd -512(%rdx){1to16}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0x72,0x80] + vpandnd -512(%rdx){1to16}, %zmm28, %zmm30 + +// CHECK: vpandnd -516(%rdx){1to16}, %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0xb2,0xfc,0xfd,0xff,0xff] + vpandnd -516(%rdx){1to16}, %zmm28, %zmm30 + +// CHECK: vpandnq %zmm19, %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xa1,0xc5,0x48,0xdf,0xe3] + vpandnq %zmm19, %zmm7, %zmm20 + +// CHECK: vpandnq %zmm19, %zmm7, %zmm20 {%k5} +// CHECK: encoding: [0x62,0xa1,0xc5,0x4d,0xdf,0xe3] + vpandnq %zmm19, %zmm7, %zmm20 {%k5} + +// CHECK: vpandnq %zmm19, %zmm7, %zmm20 {%k5} {z} +// CHECK: encoding: [0x62,0xa1,0xc5,0xcd,0xdf,0xe3] + vpandnq %zmm19, %zmm7, %zmm20 {%k5} {z} + +// CHECK: vpandnq (%rcx), %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0x21] + vpandnq (%rcx), %zmm7, %zmm20 + +// CHECK: vpandnq 291(%rax,%r14,8), %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xa1,0xc5,0x48,0xdf,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpandnq 291(%rax,%r14,8), %zmm7, %zmm20 + +// CHECK: vpandnq (%rcx){1to8}, %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0x21] + vpandnq (%rcx){1to8}, %zmm7, %zmm20 + +// CHECK: vpandnq 8128(%rdx), %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0x62,0x7f] + vpandnq 8128(%rdx), %zmm7, %zmm20 + +// CHECK: vpandnq 8192(%rdx), %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0xa2,0x00,0x20,0x00,0x00] + vpandnq 8192(%rdx), %zmm7, %zmm20 + +// CHECK: vpandnq -8192(%rdx), %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0x62,0x80] + vpandnq -8192(%rdx), %zmm7, %zmm20 + +// CHECK: vpandnq -8256(%rdx), %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0xa2,0xc0,0xdf,0xff,0xff] + vpandnq -8256(%rdx), %zmm7, %zmm20 + +// CHECK: vpandnq 1016(%rdx){1to8}, %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0x62,0x7f] + vpandnq 1016(%rdx){1to8}, %zmm7, %zmm20 + +// CHECK: vpandnq 1024(%rdx){1to8}, %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0xa2,0x00,0x04,0x00,0x00] + vpandnq 1024(%rdx){1to8}, %zmm7, %zmm20 + +// CHECK: vpandnq -1024(%rdx){1to8}, %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0x62,0x80] + vpandnq -1024(%rdx){1to8}, %zmm7, %zmm20 + +// CHECK: vpandnq -1032(%rdx){1to8}, %zmm7, %zmm20 +// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0xa2,0xf8,0xfb,0xff,0xff] + vpandnq -1032(%rdx){1to8}, %zmm7, %zmm20 + +// CHECK: vpandq %zmm26, %zmm4, %zmm17 +// CHECK: encoding: [0x62,0x81,0xdd,0x48,0xdb,0xca] + vpandq %zmm26, %zmm4, %zmm17 + +// CHECK: vpandq %zmm26, %zmm4, %zmm17 {%k7} +// CHECK: encoding: [0x62,0x81,0xdd,0x4f,0xdb,0xca] + vpandq %zmm26, %zmm4, %zmm17 {%k7} + +// CHECK: vpandq %zmm26, %zmm4, %zmm17 {%k7} {z} +// CHECK: encoding: [0x62,0x81,0xdd,0xcf,0xdb,0xca] + vpandq %zmm26, %zmm4, %zmm17 {%k7} {z} + +// CHECK: vpandq (%rcx), %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x09] + vpandq (%rcx), %zmm4, %zmm17 + +// CHECK: vpandq 291(%rax,%r14,8), %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xa1,0xdd,0x48,0xdb,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpandq 291(%rax,%r14,8), %zmm4, %zmm17 + +// CHECK: vpandq (%rcx){1to8}, %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x09] + vpandq (%rcx){1to8}, %zmm4, %zmm17 + +// CHECK: vpandq 8128(%rdx), %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x4a,0x7f] + vpandq 8128(%rdx), %zmm4, %zmm17 + +// CHECK: vpandq 8192(%rdx), %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x8a,0x00,0x20,0x00,0x00] + vpandq 8192(%rdx), %zmm4, %zmm17 + +// CHECK: vpandq -8192(%rdx), %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x4a,0x80] + vpandq -8192(%rdx), %zmm4, %zmm17 + +// CHECK: vpandq -8256(%rdx), %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x8a,0xc0,0xdf,0xff,0xff] + vpandq -8256(%rdx), %zmm4, %zmm17 + +// CHECK: vpandq 1016(%rdx){1to8}, %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x4a,0x7f] + vpandq 1016(%rdx){1to8}, %zmm4, %zmm17 + +// CHECK: vpandq 1024(%rdx){1to8}, %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x8a,0x00,0x04,0x00,0x00] + vpandq 1024(%rdx){1to8}, %zmm4, %zmm17 + +// CHECK: vpandq -1024(%rdx){1to8}, %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x4a,0x80] + vpandq -1024(%rdx){1to8}, %zmm4, %zmm17 + +// CHECK: vpandq -1032(%rdx){1to8}, %zmm4, %zmm17 +// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x8a,0xf8,0xfb,0xff,0xff] + vpandq -1032(%rdx){1to8}, %zmm4, %zmm17 + +// CHECK: vpmaxsd %zmm16, %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xb2,0x3d,0x48,0x3d,0xf0] + vpmaxsd %zmm16, %zmm8, %zmm6 + +// CHECK: vpmaxsd %zmm16, %zmm8, %zmm6 {%k3} +// CHECK: encoding: [0x62,0xb2,0x3d,0x4b,0x3d,0xf0] + vpmaxsd %zmm16, %zmm8, %zmm6 {%k3} + +// CHECK: vpmaxsd %zmm16, %zmm8, %zmm6 {%k3} {z} +// CHECK: encoding: [0x62,0xb2,0x3d,0xcb,0x3d,0xf0] + vpmaxsd %zmm16, %zmm8, %zmm6 {%k3} {z} + +// CHECK: vpmaxsd (%rcx), %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0x31] + vpmaxsd (%rcx), %zmm8, %zmm6 + +// CHECK: vpmaxsd 291(%rax,%r14,8), %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xb2,0x3d,0x48,0x3d,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpmaxsd 291(%rax,%r14,8), %zmm8, %zmm6 + +// CHECK: vpmaxsd (%rcx){1to16}, %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0x31] + vpmaxsd (%rcx){1to16}, %zmm8, %zmm6 + +// CHECK: vpmaxsd 8128(%rdx), %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0x72,0x7f] + vpmaxsd 8128(%rdx), %zmm8, %zmm6 + +// CHECK: vpmaxsd 8192(%rdx), %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0xb2,0x00,0x20,0x00,0x00] + vpmaxsd 8192(%rdx), %zmm8, %zmm6 + +// CHECK: vpmaxsd -8192(%rdx), %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0x72,0x80] + vpmaxsd -8192(%rdx), %zmm8, %zmm6 + +// CHECK: vpmaxsd -8256(%rdx), %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0xb2,0xc0,0xdf,0xff,0xff] + vpmaxsd -8256(%rdx), %zmm8, %zmm6 + +// CHECK: vpmaxsd 508(%rdx){1to16}, %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0x72,0x7f] + vpmaxsd 508(%rdx){1to16}, %zmm8, %zmm6 + +// CHECK: vpmaxsd 512(%rdx){1to16}, %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0xb2,0x00,0x02,0x00,0x00] + vpmaxsd 512(%rdx){1to16}, %zmm8, %zmm6 + +// CHECK: vpmaxsd -512(%rdx){1to16}, %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0x72,0x80] + vpmaxsd -512(%rdx){1to16}, %zmm8, %zmm6 + +// CHECK: vpmaxsd -516(%rdx){1to16}, %zmm8, %zmm6 +// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0xb2,0xfc,0xfd,0xff,0xff] + vpmaxsd -516(%rdx){1to16}, %zmm8, %zmm6 + +// CHECK: vpmaxsq %zmm1, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0xf1] + vpmaxsq %zmm1, %zmm6, %zmm6 + +// CHECK: vpmaxsq %zmm1, %zmm6, %zmm6 {%k7} +// CHECK: encoding: [0x62,0xf2,0xcd,0x4f,0x3d,0xf1] + vpmaxsq %zmm1, %zmm6, %zmm6 {%k7} + +// CHECK: vpmaxsq %zmm1, %zmm6, %zmm6 {%k7} {z} +// CHECK: encoding: [0x62,0xf2,0xcd,0xcf,0x3d,0xf1] + vpmaxsq %zmm1, %zmm6, %zmm6 {%k7} {z} + +// CHECK: vpmaxsq (%rcx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0x31] + vpmaxsq (%rcx), %zmm6, %zmm6 + +// CHECK: vpmaxsq 291(%rax,%r14,8), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xb2,0xcd,0x48,0x3d,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpmaxsq 291(%rax,%r14,8), %zmm6, %zmm6 + +// CHECK: vpmaxsq (%rcx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0x31] + vpmaxsq (%rcx){1to8}, %zmm6, %zmm6 + +// CHECK: vpmaxsq 8128(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0x72,0x7f] + vpmaxsq 8128(%rdx), %zmm6, %zmm6 + +// CHECK: vpmaxsq 8192(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0xb2,0x00,0x20,0x00,0x00] + vpmaxsq 8192(%rdx), %zmm6, %zmm6 + +// CHECK: vpmaxsq -8192(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0x72,0x80] + vpmaxsq -8192(%rdx), %zmm6, %zmm6 + +// CHECK: vpmaxsq -8256(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0xb2,0xc0,0xdf,0xff,0xff] + vpmaxsq -8256(%rdx), %zmm6, %zmm6 + +// CHECK: vpmaxsq 1016(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0x72,0x7f] + vpmaxsq 1016(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vpmaxsq 1024(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0xb2,0x00,0x04,0x00,0x00] + vpmaxsq 1024(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vpmaxsq -1024(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0x72,0x80] + vpmaxsq -1024(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vpmaxsq -1032(%rdx){1to8}, %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0xb2,0xf8,0xfb,0xff,0xff] + vpmaxsq -1032(%rdx){1to8}, %zmm6, %zmm6 + +// CHECK: vpmaxud %zmm25, %zmm7, %zmm17 +// CHECK: encoding: [0x62,0x82,0x45,0x48,0x3f,0xc9] + vpmaxud %zmm25, %zmm7, %zmm17 + +// CHECK: vpmaxud %zmm25, %zmm7, %zmm17 {%k5} +// CHECK: encoding: [0x62,0x82,0x45,0x4d,0x3f,0xc9] + vpmaxud %zmm25, %zmm7, %zmm17 {%k5} + +// CHECK: vpmaxud %zmm25, %zmm7, %zmm17 {%k5} {z} +// CHECK: encoding: [0x62,0x82,0x45,0xcd,0x3f,0xc9] + vpmaxud %zmm25, %zmm7, %zmm17 {%k5} {z} + +// CHECK: vpmaxud (%rcx), %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x09] + vpmaxud (%rcx), %zmm7, %zmm17 + +// CHECK: vpmaxud 291(%rax,%r14,8), %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xa2,0x45,0x48,0x3f,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpmaxud 291(%rax,%r14,8), %zmm7, %zmm17 + +// CHECK: vpmaxud (%rcx){1to16}, %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x09] + vpmaxud (%rcx){1to16}, %zmm7, %zmm17 + +// CHECK: vpmaxud 8128(%rdx), %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x4a,0x7f] + vpmaxud 8128(%rdx), %zmm7, %zmm17 + +// CHECK: vpmaxud 8192(%rdx), %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x8a,0x00,0x20,0x00,0x00] + vpmaxud 8192(%rdx), %zmm7, %zmm17 + +// CHECK: vpmaxud -8192(%rdx), %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x4a,0x80] + vpmaxud -8192(%rdx), %zmm7, %zmm17 + +// CHECK: vpmaxud -8256(%rdx), %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x8a,0xc0,0xdf,0xff,0xff] + vpmaxud -8256(%rdx), %zmm7, %zmm17 + +// CHECK: vpmaxud 508(%rdx){1to16}, %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x4a,0x7f] + vpmaxud 508(%rdx){1to16}, %zmm7, %zmm17 + +// CHECK: vpmaxud 512(%rdx){1to16}, %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x8a,0x00,0x02,0x00,0x00] + vpmaxud 512(%rdx){1to16}, %zmm7, %zmm17 + +// CHECK: vpmaxud -512(%rdx){1to16}, %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x4a,0x80] + vpmaxud -512(%rdx){1to16}, %zmm7, %zmm17 + +// CHECK: vpmaxud -516(%rdx){1to16}, %zmm7, %zmm17 +// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x8a,0xfc,0xfd,0xff,0xff] + vpmaxud -516(%rdx){1to16}, %zmm7, %zmm17 + +// CHECK: vpmaxuq %zmm25, %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x02,0xcd,0x40,0x3f,0xf1] + vpmaxuq %zmm25, %zmm22, %zmm30 + +// CHECK: vpmaxuq %zmm25, %zmm22, %zmm30 {%k1} +// CHECK: encoding: [0x62,0x02,0xcd,0x41,0x3f,0xf1] + vpmaxuq %zmm25, %zmm22, %zmm30 {%k1} + +// CHECK: vpmaxuq %zmm25, %zmm22, %zmm30 {%k1} {z} +// CHECK: encoding: [0x62,0x02,0xcd,0xc1,0x3f,0xf1] + vpmaxuq %zmm25, %zmm22, %zmm30 {%k1} {z} + +// CHECK: vpmaxuq (%rcx), %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0x31] + vpmaxuq (%rcx), %zmm22, %zmm30 + +// CHECK: vpmaxuq 291(%rax,%r14,8), %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x22,0xcd,0x40,0x3f,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpmaxuq 291(%rax,%r14,8), %zmm22, %zmm30 + +// CHECK: vpmaxuq (%rcx){1to8}, %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0x31] + vpmaxuq (%rcx){1to8}, %zmm22, %zmm30 + +// CHECK: vpmaxuq 8128(%rdx), %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0x72,0x7f] + vpmaxuq 8128(%rdx), %zmm22, %zmm30 + +// CHECK: vpmaxuq 8192(%rdx), %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0xb2,0x00,0x20,0x00,0x00] + vpmaxuq 8192(%rdx), %zmm22, %zmm30 + +// CHECK: vpmaxuq -8192(%rdx), %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0x72,0x80] + vpmaxuq -8192(%rdx), %zmm22, %zmm30 + +// CHECK: vpmaxuq -8256(%rdx), %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0xb2,0xc0,0xdf,0xff,0xff] + vpmaxuq -8256(%rdx), %zmm22, %zmm30 + +// CHECK: vpmaxuq 1016(%rdx){1to8}, %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0x72,0x7f] + vpmaxuq 1016(%rdx){1to8}, %zmm22, %zmm30 + +// CHECK: vpmaxuq 1024(%rdx){1to8}, %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0xb2,0x00,0x04,0x00,0x00] + vpmaxuq 1024(%rdx){1to8}, %zmm22, %zmm30 + +// CHECK: vpmaxuq -1024(%rdx){1to8}, %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0x72,0x80] + vpmaxuq -1024(%rdx){1to8}, %zmm22, %zmm30 + +// CHECK: vpmaxuq -1032(%rdx){1to8}, %zmm22, %zmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0xb2,0xf8,0xfb,0xff,0xff] + vpmaxuq -1032(%rdx){1to8}, %zmm22, %zmm30 + +// CHECK: vpminsd %zmm24, %zmm16, %zmm2 +// CHECK: encoding: [0x62,0x92,0x7d,0x40,0x39,0xd0] + vpminsd %zmm24, %zmm16, %zmm2 + +// CHECK: vpminsd %zmm24, %zmm16, %zmm2 {%k3} +// CHECK: encoding: [0x62,0x92,0x7d,0x43,0x39,0xd0] + vpminsd %zmm24, %zmm16, %zmm2 {%k3} + +// CHECK: vpminsd %zmm24, %zmm16, %zmm2 {%k3} {z} +// CHECK: encoding: [0x62,0x92,0x7d,0xc3,0x39,0xd0] + vpminsd %zmm24, %zmm16, %zmm2 {%k3} {z} + +// CHECK: vpminsd (%rcx), %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x11] + vpminsd (%rcx), %zmm16, %zmm2 + +// CHECK: vpminsd 291(%rax,%r14,8), %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xb2,0x7d,0x40,0x39,0x94,0xf0,0x23,0x01,0x00,0x00] + vpminsd 291(%rax,%r14,8), %zmm16, %zmm2 + +// CHECK: vpminsd (%rcx){1to16}, %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x11] + vpminsd (%rcx){1to16}, %zmm16, %zmm2 + +// CHECK: vpminsd 8128(%rdx), %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x52,0x7f] + vpminsd 8128(%rdx), %zmm16, %zmm2 + +// CHECK: vpminsd 8192(%rdx), %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x92,0x00,0x20,0x00,0x00] + vpminsd 8192(%rdx), %zmm16, %zmm2 + +// CHECK: vpminsd -8192(%rdx), %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x52,0x80] + vpminsd -8192(%rdx), %zmm16, %zmm2 + +// CHECK: vpminsd -8256(%rdx), %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x92,0xc0,0xdf,0xff,0xff] + vpminsd -8256(%rdx), %zmm16, %zmm2 + +// CHECK: vpminsd 508(%rdx){1to16}, %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x52,0x7f] + vpminsd 508(%rdx){1to16}, %zmm16, %zmm2 + +// CHECK: vpminsd 512(%rdx){1to16}, %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x92,0x00,0x02,0x00,0x00] + vpminsd 512(%rdx){1to16}, %zmm16, %zmm2 + +// CHECK: vpminsd -512(%rdx){1to16}, %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x52,0x80] + vpminsd -512(%rdx){1to16}, %zmm16, %zmm2 + +// CHECK: vpminsd -516(%rdx){1to16}, %zmm16, %zmm2 +// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x92,0xfc,0xfd,0xff,0xff] + vpminsd -516(%rdx){1to16}, %zmm16, %zmm2 + +// CHECK: vpminsq %zmm17, %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xa2,0xfd,0x40,0x39,0xe1] + vpminsq %zmm17, %zmm16, %zmm20 + +// CHECK: vpminsq %zmm17, %zmm16, %zmm20 {%k6} +// CHECK: encoding: [0x62,0xa2,0xfd,0x46,0x39,0xe1] + vpminsq %zmm17, %zmm16, %zmm20 {%k6} + +// CHECK: vpminsq %zmm17, %zmm16, %zmm20 {%k6} {z} +// CHECK: encoding: [0x62,0xa2,0xfd,0xc6,0x39,0xe1] + vpminsq %zmm17, %zmm16, %zmm20 {%k6} {z} + +// CHECK: vpminsq (%rcx), %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0x21] + vpminsq (%rcx), %zmm16, %zmm20 + +// CHECK: vpminsq 291(%rax,%r14,8), %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xa2,0xfd,0x40,0x39,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpminsq 291(%rax,%r14,8), %zmm16, %zmm20 + +// CHECK: vpminsq (%rcx){1to8}, %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0x21] + vpminsq (%rcx){1to8}, %zmm16, %zmm20 + +// CHECK: vpminsq 8128(%rdx), %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0x62,0x7f] + vpminsq 8128(%rdx), %zmm16, %zmm20 + +// CHECK: vpminsq 8192(%rdx), %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0xa2,0x00,0x20,0x00,0x00] + vpminsq 8192(%rdx), %zmm16, %zmm20 + +// CHECK: vpminsq -8192(%rdx), %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0x62,0x80] + vpminsq -8192(%rdx), %zmm16, %zmm20 + +// CHECK: vpminsq -8256(%rdx), %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0xa2,0xc0,0xdf,0xff,0xff] + vpminsq -8256(%rdx), %zmm16, %zmm20 + +// CHECK: vpminsq 1016(%rdx){1to8}, %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0x62,0x7f] + vpminsq 1016(%rdx){1to8}, %zmm16, %zmm20 + +// CHECK: vpminsq 1024(%rdx){1to8}, %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0xa2,0x00,0x04,0x00,0x00] + vpminsq 1024(%rdx){1to8}, %zmm16, %zmm20 + +// CHECK: vpminsq -1024(%rdx){1to8}, %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0x62,0x80] + vpminsq -1024(%rdx){1to8}, %zmm16, %zmm20 + +// CHECK: vpminsq -1032(%rdx){1to8}, %zmm16, %zmm20 +// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0xa2,0xf8,0xfb,0xff,0xff] + vpminsq -1032(%rdx){1to8}, %zmm16, %zmm20 + +// CHECK: vpminud %zmm20, %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xb2,0x45,0x40,0x3b,0xdc] + vpminud %zmm20, %zmm23, %zmm3 + +// CHECK: vpminud %zmm20, %zmm23, %zmm3 {%k3} +// CHECK: encoding: [0x62,0xb2,0x45,0x43,0x3b,0xdc] + vpminud %zmm20, %zmm23, %zmm3 {%k3} + +// CHECK: vpminud %zmm20, %zmm23, %zmm3 {%k3} {z} +// CHECK: encoding: [0x62,0xb2,0x45,0xc3,0x3b,0xdc] + vpminud %zmm20, %zmm23, %zmm3 {%k3} {z} + +// CHECK: vpminud (%rcx), %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x19] + vpminud (%rcx), %zmm23, %zmm3 + +// CHECK: vpminud 291(%rax,%r14,8), %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xb2,0x45,0x40,0x3b,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpminud 291(%rax,%r14,8), %zmm23, %zmm3 + +// CHECK: vpminud (%rcx){1to16}, %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x19] + vpminud (%rcx){1to16}, %zmm23, %zmm3 + +// CHECK: vpminud 8128(%rdx), %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x5a,0x7f] + vpminud 8128(%rdx), %zmm23, %zmm3 + +// CHECK: vpminud 8192(%rdx), %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x9a,0x00,0x20,0x00,0x00] + vpminud 8192(%rdx), %zmm23, %zmm3 + +// CHECK: vpminud -8192(%rdx), %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x5a,0x80] + vpminud -8192(%rdx), %zmm23, %zmm3 + +// CHECK: vpminud -8256(%rdx), %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x9a,0xc0,0xdf,0xff,0xff] + vpminud -8256(%rdx), %zmm23, %zmm3 + +// CHECK: vpminud 508(%rdx){1to16}, %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x5a,0x7f] + vpminud 508(%rdx){1to16}, %zmm23, %zmm3 + +// CHECK: vpminud 512(%rdx){1to16}, %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x9a,0x00,0x02,0x00,0x00] + vpminud 512(%rdx){1to16}, %zmm23, %zmm3 + +// CHECK: vpminud -512(%rdx){1to16}, %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x5a,0x80] + vpminud -512(%rdx){1to16}, %zmm23, %zmm3 + +// CHECK: vpminud -516(%rdx){1to16}, %zmm23, %zmm3 +// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x9a,0xfc,0xfd,0xff,0xff] + vpminud -516(%rdx){1to16}, %zmm23, %zmm3 + +// CHECK: vpminuq %zmm7, %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0xdf] + vpminuq %zmm7, %zmm26, %zmm11 + +// CHECK: vpminuq %zmm7, %zmm26, %zmm11 {%k5} +// CHECK: encoding: [0x62,0x72,0xad,0x45,0x3b,0xdf] + vpminuq %zmm7, %zmm26, %zmm11 {%k5} + +// CHECK: vpminuq %zmm7, %zmm26, %zmm11 {%k5} {z} +// CHECK: encoding: [0x62,0x72,0xad,0xc5,0x3b,0xdf] + vpminuq %zmm7, %zmm26, %zmm11 {%k5} {z} + +// CHECK: vpminuq (%rcx), %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x19] + vpminuq (%rcx), %zmm26, %zmm11 + +// CHECK: vpminuq 291(%rax,%r14,8), %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x32,0xad,0x40,0x3b,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpminuq 291(%rax,%r14,8), %zmm26, %zmm11 + +// CHECK: vpminuq (%rcx){1to8}, %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x19] + vpminuq (%rcx){1to8}, %zmm26, %zmm11 + +// CHECK: vpminuq 8128(%rdx), %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x5a,0x7f] + vpminuq 8128(%rdx), %zmm26, %zmm11 + +// CHECK: vpminuq 8192(%rdx), %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x9a,0x00,0x20,0x00,0x00] + vpminuq 8192(%rdx), %zmm26, %zmm11 + +// CHECK: vpminuq -8192(%rdx), %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x5a,0x80] + vpminuq -8192(%rdx), %zmm26, %zmm11 + +// CHECK: vpminuq -8256(%rdx), %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x9a,0xc0,0xdf,0xff,0xff] + vpminuq -8256(%rdx), %zmm26, %zmm11 + +// CHECK: vpminuq 1016(%rdx){1to8}, %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x5a,0x7f] + vpminuq 1016(%rdx){1to8}, %zmm26, %zmm11 + +// CHECK: vpminuq 1024(%rdx){1to8}, %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x9a,0x00,0x04,0x00,0x00] + vpminuq 1024(%rdx){1to8}, %zmm26, %zmm11 + +// CHECK: vpminuq -1024(%rdx){1to8}, %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x5a,0x80] + vpminuq -1024(%rdx){1to8}, %zmm26, %zmm11 + +// CHECK: vpminuq -1032(%rdx){1to8}, %zmm26, %zmm11 +// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x9a,0xf8,0xfb,0xff,0xff] + vpminuq -1032(%rdx){1to8}, %zmm26, %zmm11 + +// CHECK: vpmuldq %zmm9, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x42,0xb5,0x48,0x28,0xe9] + vpmuldq %zmm9, %zmm9, %zmm29 + +// CHECK: vpmuldq %zmm9, %zmm9, %zmm29 {%k5} +// CHECK: encoding: [0x62,0x42,0xb5,0x4d,0x28,0xe9] + vpmuldq %zmm9, %zmm9, %zmm29 {%k5} + +// CHECK: vpmuldq %zmm9, %zmm9, %zmm29 {%k5} {z} +// CHECK: encoding: [0x62,0x42,0xb5,0xcd,0x28,0xe9] + vpmuldq %zmm9, %zmm9, %zmm29 {%k5} {z} + +// CHECK: vpmuldq (%rcx), %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0x29] + vpmuldq (%rcx), %zmm9, %zmm29 + +// CHECK: vpmuldq (%rcx), %zmm9, %zmm29 {%k6} +// CHECK: encoding: [0x62,0x62,0xb5,0x4e,0x28,0x29] + vpmuldq (%rcx), %zmm9, %zmm29 {%k6} + +// CHECK: vpmuldq (%rcx), %zmm9, %zmm29 {%k6} {z} +// CHECK: encoding: [0x62,0x62,0xb5,0xce,0x28,0x29] + vpmuldq (%rcx), %zmm9, %zmm29 {%k6} {z} + +// CHECK: vpmuldq 291(%rax,%r14,8), %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x22,0xb5,0x48,0x28,0xac,0xf0,0x23,0x01,0x00,0x00] + vpmuldq 291(%rax,%r14,8), %zmm9, %zmm29 + +// CHECK: vpmuldq (%rcx){1to8}, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0x29] + vpmuldq (%rcx){1to8}, %zmm9, %zmm29 + +// CHECK: vpmuldq (%rcx){1to8}, %zmm9, %zmm29 {%k3} +// CHECK: encoding: [0x62,0x62,0xb5,0x5b,0x28,0x29] + vpmuldq (%rcx){1to8}, %zmm9, %zmm29 {%k3} + +// CHECK: vpmuldq (%rcx){1to8}, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0xdb,0x28,0x29] + vpmuldq (%rcx){1to8}, %zmm9, %zmm29 {%k3} {z} + +// CHECK: vpmuldq 8128(%rdx), %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0x6a,0x7f] + vpmuldq 8128(%rdx), %zmm9, %zmm29 + +// CHECK: vpmuldq 8192(%rdx), %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0xaa,0x00,0x20,0x00,0x00] + vpmuldq 8192(%rdx), %zmm9, %zmm29 + +// CHECK: vpmuldq -8192(%rdx), %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0x6a,0x80] + vpmuldq -8192(%rdx), %zmm9, %zmm29 + +// CHECK: vpmuldq -8256(%rdx), %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0xaa,0xc0,0xdf,0xff,0xff] + vpmuldq -8256(%rdx), %zmm9, %zmm29 + +// CHECK: vpmuldq 1016(%rdx){1to8}, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0x6a,0x7f] + vpmuldq 1016(%rdx){1to8}, %zmm9, %zmm29 + +// CHECK: vpmuldq 1024(%rdx){1to8}, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0xaa,0x00,0x04,0x00,0x00] + vpmuldq 1024(%rdx){1to8}, %zmm9, %zmm29 + +// CHECK: vpmuldq -1024(%rdx){1to8}, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0x6a,0x80] + vpmuldq -1024(%rdx){1to8}, %zmm9, %zmm29 + +// CHECK: vpmuldq -1032(%rdx){1to8}, %zmm9, %zmm29 +// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0xaa,0xf8,0xfb,0xff,0xff] + vpmuldq -1032(%rdx){1to8}, %zmm9, %zmm29 + +// CHECK: vpmulld %zmm2, %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0xe2] + vpmulld %zmm2, %zmm3, %zmm12 + +// CHECK: vpmulld %zmm2, %zmm3, %zmm12 {%k6} +// CHECK: encoding: [0x62,0x72,0x65,0x4e,0x40,0xe2] + vpmulld %zmm2, %zmm3, %zmm12 {%k6} + +// CHECK: vpmulld %zmm2, %zmm3, %zmm12 {%k6} {z} +// CHECK: encoding: [0x62,0x72,0x65,0xce,0x40,0xe2] + vpmulld %zmm2, %zmm3, %zmm12 {%k6} {z} + +// CHECK: vpmulld (%rcx), %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0x21] + vpmulld (%rcx), %zmm3, %zmm12 + +// CHECK: vpmulld 291(%rax,%r14,8), %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x32,0x65,0x48,0x40,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpmulld 291(%rax,%r14,8), %zmm3, %zmm12 + +// CHECK: vpmulld (%rcx){1to16}, %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0x21] + vpmulld (%rcx){1to16}, %zmm3, %zmm12 + +// CHECK: vpmulld 8128(%rdx), %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0x62,0x7f] + vpmulld 8128(%rdx), %zmm3, %zmm12 + +// CHECK: vpmulld 8192(%rdx), %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0xa2,0x00,0x20,0x00,0x00] + vpmulld 8192(%rdx), %zmm3, %zmm12 + +// CHECK: vpmulld -8192(%rdx), %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0x62,0x80] + vpmulld -8192(%rdx), %zmm3, %zmm12 + +// CHECK: vpmulld -8256(%rdx), %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0xa2,0xc0,0xdf,0xff,0xff] + vpmulld -8256(%rdx), %zmm3, %zmm12 + +// CHECK: vpmulld 508(%rdx){1to16}, %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0x62,0x7f] + vpmulld 508(%rdx){1to16}, %zmm3, %zmm12 + +// CHECK: vpmulld 512(%rdx){1to16}, %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0xa2,0x00,0x02,0x00,0x00] + vpmulld 512(%rdx){1to16}, %zmm3, %zmm12 + +// CHECK: vpmulld -512(%rdx){1to16}, %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0x62,0x80] + vpmulld -512(%rdx){1to16}, %zmm3, %zmm12 + +// CHECK: vpmulld -516(%rdx){1to16}, %zmm3, %zmm12 +// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0xa2,0xfc,0xfd,0xff,0xff] + vpmulld -516(%rdx){1to16}, %zmm3, %zmm12 + +// CHECK: vpmuludq %zmm9, %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xc1,0xd5,0x48,0xf4,0xf9] + vpmuludq %zmm9, %zmm5, %zmm23 + +// CHECK: vpmuludq %zmm9, %zmm5, %zmm23 {%k4} +// CHECK: encoding: [0x62,0xc1,0xd5,0x4c,0xf4,0xf9] + vpmuludq %zmm9, %zmm5, %zmm23 {%k4} + +// CHECK: vpmuludq %zmm9, %zmm5, %zmm23 {%k4} {z} +// CHECK: encoding: [0x62,0xc1,0xd5,0xcc,0xf4,0xf9] + vpmuludq %zmm9, %zmm5, %zmm23 {%k4} {z} + +// CHECK: vpmuludq (%rcx), %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0x39] + vpmuludq (%rcx), %zmm5, %zmm23 + +// CHECK: vpmuludq 291(%rax,%r14,8), %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xa1,0xd5,0x48,0xf4,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpmuludq 291(%rax,%r14,8), %zmm5, %zmm23 + +// CHECK: vpmuludq (%rcx){1to8}, %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0x39] + vpmuludq (%rcx){1to8}, %zmm5, %zmm23 + +// CHECK: vpmuludq 8128(%rdx), %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0x7a,0x7f] + vpmuludq 8128(%rdx), %zmm5, %zmm23 + +// CHECK: vpmuludq 8192(%rdx), %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0xba,0x00,0x20,0x00,0x00] + vpmuludq 8192(%rdx), %zmm5, %zmm23 + +// CHECK: vpmuludq -8192(%rdx), %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0x7a,0x80] + vpmuludq -8192(%rdx), %zmm5, %zmm23 + +// CHECK: vpmuludq -8256(%rdx), %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0xba,0xc0,0xdf,0xff,0xff] + vpmuludq -8256(%rdx), %zmm5, %zmm23 + +// CHECK: vpmuludq 1016(%rdx){1to8}, %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0x7a,0x7f] + vpmuludq 1016(%rdx){1to8}, %zmm5, %zmm23 + +// CHECK: vpmuludq 1024(%rdx){1to8}, %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0xba,0x00,0x04,0x00,0x00] + vpmuludq 1024(%rdx){1to8}, %zmm5, %zmm23 + +// CHECK: vpmuludq -1024(%rdx){1to8}, %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0x7a,0x80] + vpmuludq -1024(%rdx){1to8}, %zmm5, %zmm23 + +// CHECK: vpmuludq -1032(%rdx){1to8}, %zmm5, %zmm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0xba,0xf8,0xfb,0xff,0xff] + vpmuludq -1032(%rdx){1to8}, %zmm5, %zmm23 + +// CHECK: vpord %zmm20, %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xa1,0x6d,0x48,0xeb,0xfc] + vpord %zmm20, %zmm2, %zmm23 + +// CHECK: vpord %zmm20, %zmm2, %zmm23 {%k2} +// CHECK: encoding: [0x62,0xa1,0x6d,0x4a,0xeb,0xfc] + vpord %zmm20, %zmm2, %zmm23 {%k2} + +// CHECK: vpord %zmm20, %zmm2, %zmm23 {%k2} {z} +// CHECK: encoding: [0x62,0xa1,0x6d,0xca,0xeb,0xfc] + vpord %zmm20, %zmm2, %zmm23 {%k2} {z} + +// CHECK: vpord (%rcx), %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0x39] + vpord (%rcx), %zmm2, %zmm23 + +// CHECK: vpord 291(%rax,%r14,8), %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xa1,0x6d,0x48,0xeb,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpord 291(%rax,%r14,8), %zmm2, %zmm23 + +// CHECK: vpord (%rcx){1to16}, %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0x39] + vpord (%rcx){1to16}, %zmm2, %zmm23 + +// CHECK: vpord 8128(%rdx), %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0x7a,0x7f] + vpord 8128(%rdx), %zmm2, %zmm23 + +// CHECK: vpord 8192(%rdx), %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0xba,0x00,0x20,0x00,0x00] + vpord 8192(%rdx), %zmm2, %zmm23 + +// CHECK: vpord -8192(%rdx), %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0x7a,0x80] + vpord -8192(%rdx), %zmm2, %zmm23 + +// CHECK: vpord -8256(%rdx), %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0xba,0xc0,0xdf,0xff,0xff] + vpord -8256(%rdx), %zmm2, %zmm23 + +// CHECK: vpord 508(%rdx){1to16}, %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0x7a,0x7f] + vpord 508(%rdx){1to16}, %zmm2, %zmm23 + +// CHECK: vpord 512(%rdx){1to16}, %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0xba,0x00,0x02,0x00,0x00] + vpord 512(%rdx){1to16}, %zmm2, %zmm23 + +// CHECK: vpord -512(%rdx){1to16}, %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0x7a,0x80] + vpord -512(%rdx){1to16}, %zmm2, %zmm23 + +// CHECK: vpord -516(%rdx){1to16}, %zmm2, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0xba,0xfc,0xfd,0xff,0xff] + vpord -516(%rdx){1to16}, %zmm2, %zmm23 + +// CHECK: vporq %zmm6, %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0xce] + vporq %zmm6, %zmm10, %zmm1 + +// CHECK: vporq %zmm6, %zmm10, %zmm1 {%k2} +// CHECK: encoding: [0x62,0xf1,0xad,0x4a,0xeb,0xce] + vporq %zmm6, %zmm10, %zmm1 {%k2} + +// CHECK: vporq %zmm6, %zmm10, %zmm1 {%k2} {z} +// CHECK: encoding: [0x62,0xf1,0xad,0xca,0xeb,0xce] + vporq %zmm6, %zmm10, %zmm1 {%k2} {z} + +// CHECK: vporq (%rcx), %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x09] + vporq (%rcx), %zmm10, %zmm1 + +// CHECK: vporq 291(%rax,%r14,8), %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xb1,0xad,0x48,0xeb,0x8c,0xf0,0x23,0x01,0x00,0x00] + vporq 291(%rax,%r14,8), %zmm10, %zmm1 + +// CHECK: vporq (%rcx){1to8}, %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x09] + vporq (%rcx){1to8}, %zmm10, %zmm1 + +// CHECK: vporq 8128(%rdx), %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x4a,0x7f] + vporq 8128(%rdx), %zmm10, %zmm1 + +// CHECK: vporq 8192(%rdx), %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x8a,0x00,0x20,0x00,0x00] + vporq 8192(%rdx), %zmm10, %zmm1 + +// CHECK: vporq -8192(%rdx), %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x4a,0x80] + vporq -8192(%rdx), %zmm10, %zmm1 + +// CHECK: vporq -8256(%rdx), %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x8a,0xc0,0xdf,0xff,0xff] + vporq -8256(%rdx), %zmm10, %zmm1 + +// CHECK: vporq 1016(%rdx){1to8}, %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x4a,0x7f] + vporq 1016(%rdx){1to8}, %zmm10, %zmm1 + +// CHECK: vporq 1024(%rdx){1to8}, %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x8a,0x00,0x04,0x00,0x00] + vporq 1024(%rdx){1to8}, %zmm10, %zmm1 + +// CHECK: vporq -1024(%rdx){1to8}, %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x4a,0x80] + vporq -1024(%rdx){1to8}, %zmm10, %zmm1 + +// CHECK: vporq -1032(%rdx){1to8}, %zmm10, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x8a,0xf8,0xfb,0xff,0xff] + vporq -1032(%rdx){1to8}, %zmm10, %zmm1 + +// CHECK: vpsubd %zmm7, %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0xff] + vpsubd %zmm7, %zmm28, %zmm7 + +// CHECK: vpsubd %zmm7, %zmm28, %zmm7 {%k3} +// CHECK: encoding: [0x62,0xf1,0x1d,0x43,0xfa,0xff] + vpsubd %zmm7, %zmm28, %zmm7 {%k3} + +// CHECK: vpsubd %zmm7, %zmm28, %zmm7 {%k3} {z} +// CHECK: encoding: [0x62,0xf1,0x1d,0xc3,0xfa,0xff] + vpsubd %zmm7, %zmm28, %zmm7 {%k3} {z} + +// CHECK: vpsubd (%rcx), %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0x39] + vpsubd (%rcx), %zmm28, %zmm7 + +// CHECK: vpsubd 291(%rax,%r14,8), %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xb1,0x1d,0x40,0xfa,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpsubd 291(%rax,%r14,8), %zmm28, %zmm7 + +// CHECK: vpsubd (%rcx){1to16}, %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0x39] + vpsubd (%rcx){1to16}, %zmm28, %zmm7 + +// CHECK: vpsubd 8128(%rdx), %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0x7a,0x7f] + vpsubd 8128(%rdx), %zmm28, %zmm7 + +// CHECK: vpsubd 8192(%rdx), %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0xba,0x00,0x20,0x00,0x00] + vpsubd 8192(%rdx), %zmm28, %zmm7 + +// CHECK: vpsubd -8192(%rdx), %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0x7a,0x80] + vpsubd -8192(%rdx), %zmm28, %zmm7 + +// CHECK: vpsubd -8256(%rdx), %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0xba,0xc0,0xdf,0xff,0xff] + vpsubd -8256(%rdx), %zmm28, %zmm7 + +// CHECK: vpsubd 508(%rdx){1to16}, %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0x7a,0x7f] + vpsubd 508(%rdx){1to16}, %zmm28, %zmm7 + +// CHECK: vpsubd 512(%rdx){1to16}, %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0xba,0x00,0x02,0x00,0x00] + vpsubd 512(%rdx){1to16}, %zmm28, %zmm7 + +// CHECK: vpsubd -512(%rdx){1to16}, %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0x7a,0x80] + vpsubd -512(%rdx){1to16}, %zmm28, %zmm7 + +// CHECK: vpsubd -516(%rdx){1to16}, %zmm28, %zmm7 +// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0xba,0xfc,0xfd,0xff,0xff] + vpsubd -516(%rdx){1to16}, %zmm28, %zmm7 + +// CHECK: vpsubq %zmm17, %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x21,0x9d,0x40,0xfb,0xe9] + vpsubq %zmm17, %zmm28, %zmm29 + +// CHECK: vpsubq %zmm17, %zmm28, %zmm29 {%k2} +// CHECK: encoding: [0x62,0x21,0x9d,0x42,0xfb,0xe9] + vpsubq %zmm17, %zmm28, %zmm29 {%k2} + +// CHECK: vpsubq %zmm17, %zmm28, %zmm29 {%k2} {z} +// CHECK: encoding: [0x62,0x21,0x9d,0xc2,0xfb,0xe9] + vpsubq %zmm17, %zmm28, %zmm29 {%k2} {z} + +// CHECK: vpsubq (%rcx), %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0x29] + vpsubq (%rcx), %zmm28, %zmm29 + +// CHECK: vpsubq 291(%rax,%r14,8), %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x21,0x9d,0x40,0xfb,0xac,0xf0,0x23,0x01,0x00,0x00] + vpsubq 291(%rax,%r14,8), %zmm28, %zmm29 + +// CHECK: vpsubq (%rcx){1to8}, %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0x29] + vpsubq (%rcx){1to8}, %zmm28, %zmm29 + +// CHECK: vpsubq 8128(%rdx), %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0x6a,0x7f] + vpsubq 8128(%rdx), %zmm28, %zmm29 + +// CHECK: vpsubq 8192(%rdx), %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0xaa,0x00,0x20,0x00,0x00] + vpsubq 8192(%rdx), %zmm28, %zmm29 + +// CHECK: vpsubq -8192(%rdx), %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0x6a,0x80] + vpsubq -8192(%rdx), %zmm28, %zmm29 + +// CHECK: vpsubq -8256(%rdx), %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0xaa,0xc0,0xdf,0xff,0xff] + vpsubq -8256(%rdx), %zmm28, %zmm29 + +// CHECK: vpsubq 1016(%rdx){1to8}, %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0x6a,0x7f] + vpsubq 1016(%rdx){1to8}, %zmm28, %zmm29 + +// CHECK: vpsubq 1024(%rdx){1to8}, %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0xaa,0x00,0x04,0x00,0x00] + vpsubq 1024(%rdx){1to8}, %zmm28, %zmm29 + +// CHECK: vpsubq -1024(%rdx){1to8}, %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0x6a,0x80] + vpsubq -1024(%rdx){1to8}, %zmm28, %zmm29 + +// CHECK: vpsubq -1032(%rdx){1to8}, %zmm28, %zmm29 +// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0xaa,0xf8,0xfb,0xff,0xff] + vpsubq -1032(%rdx){1to8}, %zmm28, %zmm29 + +// CHECK: vpxord %zmm24, %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x11,0x1d,0x48,0xef,0xc0] + vpxord %zmm24, %zmm12, %zmm8 + +// CHECK: vpxord %zmm24, %zmm12, %zmm8 {%k6} +// CHECK: encoding: [0x62,0x11,0x1d,0x4e,0xef,0xc0] + vpxord %zmm24, %zmm12, %zmm8 {%k6} + +// CHECK: vpxord %zmm24, %zmm12, %zmm8 {%k6} {z} +// CHECK: encoding: [0x62,0x11,0x1d,0xce,0xef,0xc0] + vpxord %zmm24, %zmm12, %zmm8 {%k6} {z} + +// CHECK: vpxord (%rcx), %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x01] + vpxord (%rcx), %zmm12, %zmm8 + +// CHECK: vpxord 291(%rax,%r14,8), %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x31,0x1d,0x48,0xef,0x84,0xf0,0x23,0x01,0x00,0x00] + vpxord 291(%rax,%r14,8), %zmm12, %zmm8 + +// CHECK: vpxord (%rcx){1to16}, %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x01] + vpxord (%rcx){1to16}, %zmm12, %zmm8 + +// CHECK: vpxord 8128(%rdx), %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x42,0x7f] + vpxord 8128(%rdx), %zmm12, %zmm8 + +// CHECK: vpxord 8192(%rdx), %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x82,0x00,0x20,0x00,0x00] + vpxord 8192(%rdx), %zmm12, %zmm8 + +// CHECK: vpxord -8192(%rdx), %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x42,0x80] + vpxord -8192(%rdx), %zmm12, %zmm8 + +// CHECK: vpxord -8256(%rdx), %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x82,0xc0,0xdf,0xff,0xff] + vpxord -8256(%rdx), %zmm12, %zmm8 + +// CHECK: vpxord 508(%rdx){1to16}, %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x42,0x7f] + vpxord 508(%rdx){1to16}, %zmm12, %zmm8 + +// CHECK: vpxord 512(%rdx){1to16}, %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x82,0x00,0x02,0x00,0x00] + vpxord 512(%rdx){1to16}, %zmm12, %zmm8 + +// CHECK: vpxord -512(%rdx){1to16}, %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x42,0x80] + vpxord -512(%rdx){1to16}, %zmm12, %zmm8 + +// CHECK: vpxord -516(%rdx){1to16}, %zmm12, %zmm8 +// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x82,0xfc,0xfd,0xff,0xff] + vpxord -516(%rdx){1to16}, %zmm12, %zmm8 + +// CHECK: vpxorq %zmm10, %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xd1,0xcd,0x40,0xef,0xfa] + vpxorq %zmm10, %zmm22, %zmm7 + +// CHECK: vpxorq %zmm10, %zmm22, %zmm7 {%k6} +// CHECK: encoding: [0x62,0xd1,0xcd,0x46,0xef,0xfa] + vpxorq %zmm10, %zmm22, %zmm7 {%k6} + +// CHECK: vpxorq %zmm10, %zmm22, %zmm7 {%k6} {z} +// CHECK: encoding: [0x62,0xd1,0xcd,0xc6,0xef,0xfa] + vpxorq %zmm10, %zmm22, %zmm7 {%k6} {z} + +// CHECK: vpxorq (%rcx), %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0x39] + vpxorq (%rcx), %zmm22, %zmm7 + +// CHECK: vpxorq 291(%rax,%r14,8), %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xb1,0xcd,0x40,0xef,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpxorq 291(%rax,%r14,8), %zmm22, %zmm7 + +// CHECK: vpxorq (%rcx){1to8}, %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0x39] + vpxorq (%rcx){1to8}, %zmm22, %zmm7 + +// CHECK: vpxorq 8128(%rdx), %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0x7a,0x7f] + vpxorq 8128(%rdx), %zmm22, %zmm7 + +// CHECK: vpxorq 8192(%rdx), %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0xba,0x00,0x20,0x00,0x00] + vpxorq 8192(%rdx), %zmm22, %zmm7 + +// CHECK: vpxorq -8192(%rdx), %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0x7a,0x80] + vpxorq -8192(%rdx), %zmm22, %zmm7 + +// CHECK: vpxorq -8256(%rdx), %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0xba,0xc0,0xdf,0xff,0xff] + vpxorq -8256(%rdx), %zmm22, %zmm7 + +// CHECK: vpxorq 1016(%rdx){1to8}, %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0x7a,0x7f] + vpxorq 1016(%rdx){1to8}, %zmm22, %zmm7 + +// CHECK: vpxorq 1024(%rdx){1to8}, %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0xba,0x00,0x04,0x00,0x00] + vpxorq 1024(%rdx){1to8}, %zmm22, %zmm7 + +// CHECK: vpxorq -1024(%rdx){1to8}, %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0x7a,0x80] + vpxorq -1024(%rdx){1to8}, %zmm22, %zmm7 + +// CHECK: vpxorq -1032(%rdx){1to8}, %zmm22, %zmm7 +// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0xba,0xf8,0xfb,0xff,0xff] + vpxorq -1032(%rdx){1to8}, %zmm22, %zmm7 + +// CHECK: vsubpd %zmm9, %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x51,0x9d,0x48,0x5c,0xc9] + vsubpd %zmm9, %zmm12, %zmm9 + +// CHECK: vsubpd %zmm9, %zmm12, %zmm9 {%k7} +// CHECK: encoding: [0x62,0x51,0x9d,0x4f,0x5c,0xc9] + vsubpd %zmm9, %zmm12, %zmm9 {%k7} + +// CHECK: vsubpd %zmm9, %zmm12, %zmm9 {%k7} {z} +// CHECK: encoding: [0x62,0x51,0x9d,0xcf,0x5c,0xc9] + vsubpd %zmm9, %zmm12, %zmm9 {%k7} {z} + +// CHECK: vsubpd (%rcx), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x09] + vsubpd (%rcx), %zmm12, %zmm9 + +// CHECK: vsubpd 291(%rax,%r14,8), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x31,0x9d,0x48,0x5c,0x8c,0xf0,0x23,0x01,0x00,0x00] + vsubpd 291(%rax,%r14,8), %zmm12, %zmm9 + +// CHECK: vsubpd (%rcx){1to8}, %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x09] + vsubpd (%rcx){1to8}, %zmm12, %zmm9 + +// CHECK: vsubpd 8128(%rdx), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x4a,0x7f] + vsubpd 8128(%rdx), %zmm12, %zmm9 + +// CHECK: vsubpd 8192(%rdx), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x8a,0x00,0x20,0x00,0x00] + vsubpd 8192(%rdx), %zmm12, %zmm9 + +// CHECK: vsubpd -8256(%rdx), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x8a,0xc0,0xdf,0xff,0xff] + vsubpd -8256(%rdx), %zmm12, %zmm9 + +// CHECK: vsubpd 1016(%rdx){1to8}, %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x4a,0x7f] + vsubpd 1016(%rdx){1to8}, %zmm12, %zmm9 + +// CHECK: vsubpd 1024(%rdx){1to8}, %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x8a,0x00,0x04,0x00,0x00] + vsubpd 1024(%rdx){1to8}, %zmm12, %zmm9 + +// CHECK: vsubpd -1032(%rdx){1to8}, %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x8a,0xf8,0xfb,0xff,0xff] + vsubpd -1032(%rdx){1to8}, %zmm12, %zmm9 + +// CHECK: vsubps %zmm21, %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x31,0x24,0x40,0x5c,0xf5] + vsubps %zmm21, %zmm27, %zmm14 + +// CHECK: vsubps %zmm21, %zmm27, %zmm14 {%k5} +// CHECK: encoding: [0x62,0x31,0x24,0x45,0x5c,0xf5] + vsubps %zmm21, %zmm27, %zmm14 {%k5} + +// CHECK: vsubps %zmm21, %zmm27, %zmm14 {%k5} {z} +// CHECK: encoding: [0x62,0x31,0x24,0xc5,0x5c,0xf5] + vsubps %zmm21, %zmm27, %zmm14 {%k5} {z} + +// CHECK: vsubps (%rcx), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x31] + vsubps (%rcx), %zmm27, %zmm14 + +// CHECK: vsubps 291(%rax,%r14,8), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x31,0x24,0x40,0x5c,0xb4,0xf0,0x23,0x01,0x00,0x00] + vsubps 291(%rax,%r14,8), %zmm27, %zmm14 + +// CHECK: vsubps (%rcx){1to16}, %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0x31] + vsubps (%rcx){1to16}, %zmm27, %zmm14 + +// CHECK: vsubps 8128(%rdx), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x72,0x7f] + vsubps 8128(%rdx), %zmm27, %zmm14 + +// CHECK: vsubps 8192(%rdx), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0xb2,0x00,0x20,0x00,0x00] + vsubps 8192(%rdx), %zmm27, %zmm14 + +// CHECK: vsubps -8256(%rdx), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0xb2,0xc0,0xdf,0xff,0xff] + vsubps -8256(%rdx), %zmm27, %zmm14 + +// CHECK: vsubps 508(%rdx){1to16}, %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0x72,0x7f] + vsubps 508(%rdx){1to16}, %zmm27, %zmm14 + +// CHECK: vsubps 512(%rdx){1to16}, %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0xb2,0x00,0x02,0x00,0x00] + vsubps 512(%rdx){1to16}, %zmm27, %zmm14 + +// CHECK: vsubps -516(%rdx){1to16}, %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0xb2,0xfc,0xfd,0xff,0xff] + vsubps -516(%rdx){1to16}, %zmm27, %zmm14 + // CHECK: vinserti32x4 // CHECK: encoding: [0x62,0xa3,0x55,0x48,0x38,0xcd,0x01] vinserti32x4 $1, %xmm21, %zmm5, %zmm17 @@ -41,5 +2161,25 @@ vpsrad 512(%rdi, %rsi, 4), %zmm12, %zmm25 vpbroadcastd %xmm0, %zmm1 {%k1} {z} // CHECK: vmovdqu64 {{.*}} {%k3} -// CHECK: encoding: [0x62,0xf1,0xfe,0x4b,0x6f,0xc8] -vmovdqu64 %zmm0, %zmm1 {%k3} +// CHECK: encoding: [0x62,0xf1,0xfe,0x4b,0x7f,0x07] +vmovdqu64 %zmm0, (%rdi) {%k3} + +// CHECK: vmovdqa32 {{.*}} {%k4} +// CHECK: encoding: [0x62,0x61,0x7d,0x4c,0x6f,0x1e] +vmovdqa32 (%rsi), %zmm27 {%k4} + +// CHECK: vmovd +// CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x7e,0x74,0x24,0xeb] +vmovd %xmm22, -84(%rsp) + +// CHECK: vextractps +// CHECK: encoding: [0x62,0xe3,0x7d,0x08,0x17,0x61,0x1f,0x02] +vextractps $2, %xmm20, 124(%rcx) + +// CHECK: vaddpd {{.*}}{1to8} +// CHECK: encoding: [0x62,0x61,0xdd,0x50,0x58,0x74,0xf7,0x40] +vaddpd 512(%rdi, %rsi, 8) {1to8}, %zmm20, %zmm30 + +// CHECK: vaddps {{.*}}{1to16} +// CHECK: encoding: [0x62,0x61,0x5c,0x50,0x58,0xb4,0xf7,0x00,0x02,0x00,0x00] +vaddps 512(%rdi, %rsi, 8) {1to16}, %zmm20, %zmm30 diff --git a/test/MC/X86/fixup-cpu-mode.s b/test/MC/X86/fixup-cpu-mode.s new file mode 100644 index 0000000..13e0d46 --- /dev/null +++ b/test/MC/X86/fixup-cpu-mode.s @@ -0,0 +1,8 @@ +// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t +// RUN: llvm-objdump -d %t | FileCheck %s + +//PR18303 +.global edata +sub $edata, %r12 // CHECK: subq $0, %r12 +.code32 + diff --git a/test/MC/X86/index-operations.s b/test/MC/X86/index-operations.s new file mode 100644 index 0000000..9f69b0b --- /dev/null +++ b/test/MC/X86/index-operations.s @@ -0,0 +1,146 @@ +// RUN: not llvm-mc -triple x86_64-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=64 %s +// RUN: FileCheck --check-prefix=ERR64 < %t.err %s +// RUN: not llvm-mc -triple i386-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=32 %s +// RUN: FileCheck --check-prefix=ERR32 < %t.err %s +// RUN: not llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s 2> %t.err | FileCheck --check-prefix=16 %s +// RUN: FileCheck --check-prefix=ERR16 < %t.err %s + +lodsb +// 64: lodsb (%rsi), %al # encoding: [0xac] +// 32: lodsb (%esi), %al # encoding: [0xac] +// 16: lodsb (%si), %al # encoding: [0xac] + +lodsb (%rsi), %al +// 64: lodsb (%rsi), %al # encoding: [0xac] +// ERR32: 64-bit +// ERR16: 64-bit + +lodsb (%esi), %al +// 64: lodsb (%esi), %al # encoding: [0x67,0xac] +// 32: lodsb (%esi), %al # encoding: [0xac] +// 16: lodsb (%esi), %al # encoding: [0x67,0xac] + +lodsb (%si), %al +// ERR64: invalid 16-bit base register +// 32: lodsb (%si), %al # encoding: [0x67,0xac] +// 16: lodsb (%si), %al # encoding: [0xac] + +lodsl %gs:(%esi) +// 64: lodsl %gs:(%esi), %eax # encoding: [0x65,0x67,0xad] +// 32: lodsl %gs:(%esi), %eax # encoding: [0x65,0xad] +// 16: lodsl %gs:(%esi), %eax # encoding: [0x66,0x65,0x67,0xad] + +lodsl (%edi), %eax +// ERR64: invalid operand +// ERR32: invalid operand +// ERR16: invalid operand + +lodsl 44(%edi), %eax +// ERR64: invalid operand +// ERR32: invalid operand +// ERR16: invalid operand + +lods (%esi), %ax +// 64: lodsw (%esi), %ax # encoding: [0x66,0x67,0xad] +// 32: lodsw (%esi), %ax # encoding: [0x66,0xad] +// 16: lodsw (%esi), %ax # encoding: [0x67,0xad] + +stosw +// 64: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab] +// 32: stosw %ax, %es:(%edi) # encoding: [0x66,0xab] +// 16: stosw %ax, %es:(%di) # encoding: [0xab] + +stos %eax, (%edi) +// 64: stosl %eax, %es:(%edi) # encoding: [0x67,0xab] +// 32: stosl %eax, %es:(%edi) # encoding: [0xab] +// 16: stosl %eax, %es:(%edi) # encoding: [0x66,0x67,0xab] + +stosb %al, %fs:(%edi) +// ERR64: invalid operand for instruction +// ERR32: invalid operand for instruction +// ERR16: invalid operand for instruction + +stosb %al, %es:(%edi) +// 64: stosb %al, %es:(%edi) # encoding: [0x67,0xaa] +// 32: stosb %al, %es:(%edi) # encoding: [0xaa] +// 16: stosb %al, %es:(%edi) # encoding: [0x67,0xaa] + +stosq +// 64: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab] +// ERR32: 64-bit +// ERR16: 64-bit + +stos %rax, (%edi) +// 64: stosq %rax, %es:(%edi) # encoding: [0x48,0x67,0xab] +// ERR32: only available in 64-bit mode +// ERR16: only available in 64-bit mode + +scas %es:(%edi), %al +// 64: scasb %es:(%edi), %al # encoding: [0x67,0xae] +// 32: scasb %es:(%edi), %al # encoding: [0xae] +// 16: scasb %es:(%edi), %al # encoding: [0x67,0xae] + +scasq %es:(%edi) +// 64: scasq %es:(%edi), %rax # encoding: [0x48,0x67,0xaf] +// ERR32: 64-bit +// ERR16: 64-bit + +scasl %es:(%edi), %al +// ERR64: invalid operand +// ERR32: invalid operand +// ERR16: invalid operand + +scas %es:(%di), %ax +// ERR64: invalid 16-bit base register +// 16: scasw %es:(%di), %ax # encoding: [0xaf] +// 32: scasw %es:(%di), %ax # encoding: [0x66,0x67,0xaf] + +cmpsb +// 64: cmpsb %es:(%rdi), (%rsi) # encoding: [0xa6] +// 32: cmpsb %es:(%edi), (%esi) # encoding: [0xa6] +// 16: cmpsb %es:(%di), (%si) # encoding: [0xa6] + +cmpsw (%edi), (%esi) +// 64: cmpsw %es:(%edi), (%esi) # encoding: [0x66,0x67,0xa7] +// 32: cmpsw %es:(%edi), (%esi) # encoding: [0x66,0xa7] +// 16: cmpsw %es:(%edi), (%esi) # encoding: [0x67,0xa7] + +cmpsb (%di), (%esi) +// ERR64: invalid 16-bit base register +// ERR32: mismatching source and destination +// ERR16: mismatching source and destination + +cmpsl %es:(%edi), %ss:(%esi) +// 64: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x36,0x67,0xa7] +// 32: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x36,0xa7] +// 16: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x66,0x36,0x67,0xa7] + +cmpsq (%rdi), (%rsi) +// 64: cmpsq %es:(%rdi), (%rsi) # encoding: [0x48,0xa7] +// ERR32: 64-bit +// ERR16: 64-bit + +movsb (%esi), (%edi) +// 64: movsb (%esi), %es:(%edi) # encoding: [0x67,0xa4] +// 32: movsb (%esi), %es:(%edi) # encoding: [0xa4] +// 16: movsb (%esi), %es:(%edi) # encoding: [0x67,0xa4] + +movsl %gs:(%esi), (%edi) +// 64: movsl %gs:(%esi), %es:(%edi) # encoding: [0x65,0x67,0xa5] +// 32: movsl %gs:(%esi), %es:(%edi) # encoding: [0x65,0xa5] +// 16: movsl %gs:(%esi), %es:(%edi) # encoding: [0x66,0x65,0x67,0xa5] + +outsb +// 64: outsb (%rsi), %dx # encoding: [0x6e] +// 32: outsb (%esi), %dx # encoding: [0x6e] +// 16: outsb (%si), %dx # encoding: [0x6e] + +outsw %fs:(%esi), %dx +// 64: outsw %fs:(%esi), %dx # encoding: [0x66,0x64,0x67,0x6f] +// 32: outsw %fs:(%esi), %dx # encoding: [0x66,0x64,0x6f] +// 16: outsw %fs:(%esi), %dx # encoding: [0x64,0x67,0x6f] + +insw %dx, (%edi) +// 64: insw %dx, %es:(%edi) # encoding: [0x66,0x67,0x6d] +// 32: insw %dx, %es:(%edi) # encoding: [0x66,0x6d] +// 16: insw %dx, %es:(%edi) # encoding: [0x67,0x6d] diff --git a/test/MC/X86/intel-syntax-avx512.s b/test/MC/X86/intel-syntax-avx512.s new file mode 100644 index 0000000..b382994 --- /dev/null +++ b/test/MC/X86/intel-syntax-avx512.s @@ -0,0 +1,5 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel -mcpu=knl --show-encoding %s | FileCheck %s + +// CHECK: vaddps (%rax), %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0x74,0x48,0x58,0x08] +vaddps zmm1, zmm1, zmmword ptr [rax] diff --git a/test/MC/X86/intel-syntax-bitwise-ops.s b/test/MC/X86/intel-syntax-bitwise-ops.s new file mode 100644 index 0000000..c9c9b1d --- /dev/null +++ b/test/MC/X86/intel-syntax-bitwise-ops.s @@ -0,0 +1,22 @@ +// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=att %s | FileCheck %s + +.intel_syntax + +// CHECK: andl $3, %ecx + and ecx, 1+2 +// CHECK: andl $3, %ecx + and ecx, 1|2 +// CHECK: andl $3, %ecx + and ecx, 1*3 +// CHECK: andl $1, %ecx + and ecx, 1&3 +// CHECK: andl $0, %ecx + and ecx, (1&2) +// CHECK: andl $3, %ecx + and ecx, ((1)|2) +// CHECK: andl $1, %ecx + and ecx, 1&2+3 +// CHECK: addl $4938, %eax + add eax, 9876 >> 1 +// CHECK: addl $19752, %eax + add eax, 9876 << 1 diff --git a/test/MC/X86/intel-syntax-directional-label.s b/test/MC/X86/intel-syntax-directional-label.s new file mode 100644 index 0000000..c1aa90f --- /dev/null +++ b/test/MC/X86/intel-syntax-directional-label.s @@ -0,0 +1,17 @@ +// RUN: llvm-mc -triple x86_64-apple-darwin -x86-asm-syntax=intel %s | FileCheck %s +// rdar://14961158 + .text + .align 16 + .globl FUNCTION_NAME + .private_extern FUNCTION_NAME +FUNCTION_NAME: + .intel_syntax + cmp rdi, 1 + jge 1f +// CHECK: jge Ltmp0 + add rdi, 2 +// CHECK: addq $2, %rdi +1: +// CHECK: Ltmp0: + add rdi, 1 + ret diff --git a/test/MC/X86/intel-syntax-invalid-basereg.s b/test/MC/X86/intel-syntax-invalid-basereg.s new file mode 100644 index 0000000..fe026e184 --- /dev/null +++ b/test/MC/X86/intel-syntax-invalid-basereg.s @@ -0,0 +1,7 @@ +// RUN: not llvm-mc -triple x86_64-unknown-unknown %s 2> %t.err +// RUN: FileCheck < %t.err %s + +.intel_syntax + +// CHECK: error: base register is 64-bit, but index register is not + lea rax, [rdi + edx] diff --git a/test/MC/X86/intel-syntax-invalid-scale.s b/test/MC/X86/intel-syntax-invalid-scale.s new file mode 100644 index 0000000..69c6add --- /dev/null +++ b/test/MC/X86/intel-syntax-invalid-scale.s @@ -0,0 +1,11 @@ +// RUN: not llvm-mc -triple x86_64-unknown-unknown %s 2> %t.err +// RUN: FileCheck < %t.err %s + +.intel_syntax + +// CHECK: error: scale factor in address must be 1, 2, 4 or 8 + lea rax, [rdi + rdx*64] +// CHECK: error: scale factor in address must be 1, 2, 4 or 8 + lea rax, [rdi + rdx*32] +// CHECK: error: scale factor in address must be 1, 2, 4 or 8 + lea rax, [rdi + rdx*16] diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index 9677da7..540282a 100644 --- a/test/MC/X86/intel-syntax.s +++ b/test/MC/X86/intel-syntax.s @@ -584,3 +584,18 @@ fsub ST(1) fsubr ST(1) fdiv ST(1) fdivr ST(1) + + +// CHECK: fxsaveq (%rax) +// CHECK: fxrstorq (%rax) +fxsave64 opaque ptr [rax] +fxrstor64 opaque ptr [rax] + +.bss +.globl _g0 +.text + +// CHECK: movq _g0, %rbx +// CHECK: movq _g0+8, %rcx +mov rbx, qword ptr [_g0] +mov rcx, qword ptr [_g0 + 8] diff --git a/test/MC/X86/no-elf-compact-unwind.s b/test/MC/X86/no-elf-compact-unwind.s new file mode 100644 index 0000000..017c52a --- /dev/null +++ b/test/MC/X86/no-elf-compact-unwind.s @@ -0,0 +1,15 @@ +// RUN: llvm-mc < %s -filetype=obj -triple x86_64-apple-macosx10.8.0 | llvm-readobj -s | FileCheck -check-prefix=MACHO %s +// RUN: llvm-mc < %s -filetype=obj -triple x86_64-unknown-linux | llvm-readobj -s | FileCheck -check-prefix=ELF %s + + .globl __Z3barv + .align 4, 0x90 +__Z3barv: + .cfi_startproc + pushq %rax + .cfi_def_cfa_offset 16 + popq %rax + retq + .cfi_endproc + +// MACHO: Name: __compact_unwind +// ELF-NOT: __compact_unwind diff --git a/test/MC/X86/padlock.s b/test/MC/X86/padlock.s index 5c523e7..6985817 100644 --- a/test/MC/X86/padlock.s +++ b/test/MC/X86/padlock.s @@ -3,55 +3,3 @@ xstore // CHECK: xstore // CHECK: encoding: [0x0f,0xa7,0xc0] - - xstorerng -// CHECK: xstore -// CHECK: encoding: [0x0f,0xa7,0xc0] - - rep xcryptecb -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xcryptecb -// CHECK: encoding: [0x0f,0xa7,0xc8] - - rep xcryptcbc -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xcryptcbc -// CHECK: encoding: [0x0f,0xa7,0xd0] - - rep xcryptctr -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xcryptctr -// CHECK: encoding: [0x0f,0xa7,0xd8] - - rep xcryptcfb -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xcryptcfb -// CHECK: encoding: [0x0f,0xa7,0xe0] - - rep xcryptofb -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xcryptofb -// CHECK: encoding: [0x0f,0xa7,0xe8] - - rep xsha1 -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xsha1 -// CHECK: encoding: [0x0f,0xa6,0xc8] - - rep xsha256 -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: xsha256 -// CHECK: encoding: [0x0f,0xa6,0xd0] - - rep montmul -// CHECK: rep -// CHECK: encoding: [0xf3] -// CHECK: montmul -// CHECK: encoding: [0x0f,0xa6,0xc0] diff --git a/test/MC/X86/relax-insn.s b/test/MC/X86/relax-insn.s new file mode 100644 index 0000000..510766c --- /dev/null +++ b/test/MC/X86/relax-insn.s @@ -0,0 +1,5 @@ +// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o %t +// RUN: llvm-objdump -d %t | FileCheck %s + +.global foo +pushw $foo // CHECK: pushw diff --git a/test/MC/X86/reloc-undef-global.s b/test/MC/X86/reloc-undef-global.s new file mode 100644 index 0000000..a4854d4 --- /dev/null +++ b/test/MC/X86/reloc-undef-global.s @@ -0,0 +1,20 @@ +// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o - | llvm-readobj -r | FileCheck --check-prefix=ELF %s +// RUN: llvm-mc -filetype=obj -triple x86_64-apple-darwin %s -o - | llvm-readobj -r | FileCheck --check-prefix=MACHO %s + + +bar = foo + 4 + .globl bar + .long bar + +// ELF: Relocations [ +// ELF-NEXT: Section (2) .rela.text { +// ELF-NEXT: 0x0 R_X86_64_32 foo 0x4 +// ELF-NEXT: } +// ELF-NEXT: ] + + +// MACHO: Relocations [ +// MACHO: Section __text { +// MACHO: 0x0 0 2 1 X86_64_RELOC_UNSIGNED 0 bar +// MACHO: } +// MACHO: ] diff --git a/test/MC/X86/ret.s b/test/MC/X86/ret.s new file mode 100644 index 0000000..bac669b --- /dev/null +++ b/test/MC/X86/ret.s @@ -0,0 +1,114 @@ +// RUN: not llvm-mc -triple x86_64-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=64 %s +// RUN: FileCheck --check-prefix=ERR64 < %t.err %s +// RUN: not llvm-mc -triple i386-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=32 %s +// RUN: FileCheck --check-prefix=ERR32 < %t.err %s +// RUN: not llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s 2> %t.err | FileCheck --check-prefix=16 %s +// RUN: FileCheck --check-prefix=ERR16 < %t.err %s + + ret +// 64: retq +// 64: encoding: [0xc3] +// 32: retl +// 32: encoding: [0xc3] +// 16: retw +// 16: encoding: [0xc3] + retw +// 64: retw +// 64: encoding: [0x66,0xc3] +// 32: retw +// 32: encoding: [0x66,0xc3] +// 16: retw +// 16: encoding: [0xc3] + retl +// ERR64: error: instruction requires: Not 64-bit mode +// 32: retl +// 32: encoding: [0xc3] +// 16: retl +// 16: encoding: [0x66,0xc3] + retq +// 64: retq +// 64: encoding: [0xc3] +// ERR32: error: instruction requires: 64-bit mode +// ERR16: error: instruction requires: 64-bit mode + + ret $0 +// 64: retq $0 +// 64: encoding: [0xc2,0x00,0x00] +// 32: retl $0 +// 32: encoding: [0xc2,0x00,0x00] +// 16: retw $0 +// 16: encoding: [0xc2,0x00,0x00] + retw $0 +// 64: retw $0 +// 64: encoding: [0x66,0xc2,0x00,0x00] +// 32: retw $0 +// 32: encoding: [0x66,0xc2,0x00,0x00] +// 16: retw $0 +// 16: encoding: [0xc2,0x00,0x00] + retl $0 +// ERR64: error: instruction requires: Not 64-bit mode +// 32: retl $0 +// 32: encoding: [0xc2,0x00,0x00] +// 16: retl $0 +// 16: encoding: [0x66,0xc2,0x00,0x00] + retq $0 +// 64: retq $0 +// 64: encoding: [0xc2,0x00,0x00] +// ERR32: error: instruction requires: 64-bit mode +// ERR16: error: instruction requires: 64-bit mode + + lret +// 64: lretl +// 64: encoding: [0xcb] +// 32: lretl +// 32: encoding: [0xcb] +// 16: lretw +// 16: encoding: [0xcb] + lretw +// 64: lretw +// 64: encoding: [0x66,0xcb] +// 32: lretw +// 32: encoding: [0x66,0xcb] +// 16: lretw +// 16: encoding: [0xcb] + lretl +// 64: lretl +// 64: encoding: [0xcb] +// 32: lretl +// 32: encoding: [0xcb] +// 16: lretl +// 16: encoding: [0x66,0xcb] + lretq +// 64: lretq +// 64: encoding: [0x48,0xcb] +// ERR32: error: instruction requires: 64-bit mode +// ERR16: error: instruction requires: 64-bit mode + + lret $0 +// 64: lretl $0 +// 64: encoding: [0xca,0x00,0x00] +// 32: lretl $0 +// 32: encoding: [0xca,0x00,0x00] +// 16: lretw $0 +// 16: encoding: [0xca,0x00,0x00] + lretw $0 +// 64: lretw $0 +// 64: encoding: [0x66,0xca,0x00,0x00] +// 32: lretw $0 +// 32: encoding: [0x66,0xca,0x00,0x00] +// 16: lretw $0 +// 16: encoding: [0xca,0x00,0x00] + lretl $0 +// 64: lretl $0 +// 64: encoding: [0xca,0x00,0x00] +// 32: lretl $0 +// 32: encoding: [0xca,0x00,0x00] +// 16: lretl $0 +// 16: encoding: [0x66,0xca,0x00,0x00] + lretq $0 +// 64: lretq $0 +// 64: encoding: [0x48,0xca,0x00,0x00] +// ERR32: error: instruction requires: 64-bit mode +// ERR16: error: instruction requires: 64-bit mode + + diff --git a/test/MC/X86/stackmap-nops.ll b/test/MC/X86/stackmap-nops.ll new file mode 100644 index 0000000..98d17ea --- /dev/null +++ b/test/MC/X86/stackmap-nops.ll @@ -0,0 +1,47 @@ +; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim -filetype=obj %s -o - | llvm-objdump -d - | FileCheck %s +; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=corei7 -disable-fp-elim -filetype=asm %s -o - | llvm-mc -triple=x86_64-apple-darwin -mcpu=corei7 -filetype=obj - | llvm-objdump -d - | FileCheck %s + +define void @nop_test() { +entry: +; CHECK: 0: 55 +; CHECK: 1: 48 89 e5 + +; CHECK: 4: 90 +; CHECK: 5: 66 90 +; CHECK: 7: 0f 1f 00 +; CHECK: a: 0f 1f 40 08 +; CHECK: e: 0f 1f 44 00 08 +; CHECK: 13: 66 0f 1f 44 00 08 +; CHECK: 19: 0f 1f 80 00 02 00 00 +; CHECK: 20: 0f 1f 84 00 00 02 00 00 +; CHECK: 28: 66 0f 1f 84 00 00 02 00 00 +; CHECK: 31: 2e 66 0f 1f 84 00 00 02 00 00 +; CHECK: 3b: 66 2e 66 0f 1f 84 00 00 02 00 00 +; CHECK: 46: 66 66 2e 66 0f 1f 84 00 00 02 00 00 +; CHECK: 52: 66 66 66 2e 66 0f 1f 84 00 00 02 00 00 +; CHECK: 5f: 66 66 66 66 2e 66 0f 1f 84 00 00 02 00 00 +; CHECK: 6d: 66 66 66 66 66 2e 66 0f 1f 84 00 00 02 00 00 + +; CHECK: 7c: 5d +; CHECK: 7d: c3 + + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 0, i32 0) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 1, i32 1) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 2, i32 2) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 3, i32 3) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 4, i32 4) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 5, i32 5) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 6, i32 6) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 7, i32 7) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 8, i32 8) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 9, i32 9) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 10, i32 10) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 11, i32 11) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 12, i32 12) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 13, i32 13) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 14, i32 14) + tail call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 15, i32 15) + ret void +} + +declare void @llvm.experimental.stackmap(i64, i32, ...) diff --git a/test/MC/X86/variant-diagnostics.s b/test/MC/X86/variant-diagnostics.s new file mode 100644 index 0000000..bf6a7c7 --- /dev/null +++ b/test/MC/X86/variant-diagnostics.s @@ -0,0 +1,11 @@ +# RUN: not llvm-mc -triple i386-linux-gnu -filetype asm -o /dev/null 2>&1 %s \ +# RUN: | FileCheck %s + + .text + +function: + call external@invalid + +# CHECK: error: invalid variant 'invalid' +# CHECK: call external@invalid +# CHECK: ^ diff --git a/test/MC/X86/x86-16.s b/test/MC/X86/x86-16.s new file mode 100644 index 0000000..1f87c81 --- /dev/null +++ b/test/MC/X86/x86-16.s @@ -0,0 +1,949 @@ +// RUN: llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s | FileCheck %s + + movl $0x12345678, %ebx +// CHECK: movl +// CHECK: encoding: [0x66,0xbb,0x78,0x56,0x34,0x12] + pause +// CHECK: pause +// CHECK: encoding: [0xf3,0x90] + sfence +// CHECK: sfence +// CHECK: encoding: [0x0f,0xae,0xf8] + lfence +// CHECK: lfence +// CHECK: encoding: [0x0f,0xae,0xe8] + mfence + stgi +// CHECK: stgi +// CHECK: encoding: [0x0f,0x01,0xdc] + clgi +// CHECK: clgi +// CHECK: encoding: [0x0f,0x01,0xdd] + + rdtscp +// CHECK: rdtscp +// CHECK: encoding: [0x0f,0x01,0xf9] + + +// CHECK: movl %eax, 16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0x10] + movl %eax, 16(%ebp) +// CHECK: movl %eax, -16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0xf0] + movl %eax, -16(%ebp) + +// CHECK: testb %bl, %cl # encoding: [0x84,0xcb] + testb %bl, %cl + +// CHECK: cmpl %eax, %ebx # encoding: [0x66,0x39,0xc3] + cmpl %eax, %ebx + +// CHECK: addw %ax, %ax # encoding: [0x01,0xc0] + addw %ax, %ax + +// CHECK: shrl %eax # encoding: [0x66,0xd1,0xe8] + shrl $1, %eax + +// CHECK: shll %eax # encoding: [0x66,0xd1,0xe0] + sall $1, %eax +// CHECK: shll %eax # encoding: [0x66,0xd1,0xe0] + sal $1, %eax + +// moffset forms of moves + +// CHECK: movb 0, %al # encoding: [0xa0,0x00,0x00] +movb 0, %al + +// CHECK: movw 0, %ax # encoding: [0xa1,0x00,0x00] +movw 0, %ax + +// CHECK: movl 0, %eax # encoding: [0x66,0xa1,0x00,0x00] +movl 0, %eax + +into +// CHECK: into +// CHECK: encoding: [0xce] +int3 +// CHECK: int3 +// CHECK: encoding: [0xcc] +int $4 +// CHECK: int $4 +// CHECK: encoding: [0xcd,0x04] +int $255 +// CHECK: int $255 +// CHECK: encoding: [0xcd,0xff] + +// CHECK: pushfw # encoding: [0x9c] + pushf +// CHECK: pushfl # encoding: [0x66,0x9c] + pushfl +// CHECK: popfw # encoding: [0x9d] + popf +// CHECK: popfl # encoding: [0x66,0x9d] + popfl + +retl +// CHECK: ret +// CHECK: encoding: [0x66,0xc3] + +// CHECK: cmoval %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x47,0xd0] + cmoval %eax,%edx + +// CHECK: cmovael %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x43,0xd0] + cmovael %eax,%edx + +// CHECK: cmovbel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x46,0xd0] + cmovbel %eax,%edx + +// CHECK: cmovbl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x42,0xd0] + cmovbl %eax,%edx + +// CHECK: cmovbw %bx, %bx +cmovnae %bx,%bx + + +// CHECK: cmovbel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x46,0xd0] + cmovbel %eax,%edx + +// CHECK: cmovbl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x42,0xd0] + cmovcl %eax,%edx + +// CHECK: cmovel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x44,0xd0] + cmovel %eax,%edx + +// CHECK: cmovgl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4f,0xd0] + cmovgl %eax,%edx + +// CHECK: cmovgel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] + cmovgel %eax,%edx + +// CHECK: cmovll %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4c,0xd0] + cmovll %eax,%edx + +// CHECK: cmovlel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] + cmovlel %eax,%edx + +// CHECK: cmovbel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x46,0xd0] + cmovnal %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnel %eax,%edx + +// CHECK: cmovael %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x43,0xd0] + cmovnbl %eax,%edx + +// CHECK: cmoval %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x47,0xd0] + cmovnbel %eax,%edx + +// CHECK: cmovael %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x43,0xd0] + cmovncl %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnel %eax,%edx + +// CHECK: cmovlel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] + cmovngl %eax,%edx + +// CHECK: cmovgel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] + cmovnl %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnel %eax,%edx + +// CHECK: cmovlel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] + cmovngl %eax,%edx + +// CHECK: cmovll %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4c,0xd0] + cmovngel %eax,%edx + +// CHECK: cmovgel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] + cmovnll %eax,%edx + +// CHECK: cmovgl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4f,0xd0] + cmovnlel %eax,%edx + +// CHECK: cmovnol %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x41,0xd0] + cmovnol %eax,%edx + +// CHECK: cmovnpl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4b,0xd0] + cmovnpl %eax,%edx + +// CHECK: cmovnsl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x49,0xd0] + cmovnsl %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnzl %eax,%edx + +// CHECK: cmovol %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x40,0xd0] + cmovol %eax,%edx + +// CHECK: cmovpl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4a,0xd0] + cmovpl %eax,%edx + +// CHECK: cmovsl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x48,0xd0] + cmovsl %eax,%edx + +// CHECK: cmovel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x44,0xd0] + cmovzl %eax,%edx + +// CHECK: fmul %st(0) +// CHECK: encoding: [0xd8,0xc8] + fmul %st(0), %st + +// CHECK: fadd %st(0) +// CHECK: encoding: [0xd8,0xc0] + fadd %st(0), %st + +// CHECK: fsub %st(0) +// CHECK: encoding: [0xd8,0xe0] + fsub %st(0), %st + +// CHECK: fsubr %st(0) +// CHECK: encoding: [0xd8,0xe8] + fsubr %st(0), %st + +// CHECK: fdivr %st(0) +// CHECK: encoding: [0xd8,0xf8] + fdivr %st(0), %st + +// CHECK: fdiv %st(0) +// CHECK: encoding: [0xd8,0xf0] + fdiv %st(0), %st + +// CHECK: movl %cs, %eax +// CHECK: encoding: [0x66,0x8c,0xc8] + movl %cs, %eax + +// CHECK: movw %cs, %ax +// CHECK: encoding: [0x8c,0xc8] + movw %cs, %ax + +// CHECK: movl %cs, (%eax) +// CHECK: encoding: [0x67,0x66,0x8c,0x08] + movl %cs, (%eax) + +// CHECK: movw %cs, (%eax) +// CHECK: encoding: [0x67,0x8c,0x08] + movw %cs, (%eax) + +// CHECK: movl %eax, %cs +// CHECK: encoding: [0x66,0x8e,0xc8] + movl %eax, %cs + +// CHECK: movl (%eax), %cs +// CHECK: encoding: [0x67,0x66,0x8e,0x08] + movl (%eax), %cs + +// CHECK: movw (%eax), %cs +// CHECK: encoding: [0x67,0x8e,0x08] + movw (%eax), %cs + +// CHECK: movl %cr0, %eax +// CHECK: encoding: [0x0f,0x20,0xc0] + movl %cr0,%eax + +// CHECK: movl %cr1, %eax +// CHECK: encoding: [0x0f,0x20,0xc8] + movl %cr1,%eax + +// CHECK: movl %cr2, %eax +// CHECK: encoding: [0x0f,0x20,0xd0] + movl %cr2,%eax + +// CHECK: movl %cr3, %eax +// CHECK: encoding: [0x0f,0x20,0xd8] + movl %cr3,%eax + +// CHECK: movl %cr4, %eax +// CHECK: encoding: [0x0f,0x20,0xe0] + movl %cr4,%eax + +// CHECK: movl %dr0, %eax +// CHECK: encoding: [0x0f,0x21,0xc0] + movl %dr0,%eax + +// CHECK: movl %dr1, %eax +// CHECK: encoding: [0x0f,0x21,0xc8] + movl %dr1,%eax + +// CHECK: movl %dr1, %eax +// CHECK: encoding: [0x0f,0x21,0xc8] + movl %dr1,%eax + +// CHECK: movl %dr2, %eax +// CHECK: encoding: [0x0f,0x21,0xd0] + movl %dr2,%eax + +// CHECK: movl %dr3, %eax +// CHECK: encoding: [0x0f,0x21,0xd8] + movl %dr3,%eax + +// CHECK: movl %dr4, %eax +// CHECK: encoding: [0x0f,0x21,0xe0] + movl %dr4,%eax + +// CHECK: movl %dr5, %eax +// CHECK: encoding: [0x0f,0x21,0xe8] + movl %dr5,%eax + +// CHECK: movl %dr6, %eax +// CHECK: encoding: [0x0f,0x21,0xf0] + movl %dr6,%eax + +// CHECK: movl %dr7, %eax +// CHECK: encoding: [0x0f,0x21,0xf8] + movl %dr7,%eax + +// CHECK: wait +// CHECK: encoding: [0x9b] + fwait + +// CHECK: [0x66,0x65,0xa1,0x7c,0x00] + movl %gs:124, %eax + +// CHECK: pusha +// CHECK: encoding: [0x60] + pusha + +// CHECK: popa +// CHECK: encoding: [0x61] + popa + +// CHECK: pushaw +// CHECK: encoding: [0x60] + pushaw + +// CHECK: popaw +// CHECK: encoding: [0x61] + popaw + +// CHECK: pushal +// CHECK: encoding: [0x66,0x60] + pushal + +// CHECK: popal +// CHECK: encoding: [0x66,0x61] + popal + +// CHECK: jmpw *8(%eax) +// CHECK: encoding: [0x67,0xff,0x60,0x08] + jmp *8(%eax) + +// CHECK: jmpl *8(%eax) +// CHECK: encoding: [0x67,0x66,0xff,0x60,0x08] + jmpl *8(%eax) + +// CHECK: lcalll $2, $4660 +// CHECK: encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00] +lcalll $0x2, $0x1234 + + +L1: + jcxz L1 +// CHECK: jcxz L1 +// CHECK: encoding: [0xe3,A] + jecxz L1 +// CHECK: jecxz L1 +// CHECK: encoding: [0x67,0xe3,A] + +iret +// CHECK: iretw +// CHECK: encoding: [0xcf] +iretw +// CHECK: iretw +// CHECK: encoding: [0xcf] +iretl +// CHECK: iretl +// CHECK: encoding: [0x66,0xcf] + +sysret +// CHECK: sysretl +// CHECK: encoding: [0x0f,0x07] +sysretl +// CHECK: sysretl +// CHECK: encoding: [0x0f,0x07] + +testl %ecx, -24(%ebp) +// CHECK: testl -24(%ebp), %ecx +testl -24(%ebp), %ecx +// CHECK: testl -24(%ebp), %ecx + + +push %cs +// CHECK: pushw %cs +// CHECK: encoding: [0x0e] +push %ds +// CHECK: pushw %ds +// CHECK: encoding: [0x1e] +push %ss +// CHECK: pushw %ss +// CHECK: encoding: [0x16] +push %es +// CHECK: pushw %es +// CHECK: encoding: [0x06] +push %fs +// CHECK: pushw %fs +// CHECK: encoding: [0x0f,0xa0] +push %gs +// CHECK: pushw %gs +// CHECK: encoding: [0x0f,0xa8] + +pushw %cs +// CHECK: pushw %cs +// CHECK: encoding: [0x0e] +pushw %ds +// CHECK: pushw %ds +// CHECK: encoding: [0x1e] +pushw %ss +// CHECK: pushw %ss +// CHECK: encoding: [0x16] +pushw %es +// CHECK: pushw %es +// CHECK: encoding: [0x06] +pushw %fs +// CHECK: pushw %fs +// CHECK: encoding: [0x0f,0xa0] +pushw %gs +// CHECK: pushw %gs +// CHECK: encoding: [0x0f,0xa8] + +pushl %cs +// CHECK: pushl %cs +// CHECK: encoding: [0x66,0x0e] +pushl %ds +// CHECK: pushl %ds +// CHECK: encoding: [0x66,0x1e] +pushl %ss +// CHECK: pushl %ss +// CHECK: encoding: [0x66,0x16] +pushl %es +// CHECK: pushl %es +// CHECK: encoding: [0x66,0x06] +pushl %fs +// CHECK: pushl %fs +// CHECK: encoding: [0x66,0x0f,0xa0] +pushl %gs +// CHECK: pushl %gs +// CHECK: encoding: [0x66,0x0f,0xa8] + +pop %ss +// CHECK: popw %ss +// CHECK: encoding: [0x17] +pop %ds +// CHECK: popw %ds +// CHECK: encoding: [0x1f] +pop %es +// CHECK: popw %es +// CHECK: encoding: [0x07] + +popl %ss +// CHECK: popl %ss +// CHECK: encoding: [0x66,0x17] +popl %ds +// CHECK: popl %ds +// CHECK: encoding: [0x66,0x1f] +popl %es +// CHECK: popl %es +// CHECK: encoding: [0x66,0x07] + +pushfd +// CHECK: pushfl +popfd +// CHECK: popfl +pushfl +// CHECK: pushfl +popfl +// CHECK: popfl + + + setc %bl + setnae %bl + setnb %bl + setnc %bl + setna %bl + setnbe %bl + setpe %bl + setpo %bl + setnge %bl + setnl %bl + setng %bl + setnle %bl + + setneb %cl // CHECK: setne %cl + setcb %bl // CHECK: setb %bl + setnaeb %bl // CHECK: setb %bl + + +// CHECK: lcalll $31438, $31438 +// CHECK: lcalll $31438, $31438 +// CHECK: ljmpl $31438, $31438 +// CHECK: ljmpl $31438, $31438 + +calll $0x7ace,$0x7ace +lcalll $0x7ace,$0x7ace +jmpl $0x7ace,$0x7ace +ljmpl $0x7ace,$0x7ace + +// CHECK: lcallw $31438, $31438 +// CHECK: lcallw $31438, $31438 +// CHECK: ljmpw $31438, $31438 +// CHECK: ljmpw $31438, $31438 + +callw $0x7ace,$0x7ace +lcallw $0x7ace,$0x7ace +jmpw $0x7ace,$0x7ace +ljmpw $0x7ace,$0x7ace + +// CHECK: lcallw $31438, $31438 +// CHECK: lcallw $31438, $31438 +// CHECK: ljmpw $31438, $31438 +// CHECK: ljmpw $31438, $31438 + +call $0x7ace,$0x7ace +lcall $0x7ace,$0x7ace +jmp $0x7ace,$0x7ace +ljmp $0x7ace,$0x7ace + +// CHECK: calll a + calll a + +// CHECK: incb %al # encoding: [0xfe,0xc0] + incb %al + +// CHECK: incw %ax # encoding: [0x40] + incw %ax + +// CHECK: incl %eax # encoding: [0x66,0x40] + incl %eax + +// CHECK: decb %al # encoding: [0xfe,0xc8] + decb %al + +// CHECK: decw %ax # encoding: [0x48] + decw %ax + +// CHECK: decl %eax # encoding: [0x66,0x48] + decl %eax + +// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e] +pshufw $14, %mm4, %mm0 + +// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a] +pshufw $90, %mm4, %mm0 + +// CHECK: aaa +// CHECK: encoding: [0x37] + aaa + +// CHECK: aad $1 +// CHECK: encoding: [0xd5,0x01] + aad $1 + +// CHECK: aad +// CHECK: encoding: [0xd5,0x0a] + aad $0xA + +// CHECK: aad +// CHECK: encoding: [0xd5,0x0a] + aad + +// CHECK: aam $2 +// CHECK: encoding: [0xd4,0x02] + aam $2 + +// CHECK: aam +// CHECK: encoding: [0xd4,0x0a] + aam $0xA + +// CHECK: aam +// CHECK: encoding: [0xd4,0x0a] + aam + +// CHECK: aas +// CHECK: encoding: [0x3f] + aas + +// CHECK: daa +// CHECK: encoding: [0x27] + daa + +// CHECK: das +// CHECK: encoding: [0x2f] + das + +// CHECK: retw $31438 +// CHECK: encoding: [0xc2,0xce,0x7a] + retw $0x7ace + +// CHECK: lretw $31438 +// CHECK: encoding: [0xca,0xce,0x7a] + lretw $0x7ace + +// CHECK: retw $31438 +// CHECK: encoding: [0xc2,0xce,0x7a] + ret $0x7ace + +// CHECK: lretw $31438 +// CHECK: encoding: [0xca,0xce,0x7a] + lret $0x7ace + +// CHECK: retl $31438 +// CHECK: encoding: [0x66,0xc2,0xce,0x7a] + retl $0x7ace + +// CHECK: lretl $31438 +// CHECK: encoding: [0x66,0xca,0xce,0x7a] + lretl $0x7ace + +// CHECK: bound 2(%eax), %bx +// CHECK: encoding: [0x67,0x62,0x58,0x02] + bound 2(%eax),%bx + +// CHECK: bound 4(%ebx), %ecx +// CHECK: encoding: [0x67,0x66,0x62,0x4b,0x04] + bound 4(%ebx),%ecx + +// CHECK: arpl %bx, %bx +// CHECK: encoding: [0x63,0xdb] + arpl %bx,%bx + +// CHECK: arpl %bx, 6(%ecx) +// CHECK: encoding: [0x67,0x63,0x59,0x06] + arpl %bx,6(%ecx) + +// CHECK: lgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] + lgdtw 4(%eax) + +// CHECK: lgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] + lgdt 4(%eax) + +// CHECK: lgdtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04] + lgdtl 4(%eax) + +// CHECK: lidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] + lidtw 4(%eax) + +// CHECK: lidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] + lidt 4(%eax) + +// CHECK: lidtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x58,0x04] + lidtl 4(%eax) + +// CHECK: sgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] + sgdtw 4(%eax) + +// CHECK: sgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] + sgdt 4(%eax) + +// CHECK: sgdtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x40,0x04] + sgdtl 4(%eax) + +// CHECK: sidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] + sidtw 4(%eax) + +// CHECK: sidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] + sidt 4(%eax) + +// CHECK: sidtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x48,0x04] + sidtl 4(%eax) + +// CHECK: fcompi %st(2) +// CHECK: encoding: [0xdf,0xf2] + fcompi %st(2), %st + +// CHECK: fcompi %st(2) +// CHECK: encoding: [0xdf,0xf2] + fcompi %st(2) + +// CHECK: fcompi +// CHECK: encoding: [0xdf,0xf1] + fcompi + +// CHECK: fucompi %st(2) +// CHECK: encoding: [0xdf,0xea] + fucompi %st(2),%st + +// CHECK: fucompi %st(2) +// CHECK: encoding: [0xdf,0xea] + fucompi %st(2) + +// CHECK: fucompi +// CHECK: encoding: [0xdf,0xe9] + fucompi + +// CHECK: fldcw 32493 +// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] + fldcww 0x7eed + +// CHECK: fldcw 32493 +// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] + fldcw 0x7eed + +// CHECK: fnstcw 32493 +// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] + fnstcww 0x7eed + +// CHECK: fnstcw 32493 +// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] + fnstcw 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstcww 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstcw 0x7eed + +// CHECK: fnstsw 32493 +// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] + fnstsww 0x7eed + +// CHECK: fnstsw 32493 +// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] + fnstsw 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstsww 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstsw 0x7eed + +// CHECK: verr 32493 +// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] + verrw 0x7eed + +// CHECK: verr 32493 +// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] + verr 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fclex + +// CHECK: fnclex +// CHECK: encoding: [0xdb,0xe2] + fnclex + +// CHECK: ud2 +// CHECK: encoding: [0x0f,0x0b] + ud2 + +// CHECK: ud2 +// CHECK: encoding: [0x0f,0x0b] + ud2a + +// CHECK: ud2b +// CHECK: encoding: [0x0f,0xb9] + ud2b + +// CHECK: loope 0 +// CHECK: encoding: [0xe1,A] + loopz 0 + +// CHECK: loopne 0 +// CHECK: encoding: [0xe0,A] + loopnz 0 + +// CHECK: outsb (%si), %dx # encoding: [0x6e] +// CHECK: outsb +// CHECK: outsb + outsb + outsb %ds:(%si), %dx + outsb (%si), %dx + +// CHECK: outsw (%si), %dx # encoding: [0x6f] +// CHECK: outsw +// CHECK: outsw + outsw + outsw %ds:(%si), %dx + outsw (%si), %dx + +// CHECK: outsl (%si), %dx # encoding: [0x66,0x6f] +// CHECK: outsl + outsl + outsl %ds:(%si), %dx + outsl (%si), %dx + +// CHECK: insb %dx, %es:(%di) # encoding: [0x6c] +// CHECK: insb + insb + insb %dx, %es:(%di) + +// CHECK: insw %dx, %es:(%di) # encoding: [0x6d] +// CHECK: insw + insw + insw %dx, %es:(%di) + +// CHECK: insl %dx, %es:(%di) # encoding: [0x66,0x6d] +// CHECK: insl + insl + insl %dx, %es:(%di) + +// CHECK: movsb (%si), %es:(%di) # encoding: [0xa4] +// CHECK: movsb +// CHECK: movsb + movsb + movsb %ds:(%si), %es:(%di) + movsb (%si), %es:(%di) + +// CHECK: movsw (%si), %es:(%di) # encoding: [0xa5] +// CHECK: movsw +// CHECK: movsw + movsw + movsw %ds:(%si), %es:(%di) + movsw (%si), %es:(%di) + +// CHECK: movsl (%si), %es:(%di) # encoding: [0x66,0xa5] +// CHECK: movsl +// CHECK: movsl + movsl + movsl %ds:(%si), %es:(%di) + movsl (%si), %es:(%di) + +// CHECK: lodsb (%si), %al # encoding: [0xac] +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb + lodsb + lodsb %ds:(%si), %al + lodsb (%si), %al + lods %ds:(%si), %al + lods (%si), %al + +// CHECK: lodsw (%si), %ax # encoding: [0xad] +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw + lodsw + lodsw %ds:(%si), %ax + lodsw (%si), %ax + lods %ds:(%si), %ax + lods (%si), %ax + +// CHECK: lodsl (%si), %eax # encoding: [0x66,0xad] +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl + lodsl + lodsl %ds:(%si), %eax + lodsl (%si), %eax + lods %ds:(%si), %eax + lods (%si), %eax + +// CHECK: stosb %al, %es:(%di) # encoding: [0xaa] +// CHECK: stosb +// CHECK: stosb + stosb + stosb %al, %es:(%di) + stos %al, %es:(%di) + +// CHECK: stosw %ax, %es:(%di) # encoding: [0xab] +// CHECK: stosw +// CHECK: stosw + stosw + stosw %ax, %es:(%di) + stos %ax, %es:(%di) + +// CHECK: stosl %eax, %es:(%di) # encoding: [0x66,0xab] +// CHECK: stosl +// CHECK: stosl + stosl + stosl %eax, %es:(%di) + stos %eax, %es:(%di) + +// CHECK: strw +// CHECK: encoding: [0x0f,0x00,0xc8] + str %ax + +// CHECK: strl +// CHECK: encoding: [0x66,0x0f,0x00,0xc8] + str %eax + + +// CHECK: fsubp +// CHECK: encoding: [0xde,0xe1] +fsubp %st,%st(1) + +// CHECK: fsubp %st(2) +// CHECK: encoding: [0xde,0xe2] +fsubp %st, %st(2) + +// CHECK: xchgl %eax, %eax +// CHECK: encoding: [0x66,0x90] +xchgl %eax, %eax + +// CHECK: xchgw %ax, %ax +// CHECK: encoding: [0x90] +xchgw %ax, %ax + +// CHECK: xchgl %ecx, %eax +// CHECK: encoding: [0x66,0x91] +xchgl %ecx, %eax + +// CHECK: xchgl %ecx, %eax +// CHECK: encoding: [0x66,0x91] +xchgl %eax, %ecx + +// CHECK: retw +// CHECK: encoding: [0xc3] +retw + +// CHECK: retl +// CHECK: encoding: [0x66,0xc3] +retl + +// CHECK: lretw +// CHECK: encoding: [0xcb] +lretw + +// CHECK: lretl +// CHECK: encoding: [0x66,0xcb] +lretl diff --git a/test/MC/X86/x86-32.s b/test/MC/X86/x86-32.s index 99136bd..bebaa65 100644 --- a/test/MC/X86/x86-32.s +++ b/test/MC/X86/x86-32.s @@ -438,18 +438,28 @@ cmovnae %bx,%bx fwait // rdar://7873482 -// CHECK: [0x65,0x8b,0x05,0x7c,0x00,0x00,0x00] -// FIXME: This is a correct bug poor encoding: Use 65 a1 7c 00 00 00 +// CHECK: [0x65,0xa1,0x7c,0x00,0x00,0x00] movl %gs:124, %eax -// CHECK: pusha +// CHECK: [0x65,0xa3,0x7c,0x00,0x00,0x00] + movl %eax, %gs:124 + +// CHECK: pushal // CHECK: encoding: [0x60] pusha -// CHECK: popa +// CHECK: popal // CHECK: encoding: [0x61] popa +// CHECK: pushaw +// CHECK: encoding: [0x66,0x60] + pushaw + +// CHECK: popaw +// CHECK: encoding: [0x66,0x61] + popaw + // CHECK: pushal // CHECK: encoding: [0x60] pushal @@ -593,6 +603,16 @@ lcalll $0x7ace,$0x7ace jmpl $0x7ace,$0x7ace ljmpl $0x7ace,$0x7ace +// CHECK: lcallw $31438, $31438 +// CHECK: lcallw $31438, $31438 +// CHECK: ljmpw $31438, $31438 +// CHECK: ljmpw $31438, $31438 + +callw $0x7ace,$0x7ace +lcallw $0x7ace,$0x7ace +jmpw $0x7ace,$0x7ace +ljmpw $0x7ace,$0x7ace + // CHECK: lcalll $31438, $31438 // CHECK: lcalll $31438, $31438 // CHECK: ljmpl $31438, $31438 @@ -701,11 +721,11 @@ pshufw $90, %mm4, %mm0 // CHECK: encoding: [0x66,0x0f,0x01,0x50,0x04] lgdtw 4(%eax) -// CHECK: lgdt 4(%eax) +// CHECK: lgdtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x50,0x04] lgdt 4(%eax) -// CHECK: lgdt 4(%eax) +// CHECK: lgdtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x50,0x04] lgdtl 4(%eax) @@ -713,11 +733,11 @@ pshufw $90, %mm4, %mm0 // CHECK: encoding: [0x66,0x0f,0x01,0x58,0x04] lidtw 4(%eax) -// CHECK: lidt 4(%eax) +// CHECK: lidtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x58,0x04] lidt 4(%eax) -// CHECK: lidt 4(%eax) +// CHECK: lidtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x58,0x04] lidtl 4(%eax) @@ -725,11 +745,11 @@ pshufw $90, %mm4, %mm0 // CHECK: encoding: [0x66,0x0f,0x01,0x40,0x04] sgdtw 4(%eax) -// CHECK: sgdt 4(%eax) +// CHECK: sgdtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x40,0x04] sgdt 4(%eax) -// CHECK: sgdt 4(%eax) +// CHECK: sgdtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x40,0x04] sgdtl 4(%eax) @@ -737,11 +757,11 @@ pshufw $90, %mm4, %mm0 // CHECK: encoding: [0x66,0x0f,0x01,0x48,0x04] sidtw 4(%eax) -// CHECK: sidt 4(%eax) +// CHECK: sidtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x48,0x04] sidt 4(%eax) -// CHECK: sidt 4(%eax) +// CHECK: sidtl 4(%eax) // CHECK: encoding: [0x0f,0x01,0x48,0x04] sidtl 4(%eax) @@ -845,63 +865,63 @@ pshufw $90, %mm4, %mm0 // CHECK: encoding: [0xe0,A] loopnz 0 -// CHECK: outsb # encoding: [0x6e] +// CHECK: outsb (%esi), %dx # encoding: [0x6e] // CHECK: outsb // CHECK: outsb outsb outsb %ds:(%esi), %dx outsb (%esi), %dx -// CHECK: outsw # encoding: [0x66,0x6f] +// CHECK: outsw (%esi), %dx # encoding: [0x66,0x6f] // CHECK: outsw // CHECK: outsw outsw outsw %ds:(%esi), %dx outsw (%esi), %dx -// CHECK: outsl # encoding: [0x6f] +// CHECK: outsl (%esi), %dx # encoding: [0x6f] // CHECK: outsl outsl outsl %ds:(%esi), %dx outsl (%esi), %dx -// CHECK: insb # encoding: [0x6c] +// CHECK: insb %dx, %es:(%edi) # encoding: [0x6c] // CHECK: insb insb insb %dx, %es:(%edi) -// CHECK: insw # encoding: [0x66,0x6d] +// CHECK: insw %dx, %es:(%edi) # encoding: [0x66,0x6d] // CHECK: insw insw insw %dx, %es:(%edi) -// CHECK: insl # encoding: [0x6d] +// CHECK: insl %dx, %es:(%edi) # encoding: [0x6d] // CHECK: insl insl insl %dx, %es:(%edi) -// CHECK: movsb # encoding: [0xa4] +// CHECK: movsb (%esi), %es:(%edi) # encoding: [0xa4] // CHECK: movsb // CHECK: movsb movsb movsb %ds:(%esi), %es:(%edi) movsb (%esi), %es:(%edi) -// CHECK: movsw # encoding: [0x66,0xa5] +// CHECK: movsw (%esi), %es:(%edi) # encoding: [0x66,0xa5] // CHECK: movsw // CHECK: movsw movsw movsw %ds:(%esi), %es:(%edi) movsw (%esi), %es:(%edi) -// CHECK: movsl # encoding: [0xa5] +// CHECK: movsl (%esi), %es:(%edi) # encoding: [0xa5] // CHECK: movsl // CHECK: movsl movsl movsl %ds:(%esi), %es:(%edi) movsl (%esi), %es:(%edi) -// CHECK: lodsb # encoding: [0xac] +// CHECK: lodsb (%esi), %al # encoding: [0xac] // CHECK: lodsb // CHECK: lodsb // CHECK: lodsb @@ -912,7 +932,7 @@ pshufw $90, %mm4, %mm0 lods %ds:(%esi), %al lods (%esi), %al -// CHECK: lodsw # encoding: [0x66,0xad] +// CHECK: lodsw (%esi), %ax # encoding: [0x66,0xad] // CHECK: lodsw // CHECK: lodsw // CHECK: lodsw @@ -923,7 +943,7 @@ pshufw $90, %mm4, %mm0 lods %ds:(%esi), %ax lods (%esi), %ax -// CHECK: lodsl # encoding: [0xad] +// CHECK: lodsl (%esi), %eax # encoding: [0xad] // CHECK: lodsl // CHECK: lodsl // CHECK: lodsl @@ -934,21 +954,21 @@ pshufw $90, %mm4, %mm0 lods %ds:(%esi), %eax lods (%esi), %eax -// CHECK: stosb # encoding: [0xaa] +// CHECK: stosb %al, %es:(%edi) # encoding: [0xaa] // CHECK: stosb // CHECK: stosb stosb stosb %al, %es:(%edi) stos %al, %es:(%edi) -// CHECK: stosw # encoding: [0x66,0xab] +// CHECK: stosw %ax, %es:(%edi) # encoding: [0x66,0xab] // CHECK: stosw // CHECK: stosw stosw stosw %ax, %es:(%edi) stos %ax, %es:(%edi) -// CHECK: stosl # encoding: [0xab] +// CHECK: stosl %eax, %es:(%edi) # encoding: [0xab] // CHECK: stosl // CHECK: stosl stosl diff --git a/test/MC/X86/x86-64.s b/test/MC/X86/x86-64.s index 6b41f48..2781ef4 100644 --- a/test/MC/X86/x86-64.s +++ b/test/MC/X86/x86-64.s @@ -951,35 +951,35 @@ decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] // rdar://8416805 -// CHECK: lgdt 4(%rax) +// CHECK: lgdtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x50,0x04] lgdt 4(%rax) -// CHECK: lgdt 4(%rax) +// CHECK: lgdtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x50,0x04] lgdtq 4(%rax) -// CHECK: lidt 4(%rax) +// CHECK: lidtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x58,0x04] lidt 4(%rax) -// CHECK: lidt 4(%rax) +// CHECK: lidtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x58,0x04] lidtq 4(%rax) -// CHECK: sgdt 4(%rax) +// CHECK: sgdtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x40,0x04] sgdt 4(%rax) -// CHECK: sgdt 4(%rax) +// CHECK: sgdtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x40,0x04] sgdtq 4(%rax) -// CHECK: sidt 4(%rax) +// CHECK: sidtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x48,0x04] sidt 4(%rax) -// CHECK: sidt 4(%rax) +// CHECK: sidtq 4(%rax) // CHECK: encoding: [0x0f,0x01,0x48,0x04] sidtq 4(%rax) @@ -1050,56 +1050,56 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] // CHECK: encoding: [0xe0,A] loopnz 0 -// CHECK: outsb # encoding: [0x6e] +// CHECK: outsb (%rsi), %dx # encoding: [0x6e] // CHECK: outsb // CHECK: outsb outsb outsb %ds:(%rsi), %dx outsb (%rsi), %dx -// CHECK: outsw # encoding: [0x66,0x6f] +// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f] // CHECK: outsw // CHECK: outsw outsw outsw %ds:(%rsi), %dx outsw (%rsi), %dx -// CHECK: outsl # encoding: [0x6f] +// CHECK: outsl (%rsi), %dx # encoding: [0x6f] // CHECK: outsl outsl outsl %ds:(%rsi), %dx outsl (%rsi), %dx -// CHECK: insb # encoding: [0x6c] +// CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c] // CHECK: insb insb insb %dx, %es:(%rdi) -// CHECK: insw # encoding: [0x66,0x6d] +// CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d] // CHECK: insw insw insw %dx, %es:(%rdi) -// CHECK: insl # encoding: [0x6d] +// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d] // CHECK: insl insl insl %dx, %es:(%rdi) -// CHECK: movsb # encoding: [0xa4] +// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4] // CHECK: movsb // CHECK: movsb movsb movsb %ds:(%rsi), %es:(%rdi) movsb (%rsi), %es:(%rdi) -// CHECK: movsw # encoding: [0x66,0xa5] +// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5] // CHECK: movsw // CHECK: movsw movsw movsw %ds:(%rsi), %es:(%rdi) movsw (%rsi), %es:(%rdi) -// CHECK: movsl # encoding: [0xa5] +// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5] // CHECK: movsl // CHECK: movsl movsl @@ -1109,14 +1109,14 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] // CHECK: movsl movsl (%rsi), (%rdi) -// CHECK: movsq # encoding: [0x48,0xa5] +// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5] // CHECK: movsq // CHECK: movsq movsq movsq %ds:(%rsi), %es:(%rdi) movsq (%rsi), %es:(%rdi) -// CHECK: lodsb # encoding: [0xac] +// CHECK: lodsb (%rsi), %al # encoding: [0xac] // CHECK: lodsb // CHECK: lodsb // CHECK: lodsb @@ -1127,7 +1127,7 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] lods %ds:(%rsi), %al lods (%rsi), %al -// CHECK: lodsw # encoding: [0x66,0xad] +// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad] // CHECK: lodsw // CHECK: lodsw // CHECK: lodsw @@ -1138,7 +1138,7 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] lods %ds:(%rsi), %ax lods (%rsi), %ax -// CHECK: lodsl # encoding: [0xad] +// CHECK: lodsl (%rsi), %eax # encoding: [0xad] // CHECK: lodsl // CHECK: lodsl // CHECK: lodsl @@ -1149,7 +1149,7 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] lods %ds:(%rsi), %eax lods (%rsi), %eax -// CHECK: lodsq # encoding: [0x48,0xad] +// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad] // CHECK: lodsq // CHECK: lodsq // CHECK: lodsq @@ -1160,28 +1160,28 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] lods %ds:(%rsi), %rax lods (%rsi), %rax -// CHECK: stosb # encoding: [0xaa] +// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa] // CHECK: stosb // CHECK: stosb stosb stosb %al, %es:(%rdi) stos %al, %es:(%rdi) -// CHECK: stosw # encoding: [0x66,0xab] +// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab] // CHECK: stosw // CHECK: stosw stosw stosw %ax, %es:(%rdi) stos %ax, %es:(%rdi) -// CHECK: stosl # encoding: [0xab] +// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab] // CHECK: stosl // CHECK: stosl stosl stosl %eax, %es:(%rdi) stos %eax, %es:(%rdi) -// CHECK: stosq # encoding: [0x48,0xab] +// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab] // CHECK: stosq // CHECK: stosq stosq @@ -1388,3 +1388,7 @@ movq %xmm0, %rax vmovd %xmm0, %eax vmovd %xmm0, %rax vmovq %xmm0, %rax + +// CHECK: seto 3735928559(%r10,%r9,8) +// CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde] + seto 0xdeadbeef(%r10,%r9,8) diff --git a/test/MC/X86/x86-target-directives.s b/test/MC/X86/x86-target-directives.s new file mode 100644 index 0000000..b6c7e78 --- /dev/null +++ b/test/MC/X86/x86-target-directives.s @@ -0,0 +1,7 @@ +# RUN: not llvm-mc -triple i386 -filetype asm -o - %s 2>&1 | FileCheck %s + + .code42 + +# CHECK: unknown directive .code42 +# CHECK-NOT: unknown directive + diff --git a/test/MC/X86/x86_64-avx-encoding.s b/test/MC/X86/x86_64-avx-encoding.s index 5ba8064..1704b94 100644 --- a/test/MC/X86/x86_64-avx-encoding.s +++ b/test/MC/X86/x86_64-avx-encoding.s @@ -1557,7 +1557,7 @@ vdivpd -4(%rcx,%rbx,8), %xmm10, %xmm11 vcvtdq2ps %xmm13, %xmm10 // CHECK: vcvtdq2ps (%ecx), %xmm13 -// CHECK: encoding: [0xc5,0x78,0x5b,0x29] +// CHECK: encoding: [0x67,0xc5,0x78,0x5b,0x29] vcvtdq2ps (%ecx), %xmm13 // CHECK: vcvttps2dq %xmm12, %xmm11 diff --git a/test/MC/X86/x86_64-signed-reloc.s b/test/MC/X86/x86_64-signed-reloc.s new file mode 100644 index 0000000..e8a2720 --- /dev/null +++ b/test/MC/X86/x86_64-signed-reloc.s @@ -0,0 +1,16 @@ +// RUN: llvm-mc -triple x86_64-linux-gnu -filetype=obj %s | llvm-readobj -r | FileCheck %s + + + // CHECK: Relocations [ + // CHECK-NEXT: Section ({{[0-9]+}}) .rela.text { + +pushq $foo // CHECK-NEXT: R_X86_64_32S +addq $foo, %rax // CHECK-NEXT: R_X86_64_32S +andq $foo, %rax // CHECK-NEXT: R_X86_64_32S +movq $foo, %rax // CHECK-NEXT: R_X86_64_32S +bextr $foo, (%edi), %eax // CHECK-NEXT: R_X86_64_32 +bextr $foo, (%rdi), %rax // CHECK-NEXT: R_X86_64_32S +imul $foo, %rax // CHECK-NEXT: R_X86_64_32S + + // CHECK-NEXT: } + // CHECK-NEXT: ] diff --git a/test/MC/X86/x86_64-tbm-encoding.s b/test/MC/X86/x86_64-tbm-encoding.s index 180578b..a9b8f34 100644 --- a/test/MC/X86/x86_64-tbm-encoding.s +++ b/test/MC/X86/x86_64-tbm-encoding.s @@ -194,3 +194,9 @@ // CHECK: tzmsk (%rdi), %rax // CHECK: encoding: [0x8f,0xe9,0xf8,0x01,0x27] tzmsk (%rdi), %rax + +// CHECK: encoding: [0x67,0xc4,0xe2,0x60,0xf7,0x07] + bextr %ebx, (%edi), %eax + +// CHECK: encoding: [0x67,0x8f,0xea,0x78,0x10,0x07,A,A,A,A] + bextr $foo, (%edi), %eax diff --git a/test/MC/X86/x86_errors.s b/test/MC/X86/x86_errors.s index a974233..51f2e8e 100644 --- a/test/MC/X86/x86_errors.s +++ b/test/MC/X86/x86_errors.s @@ -26,8 +26,23 @@ sysexitq lea (%rsp, %rbp, $4), %rax // rdar://10423777 -// 64: error: index register is 32-bit, but base register is 64-bit +// 64: error: base register is 64-bit, but index register is not movq (%rsi,%ecx),%xmm0 +// 64: error: invalid 16-bit base register +movl %eax,(%bp,%si) + +// 32: error: scale factor in 16-bit address must be 1 +movl %eax,(%bp,%si,2) + +// 32: error: invalid 16-bit base register +movl %eax,(%cx) + +// 32: error: invalid 16-bit base/index register combination +movl %eax,(%bp,%bx) + +// 32: error: 16-bit memory operand may not include only index register +movl %eax,(,%bx) + // 32: error: invalid operand for instruction outb al, 4 |