From c13297fa76e35185c4971d9903bd8b546101aa10 Mon Sep 17 00:00:00 2001 From: Robert Khasanov Date: Tue, 22 Apr 2014 11:36:19 +0000 Subject: [PATCH] [AVX512] Implemented integer conversions up/down with masking. Added encoding tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206884 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrAVX512.td | 78 +- test/MC/X86/avx512-encodings.s | 1160 +++++++++++++++++++++++++++--- 2 files changed, 1122 insertions(+), 116 deletions(-) diff --git a/lib/Target/X86/X86InstrAVX512.td b/lib/Target/X86/X86InstrAVX512.td index 467473555d6..6d61a4cab75 100644 --- a/lib/Target/X86/X86InstrAVX512.td +++ b/lib/Target/X86/X86InstrAVX512.td @@ -3830,7 +3830,13 @@ multiclass avx512_trunc_sat opc, string OpcodeStr, !strconcat(OpcodeStr," \t{$src, $dst|$dst, $src}"), []>, EVEX; - def krr : AVX512XS8I, EVEX, EVEX_K; + + def rrkz : AVX512XS8I opc, string OpcodeStr, def mr : AVX512XS8I, EVEX; + + def mrk : AVX512XS8I, EVEX, EVEX_K; + } defm VPMOVQB : avx512_trunc_sat<0x32, "vpmovqb", VR128X, VR512, VK8WM, i128mem>, EVEX_V512, EVEX_CD8<8, CD8VO>; @@ -3878,60 +3890,86 @@ def : Pat<(v16i8 (X86vtrunc (v16i32 VR512:$src))), (VPMOVDBrr VR512:$src)>; def : Pat<(v8i32 (X86vtrunc (v8i64 VR512:$src))), (VPMOVQDrr VR512:$src)>; def : Pat<(v16i8 (X86vtruncm VK16WM:$mask, (v16i32 VR512:$src))), - (VPMOVDBkrr VK16WM:$mask, VR512:$src)>; + (VPMOVDBrrkz VK16WM:$mask, VR512:$src)>; def : Pat<(v16i16 (X86vtruncm VK16WM:$mask, (v16i32 VR512:$src))), - (VPMOVDWkrr VK16WM:$mask, VR512:$src)>; + (VPMOVDWrrkz VK16WM:$mask, VR512:$src)>; def : Pat<(v8i16 (X86vtruncm VK8WM:$mask, (v8i64 VR512:$src))), - (VPMOVQWkrr VK8WM:$mask, VR512:$src)>; + (VPMOVQWrrkz VK8WM:$mask, VR512:$src)>; def : Pat<(v8i32 (X86vtruncm VK8WM:$mask, (v8i64 VR512:$src))), - (VPMOVQDkrr VK8WM:$mask, VR512:$src)>; + (VPMOVQDrrkz VK8WM:$mask, VR512:$src)>; -multiclass avx512_extend opc, string OpcodeStr, RegisterClass DstRC, - RegisterClass SrcRC, SDNode OpNode, PatFrag mem_frag, - X86MemOperand x86memop, ValueType OpVT, ValueType InVT> { +multiclass avx512_extend opc, string OpcodeStr, RegisterClass KRC, + RegisterClass DstRC, RegisterClass SrcRC, SDNode OpNode, + PatFrag mem_frag, X86MemOperand x86memop, + ValueType OpVT, ValueType InVT> { def rr : AVX5128I, EVEX; - def rm : AVX5128I, EVEX, EVEX_K; + + def rrkz : AVX5128I, EVEX, EVEX_KZ; + + let mayLoad = 1 in { + def rm : AVX5128I, EVEX; + + def rmk : AVX5128I, + EVEX, EVEX_K; + + def rmkz : AVX5128I, + EVEX, EVEX_KZ; + } } -defm VPMOVZXBDZ: avx512_extend<0x31, "vpmovzxbd", VR512, VR128X, X86vzext, +defm VPMOVZXBDZ: avx512_extend<0x31, "vpmovzxbd", VK16WM, VR512, VR128X, X86vzext, memopv2i64, i128mem, v16i32, v16i8>, EVEX_V512, EVEX_CD8<8, CD8VQ>; -defm VPMOVZXBQZ: avx512_extend<0x32, "vpmovzxbq", VR512, VR128X, X86vzext, +defm VPMOVZXBQZ: avx512_extend<0x32, "vpmovzxbq", VK8WM, VR512, VR128X, X86vzext, memopv2i64, i128mem, v8i64, v16i8>, EVEX_V512, EVEX_CD8<8, CD8VO>; -defm VPMOVZXWDZ: avx512_extend<0x33, "vpmovzxwd", VR512, VR256X, X86vzext, +defm VPMOVZXWDZ: avx512_extend<0x33, "vpmovzxwd", VK16WM, VR512, VR256X, X86vzext, memopv4i64, i256mem, v16i32, v16i16>, EVEX_V512, EVEX_CD8<16, CD8VH>; -defm VPMOVZXWQZ: avx512_extend<0x34, "vpmovzxwq", VR512, VR128X, X86vzext, +defm VPMOVZXWQZ: avx512_extend<0x34, "vpmovzxwq", VK8WM, VR512, VR128X, X86vzext, memopv2i64, i128mem, v8i64, v8i16>, EVEX_V512, EVEX_CD8<16, CD8VQ>; -defm VPMOVZXDQZ: avx512_extend<0x35, "vpmovzxdq", VR512, VR256X, X86vzext, +defm VPMOVZXDQZ: avx512_extend<0x35, "vpmovzxdq", VK8WM, VR512, VR256X, X86vzext, memopv4i64, i256mem, v8i64, v8i32>, EVEX_V512, EVEX_CD8<32, CD8VH>; - -defm VPMOVSXBDZ: avx512_extend<0x21, "vpmovsxbd", VR512, VR128X, X86vsext, + +defm VPMOVSXBDZ: avx512_extend<0x21, "vpmovsxbd", VK16WM, VR512, VR128X, X86vsext, memopv2i64, i128mem, v16i32, v16i8>, EVEX_V512, EVEX_CD8<8, CD8VQ>; -defm VPMOVSXBQZ: avx512_extend<0x22, "vpmovsxbq", VR512, VR128X, X86vsext, +defm VPMOVSXBQZ: avx512_extend<0x22, "vpmovsxbq", VK8WM, VR512, VR128X, X86vsext, memopv2i64, i128mem, v8i64, v16i8>, EVEX_V512, EVEX_CD8<8, CD8VO>; -defm VPMOVSXWDZ: avx512_extend<0x23, "vpmovsxwd", VR512, VR256X, X86vsext, +defm VPMOVSXWDZ: avx512_extend<0x23, "vpmovsxwd", VK16WM, VR512, VR256X, X86vsext, memopv4i64, i256mem, v16i32, v16i16>, EVEX_V512, EVEX_CD8<16, CD8VH>; -defm VPMOVSXWQZ: avx512_extend<0x24, "vpmovsxwq", VR512, VR128X, X86vsext, +defm VPMOVSXWQZ: avx512_extend<0x24, "vpmovsxwq", VK8WM, VR512, VR128X, X86vsext, memopv2i64, i128mem, v8i64, v8i16>, EVEX_V512, EVEX_CD8<16, CD8VQ>; -defm VPMOVSXDQZ: avx512_extend<0x25, "vpmovsxdq", VR512, VR256X, X86vsext, +defm VPMOVSXDQZ: avx512_extend<0x25, "vpmovsxdq", VK8WM, VR512, VR256X, X86vsext, memopv4i64, i256mem, v8i64, v8i32>, EVEX_V512, EVEX_CD8<32, CD8VH>; diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index 42c50e16c1c..2915b7a4d0a 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -1,101 +1,5 @@ // 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 @@ -128,6 +32,10 @@ // CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x82,0x00,0x20,0x00,0x00] vaddpd 8192(%rdx), %zmm27, %zmm8 +// CHECK: vaddpd -8192(%rdx), %zmm27, %zmm8 +// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x42,0x80] + 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 @@ -140,6 +48,10 @@ // CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x82,0x00,0x04,0x00,0x00] vaddpd 1024(%rdx){1to8}, %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: vaddpd -1032(%rdx){1to8}, %zmm27, %zmm8 // CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x82,0xf8,0xfb,0xff,0xff] vaddpd -1032(%rdx){1to8}, %zmm27, %zmm8 @@ -176,6 +88,10 @@ // CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x92,0x00,0x20,0x00,0x00] vaddps 8192(%rdx), %zmm13, %zmm18 +// CHECK: vaddps -8192(%rdx), %zmm13, %zmm18 +// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x52,0x80] + 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 @@ -188,6 +104,10 @@ // CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x92,0x00,0x02,0x00,0x00] vaddps 512(%rdx){1to16}, %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: vaddps -516(%rdx){1to16}, %zmm13, %zmm18 // CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x92,0xfc,0xfd,0xff,0xff] vaddps -516(%rdx){1to16}, %zmm13, %zmm18 @@ -224,6 +144,10 @@ // CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x92,0x00,0x20,0x00,0x00] vdivpd 8192(%rdx), %zmm6, %zmm18 +// CHECK: vdivpd -8192(%rdx), %zmm6, %zmm18 +// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x52,0x80] + 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 @@ -236,6 +160,10 @@ // CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x92,0x00,0x04,0x00,0x00] vdivpd 1024(%rdx){1to8}, %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: vdivpd -1032(%rdx){1to8}, %zmm6, %zmm18 // CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x92,0xf8,0xfb,0xff,0xff] vdivpd -1032(%rdx){1to8}, %zmm6, %zmm18 @@ -272,6 +200,10 @@ // CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0xba,0x00,0x20,0x00,0x00] vdivps 8192(%rdx), %zmm23, %zmm23 +// CHECK: vdivps -8192(%rdx), %zmm23, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x7a,0x80] + 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 @@ -284,6 +216,10 @@ // CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0xba,0x00,0x02,0x00,0x00] vdivps 512(%rdx){1to16}, %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: vdivps -516(%rdx){1to16}, %zmm23, %zmm23 // CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0xba,0xfc,0xfd,0xff,0xff] vdivps -516(%rdx){1to16}, %zmm23, %zmm23 @@ -320,6 +256,10 @@ // CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0xb2,0x00,0x20,0x00,0x00] vmaxpd 8192(%rdx), %zmm28, %zmm30 +// CHECK: vmaxpd -8192(%rdx), %zmm28, %zmm30 +// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x72,0x80] + 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 @@ -332,6 +272,10 @@ // CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0xb2,0x00,0x04,0x00,0x00] vmaxpd 1024(%rdx){1to8}, %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: vmaxpd -1032(%rdx){1to8}, %zmm28, %zmm30 // CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0xb2,0xf8,0xfb,0xff,0xff] vmaxpd -1032(%rdx){1to8}, %zmm28, %zmm30 @@ -368,6 +312,10 @@ // CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x8a,0x00,0x20,0x00,0x00] vmaxps 8192(%rdx), %zmm6, %zmm25 +// CHECK: vmaxps -8192(%rdx), %zmm6, %zmm25 +// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x4a,0x80] + 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 @@ -380,6 +328,10 @@ // CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x8a,0x00,0x02,0x00,0x00] vmaxps 512(%rdx){1to16}, %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: vmaxps -516(%rdx){1to16}, %zmm6, %zmm25 // CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x8a,0xfc,0xfd,0xff,0xff] vmaxps -516(%rdx){1to16}, %zmm6, %zmm25 @@ -416,6 +368,10 @@ // CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0xb2,0x00,0x20,0x00,0x00] vminpd 8192(%rdx), %zmm6, %zmm6 +// CHECK: vminpd -8192(%rdx), %zmm6, %zmm6 +// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x72,0x80] + 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 @@ -428,6 +384,10 @@ // CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0xb2,0x00,0x04,0x00,0x00] vminpd 1024(%rdx){1to8}, %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: vminpd -1032(%rdx){1to8}, %zmm6, %zmm6 // CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0xb2,0xf8,0xfb,0xff,0xff] vminpd -1032(%rdx){1to8}, %zmm6, %zmm6 @@ -464,6 +424,10 @@ // CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x9a,0x00,0x20,0x00,0x00] vminps 8192(%rdx), %zmm3, %zmm3 +// CHECK: vminps -8192(%rdx), %zmm3, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x5a,0x80] + 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 @@ -476,6 +440,10 @@ // CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x9a,0x00,0x02,0x00,0x00] vminps 512(%rdx){1to16}, %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: vminps -516(%rdx){1to16}, %zmm3, %zmm3 // CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x9a,0xfc,0xfd,0xff,0xff] vminps -516(%rdx){1to16}, %zmm3, %zmm3 @@ -512,6 +480,10 @@ // CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x82,0x00,0x20,0x00,0x00] vmulpd 8192(%rdx), %zmm4, %zmm24 +// CHECK: vmulpd -8192(%rdx), %zmm4, %zmm24 +// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x42,0x80] + 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 @@ -524,6 +496,10 @@ // CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x82,0x00,0x04,0x00,0x00] vmulpd 1024(%rdx){1to8}, %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: vmulpd -1032(%rdx){1to8}, %zmm4, %zmm24 // CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x82,0xf8,0xfb,0xff,0xff] vmulpd -1032(%rdx){1to8}, %zmm4, %zmm24 @@ -560,6 +536,10 @@ // CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x9a,0x00,0x20,0x00,0x00] vmulps 8192(%rdx), %zmm6, %zmm3 +// CHECK: vmulps -8192(%rdx), %zmm6, %zmm3 +// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x5a,0x80] + 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 @@ -572,6 +552,10 @@ // CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x9a,0x00,0x02,0x00,0x00] vmulps 512(%rdx){1to16}, %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: vmulps -516(%rdx){1to16}, %zmm6, %zmm3 // CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x9a,0xfc,0xfd,0xff,0xff] vmulps -516(%rdx){1to16}, %zmm6, %zmm3 @@ -1504,6 +1488,374 @@ // CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x9a,0xf8,0xfb,0xff,0xff] vpminuq -1032(%rdx){1to8}, %zmm26, %zmm11 +// CHECK: vpmovsxbd %xmm7, %zmm27 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0xdf] + vpmovsxbd %xmm7, %zmm27 + +// CHECK: vpmovsxbd %xmm7, %zmm27 {%k5} +// CHECK: encoding: [0x62,0x62,0x7d,0x4d,0x21,0xdf] + vpmovsxbd %xmm7, %zmm27 {%k5} + +// CHECK: vpmovsxbd %xmm7, %zmm27 {%k5} {z} +// CHECK: encoding: [0x62,0x62,0x7d,0xcd,0x21,0xdf] + vpmovsxbd %xmm7, %zmm27 {%k5} {z} + +// CHECK: vpmovsxbd (%rcx), %zmm27 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x19] + vpmovsxbd (%rcx), %zmm27 + +// CHECK: vpmovsxbd 291(%rax,%r14,8), %zmm27 +// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x21,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpmovsxbd 291(%rax,%r14,8), %zmm27 + +// CHECK: vpmovsxbd 2032(%rdx), %zmm27 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x5a,0x7f] + vpmovsxbd 2032(%rdx), %zmm27 + +// CHECK: vpmovsxbd 2048(%rdx), %zmm27 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x9a,0x00,0x08,0x00,0x00] + vpmovsxbd 2048(%rdx), %zmm27 + +// CHECK: vpmovsxbd -2048(%rdx), %zmm27 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x5a,0x80] + vpmovsxbd -2048(%rdx), %zmm27 + +// CHECK: vpmovsxbd -2064(%rdx), %zmm27 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x9a,0xf0,0xf7,0xff,0xff] + vpmovsxbd -2064(%rdx), %zmm27 + +// CHECK: vpmovsxbd (%rcx), %zmm27 {%k1} +// CHECK: encoding: [0x62,0x62,0x7d,0x49,0x21,0x19] + vpmovsxbd (%rcx), %zmm27 {%k1} + +// CHECK: vpmovsxbd (%rcx), %zmm27 {%k2} {z} +// CHECK: encoding: [0x62,0x62,0x7d,0xca,0x21,0x19] + vpmovsxbd (%rcx), %zmm27 {%k2} {z} + +// CHECK: vpmovsxbq %xmm11, %zmm11 +// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x22,0xdb] + vpmovsxbq %xmm11, %zmm11 + +// CHECK: vpmovsxbq %xmm11, %zmm11 {%k5} +// CHECK: encoding: [0x62,0x52,0x7d,0x4d,0x22,0xdb] + vpmovsxbq %xmm11, %zmm11 {%k5} + +// CHECK: vpmovsxbq %xmm11, %zmm11 {%k5} {z} +// CHECK: encoding: [0x62,0x52,0x7d,0xcd,0x22,0xdb] + vpmovsxbq %xmm11, %zmm11 {%k5} {z} + +// CHECK: vpmovsxbq (%rcx), %zmm11 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x19] + vpmovsxbq (%rcx), %zmm11 + +// CHECK: vpmovsxbq 291(%rax,%r14,8), %zmm11 +// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x22,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpmovsxbq 291(%rax,%r14,8), %zmm11 + +// CHECK: vpmovsxbq 1016(%rdx), %zmm11 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x5a,0x7f] + vpmovsxbq 1016(%rdx), %zmm11 + +// CHECK: vpmovsxbq 1024(%rdx), %zmm11 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x9a,0x00,0x04,0x00,0x00] + vpmovsxbq 1024(%rdx), %zmm11 + +// CHECK: vpmovsxbq -1024(%rdx), %zmm11 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x5a,0x80] + vpmovsxbq -1024(%rdx), %zmm11 + +// CHECK: vpmovsxbq -1032(%rdx), %zmm11 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x9a,0xf8,0xfb,0xff,0xff] + vpmovsxbq -1032(%rdx), %zmm11 + +// CHECK: vpmovsxdq %ymm29, %zmm26 +// CHECK: encoding: [0x62,0x02,0x7d,0x48,0x25,0xd5] + vpmovsxdq %ymm29, %zmm26 + +// CHECK: vpmovsxdq %ymm29, %zmm26 {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x25,0xd5] + vpmovsxdq %ymm29, %zmm26 {%k1} + +// CHECK: vpmovsxdq %ymm29, %zmm26 {%k1} {z} +// CHECK: encoding: [0x62,0x02,0x7d,0xc9,0x25,0xd5] + vpmovsxdq %ymm29, %zmm26 {%k1} {z} + +// CHECK: vpmovsxdq (%rcx), %zmm26 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x11] + vpmovsxdq (%rcx), %zmm26 + +// CHECK: vpmovsxdq 291(%rax,%r14,8), %zmm26 +// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x25,0x94,0xf0,0x23,0x01,0x00,0x00] + vpmovsxdq 291(%rax,%r14,8), %zmm26 + +// CHECK: vpmovsxdq 4064(%rdx), %zmm26 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x52,0x7f] + vpmovsxdq 4064(%rdx), %zmm26 + +// CHECK: vpmovsxdq 4096(%rdx), %zmm26 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x92,0x00,0x10,0x00,0x00] + vpmovsxdq 4096(%rdx), %zmm26 + +// CHECK: vpmovsxdq -4096(%rdx), %zmm26 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x52,0x80] + vpmovsxdq -4096(%rdx), %zmm26 + +// CHECK: vpmovsxdq -4128(%rdx), %zmm26 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x92,0xe0,0xef,0xff,0xff] + vpmovsxdq -4128(%rdx), %zmm26 + +// CHECK: vpmovsxwd %ymm11, %zmm23 +// CHECK: encoding: [0x62,0xc2,0x7d,0x48,0x23,0xfb] + vpmovsxwd %ymm11, %zmm23 + +// CHECK: vpmovsxwd %ymm11, %zmm23 {%k2} +// CHECK: encoding: [0x62,0xc2,0x7d,0x4a,0x23,0xfb] + vpmovsxwd %ymm11, %zmm23 {%k2} + +// CHECK: vpmovsxwd %ymm11, %zmm23 {%k2} {z} +// CHECK: encoding: [0x62,0xc2,0x7d,0xca,0x23,0xfb] + vpmovsxwd %ymm11, %zmm23 {%k2} {z} + +// CHECK: vpmovsxwd (%rcx), %zmm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0x39] + vpmovsxwd (%rcx), %zmm23 + +// CHECK: vpmovsxwd 291(%rax,%r14,8), %zmm23 +// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x23,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpmovsxwd 291(%rax,%r14,8), %zmm23 + +// CHECK: vpmovsxwd 4064(%rdx), %zmm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0x7a,0x7f] + vpmovsxwd 4064(%rdx), %zmm23 + +// CHECK: vpmovsxwd 4096(%rdx), %zmm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0xba,0x00,0x10,0x00,0x00] + vpmovsxwd 4096(%rdx), %zmm23 + +// CHECK: vpmovsxwd -4096(%rdx), %zmm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0x7a,0x80] + vpmovsxwd -4096(%rdx), %zmm23 + +// CHECK: vpmovsxwd -4128(%rdx), %zmm23 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0xba,0xe0,0xef,0xff,0xff] + vpmovsxwd -4128(%rdx), %zmm23 + +// CHECK: vpmovsxwq %xmm25, %zmm25 +// CHECK: encoding: [0x62,0x02,0x7d,0x48,0x24,0xc9] + vpmovsxwq %xmm25, %zmm25 + +// CHECK: vpmovsxwq %xmm25, %zmm25 {%k4} +// CHECK: encoding: [0x62,0x02,0x7d,0x4c,0x24,0xc9] + vpmovsxwq %xmm25, %zmm25 {%k4} + +// CHECK: vpmovsxwq %xmm25, %zmm25 {%k4} {z} +// CHECK: encoding: [0x62,0x02,0x7d,0xcc,0x24,0xc9] + vpmovsxwq %xmm25, %zmm25 {%k4} {z} + +// CHECK: vpmovsxwq (%rcx), %zmm25 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x09] + vpmovsxwq (%rcx), %zmm25 + +// CHECK: vpmovsxwq 291(%rax,%r14,8), %zmm25 +// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x24,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpmovsxwq 291(%rax,%r14,8), %zmm25 + +// CHECK: vpmovsxwq 2032(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x4a,0x7f] + vpmovsxwq 2032(%rdx), %zmm25 + +// CHECK: vpmovsxwq 2048(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x8a,0x00,0x08,0x00,0x00] + vpmovsxwq 2048(%rdx), %zmm25 + +// CHECK: vpmovsxwq -2048(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x4a,0x80] + vpmovsxwq -2048(%rdx), %zmm25 + +// CHECK: vpmovsxwq -2064(%rdx), %zmm25 +// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x8a,0xf0,0xf7,0xff,0xff] + vpmovsxwq -2064(%rdx), %zmm25 + +// CHECK: vpmovzxbd %xmm25, %zmm18 +// CHECK: encoding: [0x62,0x82,0x7d,0x48,0x31,0xd1] + vpmovzxbd %xmm25, %zmm18 + +// CHECK: vpmovzxbd %xmm25, %zmm18 {%k7} +// CHECK: encoding: [0x62,0x82,0x7d,0x4f,0x31,0xd1] + vpmovzxbd %xmm25, %zmm18 {%k7} + +// CHECK: vpmovzxbd %xmm25, %zmm18 {%k7} {z} +// CHECK: encoding: [0x62,0x82,0x7d,0xcf,0x31,0xd1] + vpmovzxbd %xmm25, %zmm18 {%k7} {z} + +// CHECK: vpmovzxbd (%rcx), %zmm18 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x11] + vpmovzxbd (%rcx), %zmm18 + +// CHECK: vpmovzxbd 291(%rax,%r14,8), %zmm18 +// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x31,0x94,0xf0,0x23,0x01,0x00,0x00] + vpmovzxbd 291(%rax,%r14,8), %zmm18 + +// CHECK: vpmovzxbd 2032(%rdx), %zmm18 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x52,0x7f] + vpmovzxbd 2032(%rdx), %zmm18 + +// CHECK: vpmovzxbd 2048(%rdx), %zmm18 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x92,0x00,0x08,0x00,0x00] + vpmovzxbd 2048(%rdx), %zmm18 + +// CHECK: vpmovzxbd -2048(%rdx), %zmm18 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x52,0x80] + vpmovzxbd -2048(%rdx), %zmm18 + +// CHECK: vpmovzxbd -2064(%rdx), %zmm18 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x92,0xf0,0xf7,0xff,0xff] + vpmovzxbd -2064(%rdx), %zmm18 + +// CHECK: vpmovzxbq %xmm15, %zmm5 +// CHECK: encoding: [0x62,0xd2,0x7d,0x48,0x32,0xef] + vpmovzxbq %xmm15, %zmm5 + +// CHECK: vpmovzxbq %xmm15, %zmm5 {%k1} +// CHECK: encoding: [0x62,0xd2,0x7d,0x49,0x32,0xef] + vpmovzxbq %xmm15, %zmm5 {%k1} + +// CHECK: vpmovzxbq %xmm15, %zmm5 {%k1} {z} +// CHECK: encoding: [0x62,0xd2,0x7d,0xc9,0x32,0xef] + vpmovzxbq %xmm15, %zmm5 {%k1} {z} + +// CHECK: vpmovzxbq (%rcx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0x29] + vpmovzxbq (%rcx), %zmm5 + +// CHECK: vpmovzxbq 291(%rax,%r14,8), %zmm5 +// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x32,0xac,0xf0,0x23,0x01,0x00,0x00] + vpmovzxbq 291(%rax,%r14,8), %zmm5 + +// CHECK: vpmovzxbq 1016(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0x6a,0x7f] + vpmovzxbq 1016(%rdx), %zmm5 + +// CHECK: vpmovzxbq 1024(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0xaa,0x00,0x04,0x00,0x00] + vpmovzxbq 1024(%rdx), %zmm5 + +// CHECK: vpmovzxbq -1024(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0x6a,0x80] + vpmovzxbq -1024(%rdx), %zmm5 + +// CHECK: vpmovzxbq -1032(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0xaa,0xf8,0xfb,0xff,0xff] + vpmovzxbq -1032(%rdx), %zmm5 + +// CHECK: vpmovzxdq %ymm4, %zmm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0xe4] + vpmovzxdq %ymm4, %zmm20 + +// CHECK: vpmovzxdq %ymm4, %zmm20 {%k3} +// CHECK: encoding: [0x62,0xe2,0x7d,0x4b,0x35,0xe4] + vpmovzxdq %ymm4, %zmm20 {%k3} + +// CHECK: vpmovzxdq %ymm4, %zmm20 {%k3} {z} +// CHECK: encoding: [0x62,0xe2,0x7d,0xcb,0x35,0xe4] + vpmovzxdq %ymm4, %zmm20 {%k3} {z} + +// CHECK: vpmovzxdq (%rcx), %zmm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0x21] + vpmovzxdq (%rcx), %zmm20 + +// CHECK: vpmovzxdq 291(%rax,%r14,8), %zmm20 +// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x35,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpmovzxdq 291(%rax,%r14,8), %zmm20 + +// CHECK: vpmovzxdq 4064(%rdx), %zmm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0x62,0x7f] + vpmovzxdq 4064(%rdx), %zmm20 + +// CHECK: vpmovzxdq 4096(%rdx), %zmm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0xa2,0x00,0x10,0x00,0x00] + vpmovzxdq 4096(%rdx), %zmm20 + +// CHECK: vpmovzxdq -4096(%rdx), %zmm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0x62,0x80] + vpmovzxdq -4096(%rdx), %zmm20 + +// CHECK: vpmovzxdq -4128(%rdx), %zmm20 +// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0xa2,0xe0,0xef,0xff,0xff] + vpmovzxdq -4128(%rdx), %zmm20 + +// CHECK: vpmovzxwd %ymm6, %zmm8 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0xc6] + vpmovzxwd %ymm6, %zmm8 + +// CHECK: vpmovzxwd %ymm6, %zmm8 {%k7} +// CHECK: encoding: [0x62,0x72,0x7d,0x4f,0x33,0xc6] + vpmovzxwd %ymm6, %zmm8 {%k7} + +// CHECK: vpmovzxwd %ymm6, %zmm8 {%k7} {z} +// CHECK: encoding: [0x62,0x72,0x7d,0xcf,0x33,0xc6] + vpmovzxwd %ymm6, %zmm8 {%k7} {z} + +// CHECK: vpmovzxwd (%rcx), %zmm8 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x01] + vpmovzxwd (%rcx), %zmm8 + +// CHECK: vpmovzxwd 291(%rax,%r14,8), %zmm8 +// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x33,0x84,0xf0,0x23,0x01,0x00,0x00] + vpmovzxwd 291(%rax,%r14,8), %zmm8 + +// CHECK: vpmovzxwd 4064(%rdx), %zmm8 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x42,0x7f] + vpmovzxwd 4064(%rdx), %zmm8 + +// CHECK: vpmovzxwd 4096(%rdx), %zmm8 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x82,0x00,0x10,0x00,0x00] + vpmovzxwd 4096(%rdx), %zmm8 + +// CHECK: vpmovzxwd -4096(%rdx), %zmm8 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x42,0x80] + vpmovzxwd -4096(%rdx), %zmm8 + +// CHECK: vpmovzxwd -4128(%rdx), %zmm8 +// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x82,0xe0,0xef,0xff,0xff] + vpmovzxwd -4128(%rdx), %zmm8 + +// CHECK: vpmovzxwq %xmm15, %zmm5 +// CHECK: encoding: [0x62,0xd2,0x7d,0x48,0x34,0xef] + vpmovzxwq %xmm15, %zmm5 + +// CHECK: vpmovzxwq %xmm15, %zmm5 {%k7} +// CHECK: encoding: [0x62,0xd2,0x7d,0x4f,0x34,0xef] + vpmovzxwq %xmm15, %zmm5 {%k7} + +// CHECK: vpmovzxwq %xmm15, %zmm5 {%k7} {z} +// CHECK: encoding: [0x62,0xd2,0x7d,0xcf,0x34,0xef] + vpmovzxwq %xmm15, %zmm5 {%k7} {z} + +// CHECK: vpmovzxwq (%rcx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0x29] + vpmovzxwq (%rcx), %zmm5 + +// CHECK: vpmovzxwq 291(%rax,%r14,8), %zmm5 +// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x34,0xac,0xf0,0x23,0x01,0x00,0x00] + vpmovzxwq 291(%rax,%r14,8), %zmm5 + +// CHECK: vpmovzxwq 2032(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0x6a,0x7f] + vpmovzxwq 2032(%rdx), %zmm5 + +// CHECK: vpmovzxwq 2048(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0xaa,0x00,0x08,0x00,0x00] + vpmovzxwq 2048(%rdx), %zmm5 + +// CHECK: vpmovzxwq -2048(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0x6a,0x80] + vpmovzxwq -2048(%rdx), %zmm5 + +// CHECK: vpmovzxwq -2064(%rdx), %zmm5 +// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0xaa,0xf0,0xf7,0xff,0xff] + vpmovzxwq -2064(%rdx), %zmm5 + // CHECK: vpmuldq %zmm9, %zmm9, %zmm29 // CHECK: encoding: [0x62,0x42,0xb5,0x48,0x28,0xe9] vpmuldq %zmm9, %zmm9, %zmm29 @@ -2056,6 +2408,10 @@ // CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x8a,0x00,0x20,0x00,0x00] vsubpd 8192(%rdx), %zmm12, %zmm9 +// CHECK: vsubpd -8192(%rdx), %zmm12, %zmm9 +// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x4a,0x80] + 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 @@ -2068,6 +2424,10 @@ // CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x8a,0x00,0x04,0x00,0x00] vsubpd 1024(%rdx){1to8}, %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: vsubpd -1032(%rdx){1to8}, %zmm12, %zmm9 // CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x8a,0xf8,0xfb,0xff,0xff] vsubpd -1032(%rdx){1to8}, %zmm12, %zmm9 @@ -2104,6 +2464,10 @@ // CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0xb2,0x00,0x20,0x00,0x00] vsubps 8192(%rdx), %zmm27, %zmm14 +// CHECK: vsubps -8192(%rdx), %zmm27, %zmm14 +// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x72,0x80] + 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 @@ -2116,10 +2480,614 @@ // CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0xb2,0x00,0x02,0x00,0x00] vsubps 512(%rdx){1to16}, %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: 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: vpmovqb %zmm2, %xmm3 +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0xd3] + vpmovqb %zmm2, %xmm3 + +// CHECK: vpmovqb %zmm2, %xmm3 {%k1} +// CHECK: encoding: [0x62,0xf2,0x7e,0x49,0x32,0xd3] + vpmovqb %zmm2, %xmm3 {%k1} + +// CHECK: vpmovqb %zmm2, %xmm3 {%k1} {z} +// CHECK: encoding: [0x62,0xf2,0x7e,0xc9,0x32,0xd3] + vpmovqb %zmm2, %xmm3 {%k1} {z} + +// CHECK: vpmovsqb %zmm29, %xmm30 +// CHECK: encoding: [0x62,0x02,0x7e,0x48,0x22,0xee] + vpmovsqb %zmm29, %xmm30 + +// CHECK: vpmovsqb %zmm29, %xmm30 {%k5} +// CHECK: encoding: [0x62,0x02,0x7e,0x4d,0x22,0xee] + vpmovsqb %zmm29, %xmm30 {%k5} + +// CHECK: vpmovsqb %zmm29, %xmm30 {%k5} {z} +// CHECK: encoding: [0x62,0x02,0x7e,0xcd,0x22,0xee] + vpmovsqb %zmm29, %xmm30 {%k5} {z} + +// CHECK: vpmovusqb %zmm28, %xmm24 +// CHECK: encoding: [0x62,0x02,0x7e,0x48,0x12,0xe0] + vpmovusqb %zmm28, %xmm24 + +// CHECK: vpmovusqb %zmm28, %xmm24 {%k7} +// CHECK: encoding: [0x62,0x02,0x7e,0x4f,0x12,0xe0] + vpmovusqb %zmm28, %xmm24 {%k7} + +// CHECK: vpmovusqb %zmm28, %xmm24 {%k7} {z} +// CHECK: encoding: [0x62,0x02,0x7e,0xcf,0x12,0xe0] + vpmovusqb %zmm28, %xmm24 {%k7} {z} + +// CHECK: vpmovqw %zmm18, %xmm6 +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0xd6] + vpmovqw %zmm18, %xmm6 + +// CHECK: vpmovqw %zmm18, %xmm6 {%k1} +// CHECK: encoding: [0x62,0xe2,0x7e,0x49,0x34,0xd6] + vpmovqw %zmm18, %xmm6 {%k1} + +// CHECK: vpmovqw %zmm18, %xmm6 {%k1} {z} +// CHECK: encoding: [0x62,0xe2,0x7e,0xc9,0x34,0xd6] + vpmovqw %zmm18, %xmm6 {%k1} {z} + +// CHECK: vpmovsqw %zmm19, %xmm27 +// CHECK: encoding: [0x62,0x82,0x7e,0x48,0x24,0xdb] + vpmovsqw %zmm19, %xmm27 + +// CHECK: vpmovsqw %zmm19, %xmm27 {%k6} +// CHECK: encoding: [0x62,0x82,0x7e,0x4e,0x24,0xdb] + vpmovsqw %zmm19, %xmm27 {%k6} + +// CHECK: vpmovsqw %zmm19, %xmm27 {%k6} {z} +// CHECK: encoding: [0x62,0x82,0x7e,0xce,0x24,0xdb] + vpmovsqw %zmm19, %xmm27 {%k6} {z} + +// CHECK: vpmovusqw %zmm10, %xmm28 +// CHECK: encoding: [0x62,0x12,0x7e,0x48,0x14,0xd4] + vpmovusqw %zmm10, %xmm28 + +// CHECK: vpmovusqw %zmm10, %xmm28 {%k7} +// CHECK: encoding: [0x62,0x12,0x7e,0x4f,0x14,0xd4] + vpmovusqw %zmm10, %xmm28 {%k7} + +// CHECK: vpmovusqw %zmm10, %xmm28 {%k7} {z} +// CHECK: encoding: [0x62,0x12,0x7e,0xcf,0x14,0xd4] + vpmovusqw %zmm10, %xmm28 {%k7} {z} + +// CHECK: vpmovqd %zmm25, %ymm6 +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0xce] + vpmovqd %zmm25, %ymm6 + +// CHECK: vpmovqd %zmm25, %ymm6 {%k5} +// CHECK: encoding: [0x62,0x62,0x7e,0x4d,0x35,0xce] + vpmovqd %zmm25, %ymm6 {%k5} + +// CHECK: vpmovqd %zmm25, %ymm6 {%k5} {z} +// CHECK: encoding: [0x62,0x62,0x7e,0xcd,0x35,0xce] + vpmovqd %zmm25, %ymm6 {%k5} {z} + +// CHECK: vpmovsqd %zmm2, %ymm15 +// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x25,0xd7] + vpmovsqd %zmm2, %ymm15 + +// CHECK: vpmovsqd %zmm2, %ymm15 {%k2} +// CHECK: encoding: [0x62,0xd2,0x7e,0x4a,0x25,0xd7] + vpmovsqd %zmm2, %ymm15 {%k2} + +// CHECK: vpmovsqd %zmm2, %ymm15 {%k2} {z} +// CHECK: encoding: [0x62,0xd2,0x7e,0xca,0x25,0xd7] + vpmovsqd %zmm2, %ymm15 {%k2} {z} + +// CHECK: vpmovusqd %zmm4, %ymm8 +// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x15,0xe0] + vpmovusqd %zmm4, %ymm8 + +// CHECK: vpmovusqd %zmm4, %ymm8 {%k4} +// CHECK: encoding: [0x62,0xd2,0x7e,0x4c,0x15,0xe0] + vpmovusqd %zmm4, %ymm8 {%k4} + +// CHECK: vpmovusqd %zmm4, %ymm8 {%k4} {z} +// CHECK: encoding: [0x62,0xd2,0x7e,0xcc,0x15,0xe0] + vpmovusqd %zmm4, %ymm8 {%k4} {z} + +// CHECK: vpmovdb %zmm5, %xmm2 +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x31,0xea] + vpmovdb %zmm5, %xmm2 + +// CHECK: vpmovdb %zmm5, %xmm2 {%k5} +// CHECK: encoding: [0x62,0xf2,0x7e,0x4d,0x31,0xea] + vpmovdb %zmm5, %xmm2 {%k5} + +// CHECK: vpmovdb %zmm5, %xmm2 {%k5} {z} +// CHECK: encoding: [0x62,0xf2,0x7e,0xcd,0x31,0xea] + vpmovdb %zmm5, %xmm2 {%k5} {z} + +// CHECK: vpmovsdb %zmm2, %xmm21 +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x21,0xd5] + vpmovsdb %zmm2, %xmm21 + +// CHECK: vpmovsdb %zmm2, %xmm21 {%k4} +// CHECK: encoding: [0x62,0xb2,0x7e,0x4c,0x21,0xd5] + vpmovsdb %zmm2, %xmm21 {%k4} + +// CHECK: vpmovsdb %zmm2, %xmm21 {%k4} {z} +// CHECK: encoding: [0x62,0xb2,0x7e,0xcc,0x21,0xd5] + vpmovsdb %zmm2, %xmm21 {%k4} {z} + +// CHECK: vpmovusdb %zmm2, %xmm20 +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x11,0xd4] + vpmovusdb %zmm2, %xmm20 + +// CHECK: vpmovusdb %zmm2, %xmm20 {%k3} +// CHECK: encoding: [0x62,0xb2,0x7e,0x4b,0x11,0xd4] + vpmovusdb %zmm2, %xmm20 {%k3} + +// CHECK: vpmovusdb %zmm2, %xmm20 {%k3} {z} +// CHECK: encoding: [0x62,0xb2,0x7e,0xcb,0x11,0xd4] + vpmovusdb %zmm2, %xmm20 {%k3} {z} + +// CHECK: vpmovdw %zmm29, %ymm22 +// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x33,0xee] + vpmovdw %zmm29, %ymm22 + +// CHECK: vpmovdw %zmm29, %ymm22 {%k5} +// CHECK: encoding: [0x62,0x22,0x7e,0x4d,0x33,0xee] + vpmovdw %zmm29, %ymm22 {%k5} + +// CHECK: vpmovdw %zmm29, %ymm22 {%k5} {z} +// CHECK: encoding: [0x62,0x22,0x7e,0xcd,0x33,0xee] + vpmovdw %zmm29, %ymm22 {%k5} {z} + +// CHECK: vpmovsdw %zmm14, %ymm25 +// CHECK: encoding: [0x62,0x12,0x7e,0x48,0x23,0xf1] + vpmovsdw %zmm14, %ymm25 + +// CHECK: vpmovsdw %zmm14, %ymm25 {%k4} +// CHECK: encoding: [0x62,0x12,0x7e,0x4c,0x23,0xf1] + vpmovsdw %zmm14, %ymm25 {%k4} + +// CHECK: vpmovsdw %zmm14, %ymm25 {%k4} {z} +// CHECK: encoding: [0x62,0x12,0x7e,0xcc,0x23,0xf1] + vpmovsdw %zmm14, %ymm25 {%k4} {z} + +// CHECK: vpmovusdw %zmm7, %ymm8 +// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x13,0xf8] + vpmovusdw %zmm7, %ymm8 + +// CHECK: vpmovusdw %zmm7, %ymm8 {%k1} +// CHECK: encoding: [0x62,0xd2,0x7e,0x49,0x13,0xf8] + vpmovusdw %zmm7, %ymm8 {%k1} + +// CHECK: vpmovusdw %zmm7, %ymm8 {%k1} {z} +// CHECK: encoding: [0x62,0xd2,0x7e,0xc9,0x13,0xf8] + vpmovusdw %zmm7, %ymm8 {%k1} {z} + +// CHECK: vpmovqb %zmm3, (%rcx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x19] + vpmovqb %zmm3, (%rcx) + +// CHECK: vpmovqb %zmm3, (%rcx) {%k7} +// CHECK: encoding: [0x62,0xf2,0x7e,0x4f,0x32,0x19] + vpmovqb %zmm3, (%rcx) {%k7} + +// CHECK: vpmovqb %zmm3, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x32,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpmovqb %zmm3, 291(%rax,%r14,8) + +// CHECK: vpmovqb %zmm3, 1016(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x5a,0x7f] + vpmovqb %zmm3, 1016(%rdx) + +// CHECK: vpmovqb %zmm3, 1024(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x9a,0x00,0x04,0x00,0x00] + vpmovqb %zmm3, 1024(%rdx) + +// CHECK: vpmovqb %zmm3, -1024(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x5a,0x80] + vpmovqb %zmm3, -1024(%rdx) + +// CHECK: vpmovqb %zmm3, -1032(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x9a,0xf8,0xfb,0xff,0xff] + vpmovqb %zmm3, -1032(%rdx) + +// CHECK: vpmovsqb %zmm16, (%rcx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x01] + vpmovsqb %zmm16, (%rcx) + +// CHECK: vpmovsqb %zmm16, (%rcx) {%k2} +// CHECK: encoding: [0x62,0xe2,0x7e,0x4a,0x22,0x01] + vpmovsqb %zmm16, (%rcx) {%k2} + +// CHECK: vpmovsqb %zmm16, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x22,0x84,0xf0,0x23,0x01,0x00,0x00] + vpmovsqb %zmm16, 291(%rax,%r14,8) + +// CHECK: vpmovsqb %zmm16, 1016(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x42,0x7f] + vpmovsqb %zmm16, 1016(%rdx) + +// CHECK: vpmovsqb %zmm16, 1024(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x82,0x00,0x04,0x00,0x00] + vpmovsqb %zmm16, 1024(%rdx) + +// CHECK: vpmovsqb %zmm16, -1024(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x42,0x80] + vpmovsqb %zmm16, -1024(%rdx) + +// CHECK: vpmovsqb %zmm16, -1032(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x82,0xf8,0xfb,0xff,0xff] + vpmovsqb %zmm16, -1032(%rdx) + +// CHECK: vpmovusqb %zmm28, (%rcx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0x21] + vpmovusqb %zmm28, (%rcx) + +// CHECK: vpmovusqb %zmm28, (%rcx) {%k1} +// CHECK: encoding: [0x62,0x62,0x7e,0x49,0x12,0x21] + vpmovusqb %zmm28, (%rcx) {%k1} + +// CHECK: vpmovusqb %zmm28, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x12,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpmovusqb %zmm28, 291(%rax,%r14,8) + +// CHECK: vpmovusqb %zmm28, 1016(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0x62,0x7f] + vpmovusqb %zmm28, 1016(%rdx) + +// CHECK: vpmovusqb %zmm28, 1024(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0xa2,0x00,0x04,0x00,0x00] + vpmovusqb %zmm28, 1024(%rdx) + +// CHECK: vpmovusqb %zmm28, -1024(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0x62,0x80] + vpmovusqb %zmm28, -1024(%rdx) + +// CHECK: vpmovusqb %zmm28, -1032(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0xa2,0xf8,0xfb,0xff,0xff] + vpmovusqb %zmm28, -1032(%rdx) + +// CHECK: vpmovqw %zmm7, (%rcx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0x39] + vpmovqw %zmm7, (%rcx) + +// CHECK: vpmovqw %zmm7, (%rcx) {%k6} +// CHECK: encoding: [0x62,0xf2,0x7e,0x4e,0x34,0x39] + vpmovqw %zmm7, (%rcx) {%k6} + +// CHECK: vpmovqw %zmm7, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x34,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpmovqw %zmm7, 291(%rax,%r14,8) + +// CHECK: vpmovqw %zmm7, 2032(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0x7a,0x7f] + vpmovqw %zmm7, 2032(%rdx) + +// CHECK: vpmovqw %zmm7, 2048(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0xba,0x00,0x08,0x00,0x00] + vpmovqw %zmm7, 2048(%rdx) + +// CHECK: vpmovqw %zmm7, -2048(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0x7a,0x80] + vpmovqw %zmm7, -2048(%rdx) + +// CHECK: vpmovqw %zmm7, -2064(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0xba,0xf0,0xf7,0xff,0xff] + vpmovqw %zmm7, -2064(%rdx) + +// CHECK: vpmovsqw %zmm1, (%rcx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x09] + vpmovsqw %zmm1, (%rcx) + +// CHECK: vpmovsqw %zmm1, (%rcx) {%k5} +// CHECK: encoding: [0x62,0xf2,0x7e,0x4d,0x24,0x09] + vpmovsqw %zmm1, (%rcx) {%k5} + +// CHECK: vpmovsqw %zmm1, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x24,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpmovsqw %zmm1, 291(%rax,%r14,8) + +// CHECK: vpmovsqw %zmm1, 2032(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x4a,0x7f] + vpmovsqw %zmm1, 2032(%rdx) + +// CHECK: vpmovsqw %zmm1, 2048(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x8a,0x00,0x08,0x00,0x00] + vpmovsqw %zmm1, 2048(%rdx) + +// CHECK: vpmovsqw %zmm1, -2048(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x4a,0x80] + vpmovsqw %zmm1, -2048(%rdx) + +// CHECK: vpmovsqw %zmm1, -2064(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x8a,0xf0,0xf7,0xff,0xff] + vpmovsqw %zmm1, -2064(%rdx) + +// CHECK: vpmovusqw %zmm25, (%rcx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x09] + vpmovusqw %zmm25, (%rcx) + +// CHECK: vpmovusqw %zmm25, (%rcx) {%k3} +// CHECK: encoding: [0x62,0x62,0x7e,0x4b,0x14,0x09] + vpmovusqw %zmm25, (%rcx) {%k3} + +// CHECK: vpmovusqw %zmm25, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x14,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpmovusqw %zmm25, 291(%rax,%r14,8) + +// CHECK: vpmovusqw %zmm25, 2032(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x4a,0x7f] + vpmovusqw %zmm25, 2032(%rdx) + +// CHECK: vpmovusqw %zmm25, 2048(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x8a,0x00,0x08,0x00,0x00] + vpmovusqw %zmm25, 2048(%rdx) + +// CHECK: vpmovusqw %zmm25, -2048(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x4a,0x80] + vpmovusqw %zmm25, -2048(%rdx) + +// CHECK: vpmovusqw %zmm25, -2064(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x8a,0xf0,0xf7,0xff,0xff] + vpmovusqw %zmm25, -2064(%rdx) + +// CHECK: vpmovqd %zmm28, (%rcx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0x21] + vpmovqd %zmm28, (%rcx) + +// CHECK: vpmovqd %zmm28, (%rcx) {%k5} +// CHECK: encoding: [0x62,0x62,0x7e,0x4d,0x35,0x21] + vpmovqd %zmm28, (%rcx) {%k5} + +// CHECK: vpmovqd %zmm28, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x35,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpmovqd %zmm28, 291(%rax,%r14,8) + +// CHECK: vpmovqd %zmm28, 4064(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0x62,0x7f] + vpmovqd %zmm28, 4064(%rdx) + +// CHECK: vpmovqd %zmm28, 4096(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0xa2,0x00,0x10,0x00,0x00] + vpmovqd %zmm28, 4096(%rdx) + +// CHECK: vpmovqd %zmm28, -4096(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0x62,0x80] + vpmovqd %zmm28, -4096(%rdx) + +// CHECK: vpmovqd %zmm28, -4128(%rdx) +// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0xa2,0xe0,0xef,0xff,0xff] + vpmovqd %zmm28, -4128(%rdx) + +// CHECK: vpmovsqd %zmm9, (%rcx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x09] + vpmovsqd %zmm9, (%rcx) + +// CHECK: vpmovsqd %zmm9, (%rcx) {%k7} +// CHECK: encoding: [0x62,0x72,0x7e,0x4f,0x25,0x09] + vpmovsqd %zmm9, (%rcx) {%k7} + +// CHECK: vpmovsqd %zmm9, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x25,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpmovsqd %zmm9, 291(%rax,%r14,8) + +// CHECK: vpmovsqd %zmm9, 4064(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x4a,0x7f] + vpmovsqd %zmm9, 4064(%rdx) + +// CHECK: vpmovsqd %zmm9, 4096(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x8a,0x00,0x10,0x00,0x00] + vpmovsqd %zmm9, 4096(%rdx) + +// CHECK: vpmovsqd %zmm9, -4096(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x4a,0x80] + vpmovsqd %zmm9, -4096(%rdx) + +// CHECK: vpmovsqd %zmm9, -4128(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x8a,0xe0,0xef,0xff,0xff] + vpmovsqd %zmm9, -4128(%rdx) + +// CHECK: vpmovusqd %zmm22, (%rcx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x31] + vpmovusqd %zmm22, (%rcx) + +// CHECK: vpmovusqd %zmm22, (%rcx) {%k1} +// CHECK: encoding: [0x62,0xe2,0x7e,0x49,0x15,0x31] + vpmovusqd %zmm22, (%rcx) {%k1} + +// CHECK: vpmovusqd %zmm22, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x15,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpmovusqd %zmm22, 291(%rax,%r14,8) + +// CHECK: vpmovusqd %zmm22, 4064(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x72,0x7f] + vpmovusqd %zmm22, 4064(%rdx) + +// CHECK: vpmovusqd %zmm22, 4096(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0xb2,0x00,0x10,0x00,0x00] + vpmovusqd %zmm22, 4096(%rdx) + +// CHECK: vpmovusqd %zmm22, -4096(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x72,0x80] + vpmovusqd %zmm22, -4096(%rdx) + +// CHECK: vpmovusqd %zmm22, -4128(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0xb2,0xe0,0xef,0xff,0xff] + vpmovusqd %zmm22, -4128(%rdx) + +// CHECK: vpmovdb %zmm12, (%rcx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0x21] + vpmovdb %zmm12, (%rcx) + +// CHECK: vpmovdb %zmm12, (%rcx) {%k3} +// CHECK: encoding: [0x62,0x72,0x7e,0x4b,0x31,0x21] + vpmovdb %zmm12, (%rcx) {%k3} + +// CHECK: vpmovdb %zmm12, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x31,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpmovdb %zmm12, 291(%rax,%r14,8) + +// CHECK: vpmovdb %zmm12, 2032(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0x62,0x7f] + vpmovdb %zmm12, 2032(%rdx) + +// CHECK: vpmovdb %zmm12, 2048(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0xa2,0x00,0x08,0x00,0x00] + vpmovdb %zmm12, 2048(%rdx) + +// CHECK: vpmovdb %zmm12, -2048(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0x62,0x80] + vpmovdb %zmm12, -2048(%rdx) + +// CHECK: vpmovdb %zmm12, -2064(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0xa2,0xf0,0xf7,0xff,0xff] + vpmovdb %zmm12, -2064(%rdx) + +// CHECK: vpmovsdb %zmm6, (%rcx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0x31] + vpmovsdb %zmm6, (%rcx) + +// CHECK: vpmovsdb %zmm6, (%rcx) {%k1} +// CHECK: encoding: [0x62,0xf2,0x7e,0x49,0x21,0x31] + vpmovsdb %zmm6, (%rcx) {%k1} + +// CHECK: vpmovsdb %zmm6, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x21,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpmovsdb %zmm6, 291(%rax,%r14,8) + +// CHECK: vpmovsdb %zmm6, 2032(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0x72,0x7f] + vpmovsdb %zmm6, 2032(%rdx) + +// CHECK: vpmovsdb %zmm6, 2048(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0xb2,0x00,0x08,0x00,0x00] + vpmovsdb %zmm6, 2048(%rdx) + +// CHECK: vpmovsdb %zmm6, -2048(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0x72,0x80] + vpmovsdb %zmm6, -2048(%rdx) + +// CHECK: vpmovsdb %zmm6, -2064(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0xb2,0xf0,0xf7,0xff,0xff] + vpmovsdb %zmm6, -2064(%rdx) + +// CHECK: vpmovusdb %zmm23, (%rcx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0x39] + vpmovusdb %zmm23, (%rcx) + +// CHECK: vpmovusdb %zmm23, (%rcx) {%k3} +// CHECK: encoding: [0x62,0xe2,0x7e,0x4b,0x11,0x39] + vpmovusdb %zmm23, (%rcx) {%k3} + +// CHECK: vpmovusdb %zmm23, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x11,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpmovusdb %zmm23, 291(%rax,%r14,8) + +// CHECK: vpmovusdb %zmm23, 2032(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0x7a,0x7f] + vpmovusdb %zmm23, 2032(%rdx) + +// CHECK: vpmovusdb %zmm23, 2048(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0xba,0x00,0x08,0x00,0x00] + vpmovusdb %zmm23, 2048(%rdx) + +// CHECK: vpmovusdb %zmm23, -2048(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0x7a,0x80] + vpmovusdb %zmm23, -2048(%rdx) + +// CHECK: vpmovusdb %zmm23, -2064(%rdx) +// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0xba,0xf0,0xf7,0xff,0xff] + vpmovusdb %zmm23, -2064(%rdx) + +// CHECK: vpmovdw %zmm7, (%rcx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x39] + vpmovdw %zmm7, (%rcx) + +// CHECK: vpmovdw %zmm7, (%rcx) {%k7} +// CHECK: encoding: [0x62,0xf2,0x7e,0x4f,0x33,0x39] + vpmovdw %zmm7, (%rcx) {%k7} + +// CHECK: vpmovdw %zmm7, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x33,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpmovdw %zmm7, 291(%rax,%r14,8) + +// CHECK: vpmovdw %zmm7, 4064(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x7a,0x7f] + vpmovdw %zmm7, 4064(%rdx) + +// CHECK: vpmovdw %zmm7, 4096(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0xba,0x00,0x10,0x00,0x00] + vpmovdw %zmm7, 4096(%rdx) + +// CHECK: vpmovdw %zmm7, -4096(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x7a,0x80] + vpmovdw %zmm7, -4096(%rdx) + +// CHECK: vpmovdw %zmm7, -4128(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0xba,0xe0,0xef,0xff,0xff] + vpmovdw %zmm7, -4128(%rdx) + +// CHECK: vpmovsdw %zmm14, (%rcx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0x31] + vpmovsdw %zmm14, (%rcx) + +// CHECK: vpmovsdw %zmm14, (%rcx) {%k6} +// CHECK: encoding: [0x62,0x72,0x7e,0x4e,0x23,0x31] + vpmovsdw %zmm14, (%rcx) {%k6} + +// CHECK: vpmovsdw %zmm14, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x23,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpmovsdw %zmm14, 291(%rax,%r14,8) + +// CHECK: vpmovsdw %zmm14, 4064(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0x72,0x7f] + vpmovsdw %zmm14, 4064(%rdx) + +// CHECK: vpmovsdw %zmm14, 4096(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0xb2,0x00,0x10,0x00,0x00] + vpmovsdw %zmm14, 4096(%rdx) + +// CHECK: vpmovsdw %zmm14, -4096(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0x72,0x80] + vpmovsdw %zmm14, -4096(%rdx) + +// CHECK: vpmovsdw %zmm14, -4128(%rdx) +// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0xb2,0xe0,0xef,0xff,0xff] + vpmovsdw %zmm14, -4128(%rdx) + +// CHECK: vpmovusdw %zmm5, (%rcx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x29] + vpmovusdw %zmm5, (%rcx) + +// CHECK: vpmovusdw %zmm5, (%rcx) {%k3} +// CHECK: encoding: [0x62,0xf2,0x7e,0x4b,0x13,0x29] + vpmovusdw %zmm5, (%rcx) {%k3} + +// CHECK: vpmovusdw %zmm5, 291(%rax,%r14,8) +// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x13,0xac,0xf0,0x23,0x01,0x00,0x00] + vpmovusdw %zmm5, 291(%rax,%r14,8) + +// CHECK: vpmovusdw %zmm5, 4064(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x6a,0x7f] + vpmovusdw %zmm5, 4064(%rdx) + +// CHECK: vpmovusdw %zmm5, 4096(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0xaa,0x00,0x10,0x00,0x00] + vpmovusdw %zmm5, 4096(%rdx) + +// CHECK: vpmovusdw %zmm5, -4096(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x6a,0x80] + vpmovusdw %zmm5, -4096(%rdx) + +// CHECK: vpmovusdw %zmm5, -4128(%rdx) +// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0xaa,0xe0,0xef,0xff,0xff] + vpmovusdw %zmm5, -4128(%rdx) + // CHECK: vinserti32x4 // CHECK: encoding: [0x62,0xa3,0x55,0x48,0x38,0xcd,0x01] vinserti32x4 $1, %xmm21, %zmm5, %zmm17 -- 2.34.1