diff options
Diffstat (limited to 'test/MC/X86')
-rw-r--r-- | test/MC/X86/cstexpr-gotpcrel.ll | 78 | ||||
-rw-r--r-- | test/MC/X86/expand-var.s | 18 | ||||
-rw-r--r-- | test/MC/X86/i386-darwin-frame-register.ll | 6 | ||||
-rw-r--r-- | test/MC/X86/intel-syntax-avx512.s | 29 | ||||
-rw-r--r-- | test/MC/X86/invalid-sleb.s | 5 | ||||
-rw-r--r-- | test/MC/X86/x86-64-avx512bw.s | 261 | ||||
-rw-r--r-- | test/MC/X86/x86-64-avx512bw_vl.s | 520 | ||||
-rw-r--r-- | test/MC/X86/x86-64-avx512f_vl.s | 2304 | ||||
-rw-r--r-- | test/MC/X86/x86_64-avx-encoding.s | 4 |
9 files changed, 3144 insertions, 81 deletions
diff --git a/test/MC/X86/cstexpr-gotpcrel.ll b/test/MC/X86/cstexpr-gotpcrel.ll deleted file mode 100644 index 82da870..0000000 --- a/test/MC/X86/cstexpr-gotpcrel.ll +++ /dev/null @@ -1,78 +0,0 @@ -; RUN: llc -mtriple=x86_64-apple-darwin %s -o %t -; RUN: FileCheck %s < %t -; RUN: FileCheck %s -check-prefix=GOT-EQUIV < %t - -; GOT equivalent globals references can be replaced by the GOT entry of the -; final symbol instead. - -%struct.data = type { i32, %struct.anon } -%struct.anon = type { i32, i32 } - -; Check that these got equivalent symbols are never emitted or used -; GOT-EQUIV-NOT: _localgotequiv -; GOT-EQUIV-NOT: _extgotequiv -@localfoo = global i32 42 -@localgotequiv = private unnamed_addr constant i32* @localfoo - -@extfoo = external global i32 -@extgotequiv = private unnamed_addr constant i32* @extfoo - -; Don't replace GOT equivalent usage within instructions and emit the GOT -; equivalent since it can't be replaced by the GOT entry. @bargotequiv is -; used by an instruction inside @t0. -; -; CHECK: l_bargotequiv: -; CHECK-NEXT: .quad _extbar -@extbar = external global i32 -@bargotequiv = private unnamed_addr constant i32* @extbar - -@table = global [4 x %struct.data] [ -; CHECK-LABEL: _table - %struct.data { i32 1, %struct.anon { i32 2, i32 3 } }, -; Test GOT equivalent usage inside nested constant arrays. -; CHECK: .long 5 -; CHECK-NOT: .long _localgotequiv-(_table+20) -; CHECK-NEXT: .long _localfoo@GOTPCREL+4 - %struct.data { i32 4, %struct.anon { i32 5, - i32 trunc (i64 sub (i64 ptrtoint (i32** @localgotequiv to i64), - i64 ptrtoint (i32* getelementptr inbounds ([4 x %struct.data]* @table, i32 0, i64 1, i32 1, i32 1) to i64)) - to i32)} - }, -; CHECK: .long 5 -; CHECK-NOT: _extgotequiv-(_table+32) -; CHECK-NEXT: .long _extfoo@GOTPCREL+4 - %struct.data { i32 4, %struct.anon { i32 5, - i32 trunc (i64 sub (i64 ptrtoint (i32** @extgotequiv to i64), - i64 ptrtoint (i32* getelementptr inbounds ([4 x %struct.data]* @table, i32 0, i64 2, i32 1, i32 1) to i64)) - to i32)} - }, -; Test support for arbitrary constants into the GOTPCREL offset -; CHECK: .long 5 -; CHECK-NOT: _extgotequiv-(_table+44) -; CHECK-NEXT: .long _extfoo@GOTPCREL+28 - %struct.data { i32 4, %struct.anon { i32 5, - i32 add (i32 trunc (i64 sub (i64 ptrtoint (i32** @extgotequiv to i64), - i64 ptrtoint (i32* getelementptr inbounds ([4 x %struct.data]* @table, i32 0, i64 3, i32 1, i32 1) to i64)) - to i32), i32 24)} - } -], align 16 - -; Test multiple uses of GOT equivalents. -; CHECK-LABEL: _delta -; CHECK: .long _extfoo@GOTPCREL+4 -@delta = global i32 trunc (i64 sub (i64 ptrtoint (i32** @extgotequiv to i64), - i64 ptrtoint (i32* @delta to i64)) - to i32) - -; CHECK-LABEL: _deltaplus: -; CHECK: .long _localfoo@GOTPCREL+59 -@deltaplus = global i32 add (i32 trunc (i64 sub (i64 ptrtoint (i32** @localgotequiv to i64), - i64 ptrtoint (i32* @deltaplus to i64)) - to i32), i32 55) - -define i32 @t0(i32 %a) { - %x = add i32 trunc (i64 sub (i64 ptrtoint (i32** @bargotequiv to i64), - i64 ptrtoint (i32 (i32)* @t0 to i64)) - to i32), %a - ret i32 %x -} diff --git a/test/MC/X86/expand-var.s b/test/MC/X86/expand-var.s new file mode 100644 index 0000000..ef62d8a --- /dev/null +++ b/test/MC/X86/expand-var.s @@ -0,0 +1,18 @@ +// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux < %s | llvm-readobj -r | FileCheck %s + +// CHECK: Section (2) .rela.text { +// CHECK-NEXT: 0x0 R_X86_64_32 d 0x0 +// CHECK-NEXT: } + +a: + b = a + c = a + d = a + .weak d + .long d + (b - c) + + +a2: + .weak b2 + b2 = a2 + c2 = b2 - a2 diff --git a/test/MC/X86/i386-darwin-frame-register.ll b/test/MC/X86/i386-darwin-frame-register.ll index dd8c88d..b382a70 100644 --- a/test/MC/X86/i386-darwin-frame-register.ll +++ b/test/MC/X86/i386-darwin-frame-register.ll @@ -29,10 +29,10 @@ attributes #0 = { nounwind } !llvm.module.flags = !{!3, !4, !5} !llvm.ident = !{!6} -!0 = !{!"0x11\0012\00clang version 3.7.0 (trunk 230514) (llvm/trunk 230518)\000\00\000\00\001", !1, !2, !2, !2, !2, !2} ; [ DW_TAG_compile_unit ] [/tmp/foo.c] [DW_LANG_C99] -!1 = !{!"foo.c", !"/tmp"} +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.7.0 (trunk 230514) (llvm/trunk 230518)", isOptimized: false, emissionKind: 1, file: !1, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2) +!1 = !MDFile(filename: "foo.c", directory: "/tmp") !2 = !{} !3 = !{i32 2, !"Dwarf Version", i32 2} -!4 = !{i32 2, !"Debug Info Version", i32 2} +!4 = !{i32 2, !"Debug Info Version", i32 3} !5 = !{i32 1, !"PIC Level", i32 2} !6 = !{!"clang version 3.7.0 (trunk 230514) (llvm/trunk 230518)"} diff --git a/test/MC/X86/intel-syntax-avx512.s b/test/MC/X86/intel-syntax-avx512.s index b382994..af4e98c 100644 --- a/test/MC/X86/intel-syntax-avx512.s +++ b/test/MC/X86/intel-syntax-avx512.s @@ -3,3 +3,32 @@ // CHECK: vaddps (%rax), %zmm1, %zmm1 // CHECK: encoding: [0x62,0xf1,0x74,0x48,0x58,0x08] vaddps zmm1, zmm1, zmmword ptr [rax] + +// CHECK: vaddpd %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x48,0x58,0xca] +vaddpd zmm1,zmm1,zmm2 + +// CHECK: vaddpd %zmm2, %zmm1, %zmm1 {%k5} +// CHECK: encoding: [0x62,0xf1,0xf5,0x4d,0x58,0xca] +vaddpd zmm1{k5},zmm1,zmm2 + +// CHECK: vaddpd %zmm2, %zmm1, %zmm1 {%k5} {z} +// CHECK: encoding: [0x62,0xf1,0xf5,0xcd,0x58,0xca] +vaddpd zmm1{k5} {z},zmm1,zmm2 + +// CHECK: vaddpd {rn-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x18,0x58,0xca] +vaddpd zmm1,zmm1,zmm2,{rn-sae} + +// CHECK: vaddpd {ru-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x58,0x58,0xca] +vaddpd zmm1,zmm1,zmm2,{ru-sae} + +// CHECK: vaddpd {rd-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x38,0x58,0xca] +vaddpd zmm1,zmm1,zmm2,{rd-sae} + +// CHECK: vaddpd {rz-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x78,0x58,0xca] +vaddpd zmm1,zmm1,zmm2,{rz-sae} + diff --git a/test/MC/X86/invalid-sleb.s b/test/MC/X86/invalid-sleb.s new file mode 100644 index 0000000..ad27444 --- /dev/null +++ b/test/MC/X86/invalid-sleb.s @@ -0,0 +1,5 @@ +// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o %t 2>&1 | FileCheck %s + +// CHECK: sleb128 and uleb128 expressions must be absolute + + .sleb128 undefined diff --git a/test/MC/X86/x86-64-avx512bw.s b/test/MC/X86/x86-64-avx512bw.s index 7aa7afa..0d055b1 100644 --- a/test/MC/X86/x86-64-avx512bw.s +++ b/test/MC/X86/x86-64-avx512bw.s @@ -1747,3 +1747,264 @@ // CHECK: vpcmpnleuw -8256(%rdx), %zmm22, %k4 // CHECK: encoding: [0x62,0xf3,0xcd,0x40,0x3e,0xa2,0xc0,0xdf,0xff,0xff,0x06] vpcmpnleuw -8256(%rdx), %zmm22, %k4 + +// CHECK: vpsllw %xmm24, %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x01,0x55,0x40,0xf1,0xc0] + vpsllw %xmm24, %zmm21, %zmm24 + +// CHECK: vpsllw %xmm24, %zmm21, %zmm24 {%k2} +// CHECK: encoding: [0x62,0x01,0x55,0x42,0xf1,0xc0] + vpsllw %xmm24, %zmm21, %zmm24 {%k2} + +// CHECK: vpsllw %xmm24, %zmm21, %zmm24 {%k2} {z} +// CHECK: encoding: [0x62,0x01,0x55,0xc2,0xf1,0xc0] + vpsllw %xmm24, %zmm21, %zmm24 {%k2} {z} + +// CHECK: vpsllw (%rcx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x61,0x55,0x40,0xf1,0x01] + vpsllw (%rcx), %zmm21, %zmm24 + +// CHECK: vpsllw 291(%rax,%r14,8), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x21,0x55,0x40,0xf1,0x84,0xf0,0x23,0x01,0x00,0x00] + vpsllw 291(%rax,%r14,8), %zmm21, %zmm24 + +// CHECK: vpsllw 2032(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x61,0x55,0x40,0xf1,0x42,0x7f] + vpsllw 2032(%rdx), %zmm21, %zmm24 + +// CHECK: vpsllw 2048(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x61,0x55,0x40,0xf1,0x82,0x00,0x08,0x00,0x00] + vpsllw 2048(%rdx), %zmm21, %zmm24 + +// CHECK: vpsllw -2048(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x61,0x55,0x40,0xf1,0x42,0x80] + vpsllw -2048(%rdx), %zmm21, %zmm24 + +// CHECK: vpsllw -2064(%rdx), %zmm21, %zmm24 +// CHECK: encoding: [0x62,0x61,0x55,0x40,0xf1,0x82,0xf0,0xf7,0xff,0xff] + vpsllw -2064(%rdx), %zmm21, %zmm24 + +// CHECK: vpsraw %xmm21, %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x21,0x25,0x40,0xe1,0xe5] + vpsraw %xmm21, %zmm27, %zmm28 + +// CHECK: vpsraw %xmm21, %zmm27, %zmm28 {%k4} +// CHECK: encoding: [0x62,0x21,0x25,0x44,0xe1,0xe5] + vpsraw %xmm21, %zmm27, %zmm28 {%k4} + +// CHECK: vpsraw %xmm21, %zmm27, %zmm28 {%k4} {z} +// CHECK: encoding: [0x62,0x21,0x25,0xc4,0xe1,0xe5] + vpsraw %xmm21, %zmm27, %zmm28 {%k4} {z} + +// CHECK: vpsraw (%rcx), %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe1,0x21] + vpsraw (%rcx), %zmm27, %zmm28 + +// CHECK: vpsraw 291(%rax,%r14,8), %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x21,0x25,0x40,0xe1,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsraw 291(%rax,%r14,8), %zmm27, %zmm28 + +// CHECK: vpsraw 2032(%rdx), %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe1,0x62,0x7f] + vpsraw 2032(%rdx), %zmm27, %zmm28 + +// CHECK: vpsraw 2048(%rdx), %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe1,0xa2,0x00,0x08,0x00,0x00] + vpsraw 2048(%rdx), %zmm27, %zmm28 + +// CHECK: vpsraw -2048(%rdx), %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe1,0x62,0x80] + vpsraw -2048(%rdx), %zmm27, %zmm28 + +// CHECK: vpsraw -2064(%rdx), %zmm27, %zmm28 +// CHECK: encoding: [0x62,0x61,0x25,0x40,0xe1,0xa2,0xf0,0xf7,0xff,0xff] + vpsraw -2064(%rdx), %zmm27, %zmm28 + +// CHECK: vpsrlw %xmm22, %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xa1,0x5d,0x40,0xd1,0xfe] + vpsrlw %xmm22, %zmm20, %zmm23 + +// CHECK: vpsrlw %xmm22, %zmm20, %zmm23 {%k6} +// CHECK: encoding: [0x62,0xa1,0x5d,0x46,0xd1,0xfe] + vpsrlw %xmm22, %zmm20, %zmm23 {%k6} + +// CHECK: vpsrlw %xmm22, %zmm20, %zmm23 {%k6} {z} +// CHECK: encoding: [0x62,0xa1,0x5d,0xc6,0xd1,0xfe] + vpsrlw %xmm22, %zmm20, %zmm23 {%k6} {z} + +// CHECK: vpsrlw (%rcx), %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x5d,0x40,0xd1,0x39] + vpsrlw (%rcx), %zmm20, %zmm23 + +// CHECK: vpsrlw 291(%rax,%r14,8), %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xa1,0x5d,0x40,0xd1,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpsrlw 291(%rax,%r14,8), %zmm20, %zmm23 + +// CHECK: vpsrlw 2032(%rdx), %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x5d,0x40,0xd1,0x7a,0x7f] + vpsrlw 2032(%rdx), %zmm20, %zmm23 + +// CHECK: vpsrlw 2048(%rdx), %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x5d,0x40,0xd1,0xba,0x00,0x08,0x00,0x00] + vpsrlw 2048(%rdx), %zmm20, %zmm23 + +// CHECK: vpsrlw -2048(%rdx), %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x5d,0x40,0xd1,0x7a,0x80] + vpsrlw -2048(%rdx), %zmm20, %zmm23 + +// CHECK: vpsrlw -2064(%rdx), %zmm20, %zmm23 +// CHECK: encoding: [0x62,0xe1,0x5d,0x40,0xd1,0xba,0xf0,0xf7,0xff,0xff] + vpsrlw -2064(%rdx), %zmm20, %zmm23 + +// CHECK: vpsrlw $171, %zmm26, %zmm25 +// CHECK: encoding: [0x62,0x91,0x35,0x40,0x71,0xd2,0xab] + vpsrlw $171, %zmm26, %zmm25 + +// CHECK: vpsrlw $171, %zmm26, %zmm25 {%k6} +// CHECK: encoding: [0x62,0x91,0x35,0x46,0x71,0xd2,0xab] + vpsrlw $171, %zmm26, %zmm25 {%k6} + +// CHECK: vpsrlw $171, %zmm26, %zmm25 {%k6} {z} +// CHECK: encoding: [0x62,0x91,0x35,0xc6,0x71,0xd2,0xab] + vpsrlw $171, %zmm26, %zmm25 {%k6} {z} + +// CHECK: vpsrlw $123, %zmm26, %zmm25 +// CHECK: encoding: [0x62,0x91,0x35,0x40,0x71,0xd2,0x7b] + vpsrlw $123, %zmm26, %zmm25 + +// CHECK: vpsrlw $123, (%rcx), %zmm25 +// CHECK: encoding: [0x62,0xf1,0x35,0x40,0x71,0x11,0x7b] + vpsrlw $123, (%rcx), %zmm25 + +// CHECK: vpsrlw $123, 291(%rax,%r14,8), %zmm25 +// CHECK: encoding: [0x62,0xb1,0x35,0x40,0x71,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrlw $123, 291(%rax,%r14,8), %zmm25 + +// CHECK: vpsrlw $123, 8128(%rdx), %zmm25 +// CHECK: encoding: [0x62,0xf1,0x35,0x40,0x71,0x52,0x7f,0x7b] + vpsrlw $123, 8128(%rdx), %zmm25 + +// CHECK: vpsrlw $123, 8192(%rdx), %zmm25 +// CHECK: encoding: [0x62,0xf1,0x35,0x40,0x71,0x92,0x00,0x20,0x00,0x00,0x7b] + vpsrlw $123, 8192(%rdx), %zmm25 + +// CHECK: vpsrlw $123, -8192(%rdx), %zmm25 +// CHECK: encoding: [0x62,0xf1,0x35,0x40,0x71,0x52,0x80,0x7b] + vpsrlw $123, -8192(%rdx), %zmm25 + +// CHECK: vpsrlw $123, -8256(%rdx), %zmm25 +// CHECK: encoding: [0x62,0xf1,0x35,0x40,0x71,0x92,0xc0,0xdf,0xff,0xff,0x7b] + vpsrlw $123, -8256(%rdx), %zmm25 + +// CHECK: vpsraw $171, %zmm29, %zmm28 +// CHECK: encoding: [0x62,0x91,0x1d,0x40,0x71,0xe5,0xab] + vpsraw $171, %zmm29, %zmm28 + +// CHECK: vpsraw $171, %zmm29, %zmm28 {%k4} +// CHECK: encoding: [0x62,0x91,0x1d,0x44,0x71,0xe5,0xab] + vpsraw $171, %zmm29, %zmm28 {%k4} + +// CHECK: vpsraw $171, %zmm29, %zmm28 {%k4} {z} +// CHECK: encoding: [0x62,0x91,0x1d,0xc4,0x71,0xe5,0xab] + vpsraw $171, %zmm29, %zmm28 {%k4} {z} + +// CHECK: vpsraw $123, %zmm29, %zmm28 +// CHECK: encoding: [0x62,0x91,0x1d,0x40,0x71,0xe5,0x7b] + vpsraw $123, %zmm29, %zmm28 + +// CHECK: vpsraw $123, (%rcx), %zmm28 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0x71,0x21,0x7b] + vpsraw $123, (%rcx), %zmm28 + +// CHECK: vpsraw $123, 291(%rax,%r14,8), %zmm28 +// CHECK: encoding: [0x62,0xb1,0x1d,0x40,0x71,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsraw $123, 291(%rax,%r14,8), %zmm28 + +// CHECK: vpsraw $123, 8128(%rdx), %zmm28 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0x71,0x62,0x7f,0x7b] + vpsraw $123, 8128(%rdx), %zmm28 + +// CHECK: vpsraw $123, 8192(%rdx), %zmm28 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0x71,0xa2,0x00,0x20,0x00,0x00,0x7b] + vpsraw $123, 8192(%rdx), %zmm28 + +// CHECK: vpsraw $123, -8192(%rdx), %zmm28 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0x71,0x62,0x80,0x7b] + vpsraw $123, -8192(%rdx), %zmm28 + +// CHECK: vpsraw $123, -8256(%rdx), %zmm28 +// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0x71,0xa2,0xc0,0xdf,0xff,0xff,0x7b] + vpsraw $123, -8256(%rdx), %zmm28 + +// CHECK: vpsrlvw %zmm21, %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xa2,0xed,0x40,0x10,0xcd] + vpsrlvw %zmm21, %zmm18, %zmm17 + +// CHECK: vpsrlvw %zmm21, %zmm18, %zmm17 {%k6} +// CHECK: encoding: [0x62,0xa2,0xed,0x46,0x10,0xcd] + vpsrlvw %zmm21, %zmm18, %zmm17 {%k6} + +// CHECK: vpsrlvw %zmm21, %zmm18, %zmm17 {%k6} {z} +// CHECK: encoding: [0x62,0xa2,0xed,0xc6,0x10,0xcd] + vpsrlvw %zmm21, %zmm18, %zmm17 {%k6} {z} + +// CHECK: vpsrlvw (%rcx), %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xe2,0xed,0x40,0x10,0x09] + vpsrlvw (%rcx), %zmm18, %zmm17 + +// CHECK: vpsrlvw 291(%rax,%r14,8), %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xa2,0xed,0x40,0x10,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpsrlvw 291(%rax,%r14,8), %zmm18, %zmm17 + +// CHECK: vpsrlvw 8128(%rdx), %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xe2,0xed,0x40,0x10,0x4a,0x7f] + vpsrlvw 8128(%rdx), %zmm18, %zmm17 + +// CHECK: vpsrlvw 8192(%rdx), %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xe2,0xed,0x40,0x10,0x8a,0x00,0x20,0x00,0x00] + vpsrlvw 8192(%rdx), %zmm18, %zmm17 + +// CHECK: vpsrlvw -8192(%rdx), %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xe2,0xed,0x40,0x10,0x4a,0x80] + vpsrlvw -8192(%rdx), %zmm18, %zmm17 + +// CHECK: vpsrlvw -8256(%rdx), %zmm18, %zmm17 +// CHECK: encoding: [0x62,0xe2,0xed,0x40,0x10,0x8a,0xc0,0xdf,0xff,0xff] + vpsrlvw -8256(%rdx), %zmm18, %zmm17 + +// CHECK: vpsravw %zmm20, %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xa2,0x95,0x40,0x11,0xdc] + vpsravw %zmm20, %zmm29, %zmm19 + +// CHECK: vpsravw %zmm20, %zmm29, %zmm19 {%k7} +// CHECK: encoding: [0x62,0xa2,0x95,0x47,0x11,0xdc] + vpsravw %zmm20, %zmm29, %zmm19 {%k7} + +// CHECK: vpsravw %zmm20, %zmm29, %zmm19 {%k7} {z} +// CHECK: encoding: [0x62,0xa2,0x95,0xc7,0x11,0xdc] + vpsravw %zmm20, %zmm29, %zmm19 {%k7} {z} + +// CHECK: vpsravw (%rcx), %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xe2,0x95,0x40,0x11,0x19] + vpsravw (%rcx), %zmm29, %zmm19 + +// CHECK: vpsravw 291(%rax,%r14,8), %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xa2,0x95,0x40,0x11,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpsravw 291(%rax,%r14,8), %zmm29, %zmm19 + +// CHECK: vpsravw 8128(%rdx), %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xe2,0x95,0x40,0x11,0x5a,0x7f] + vpsravw 8128(%rdx), %zmm29, %zmm19 + +// CHECK: vpsravw 8192(%rdx), %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xe2,0x95,0x40,0x11,0x9a,0x00,0x20,0x00,0x00] + vpsravw 8192(%rdx), %zmm29, %zmm19 + +// CHECK: vpsravw -8192(%rdx), %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xe2,0x95,0x40,0x11,0x5a,0x80] + vpsravw -8192(%rdx), %zmm29, %zmm19 + +// CHECK: vpsravw -8256(%rdx), %zmm29, %zmm19 +// CHECK: encoding: [0x62,0xe2,0x95,0x40,0x11,0x9a,0xc0,0xdf,0xff,0xff] + vpsravw -8256(%rdx), %zmm29, %zmm19 + diff --git a/test/MC/X86/x86-64-avx512bw_vl.s b/test/MC/X86/x86-64-avx512bw_vl.s index e847550..3f45582 100644 --- a/test/MC/X86/x86-64-avx512bw_vl.s +++ b/test/MC/X86/x86-64-avx512bw_vl.s @@ -1783,3 +1783,523 @@ // CHECK: vmovdqu16 %ymm29, -4128(%rdx) // CHECK: encoding: [0x62,0x61,0xff,0x28,0x7f,0xaa,0xe0,0xef,0xff,0xff] vmovdqu16 %ymm29, -4128(%rdx) + +// CHECK: vpsllw %xmm26, %xmm23, %xmm19 +// CHECK: encoding: [0x62,0x81,0x45,0x00,0xf1,0xda] + vpsllw %xmm26, %xmm23, %xmm19 + +// CHECK: vpsllw %xmm26, %xmm23, %xmm19 {%k7} +// CHECK: encoding: [0x62,0x81,0x45,0x07,0xf1,0xda] + vpsllw %xmm26, %xmm23, %xmm19 {%k7} + +// CHECK: vpsllw %xmm26, %xmm23, %xmm19 {%k7} {z} +// CHECK: encoding: [0x62,0x81,0x45,0x87,0xf1,0xda] + vpsllw %xmm26, %xmm23, %xmm19 {%k7} {z} + +// CHECK: vpsllw (%rcx), %xmm23, %xmm19 +// CHECK: encoding: [0x62,0xe1,0x45,0x00,0xf1,0x19] + vpsllw (%rcx), %xmm23, %xmm19 + +// CHECK: vpsllw 291(%rax,%r14,8), %xmm23, %xmm19 +// CHECK: encoding: [0x62,0xa1,0x45,0x00,0xf1,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpsllw 291(%rax,%r14,8), %xmm23, %xmm19 + +// CHECK: vpsllw 2032(%rdx), %xmm23, %xmm19 +// CHECK: encoding: [0x62,0xe1,0x45,0x00,0xf1,0x5a,0x7f] + vpsllw 2032(%rdx), %xmm23, %xmm19 + +// CHECK: vpsllw 2048(%rdx), %xmm23, %xmm19 +// CHECK: encoding: [0x62,0xe1,0x45,0x00,0xf1,0x9a,0x00,0x08,0x00,0x00] + vpsllw 2048(%rdx), %xmm23, %xmm19 + +// CHECK: vpsllw -2048(%rdx), %xmm23, %xmm19 +// CHECK: encoding: [0x62,0xe1,0x45,0x00,0xf1,0x5a,0x80] + vpsllw -2048(%rdx), %xmm23, %xmm19 + +// CHECK: vpsllw -2064(%rdx), %xmm23, %xmm19 +// CHECK: encoding: [0x62,0xe1,0x45,0x00,0xf1,0x9a,0xf0,0xf7,0xff,0xff] + vpsllw -2064(%rdx), %xmm23, %xmm19 + +// CHECK: vpsllw %xmm26, %ymm21, %ymm20 +// CHECK: encoding: [0x62,0x81,0x55,0x20,0xf1,0xe2] + vpsllw %xmm26, %ymm21, %ymm20 + +// CHECK: vpsllw %xmm26, %ymm21, %ymm20 {%k7} +// CHECK: encoding: [0x62,0x81,0x55,0x27,0xf1,0xe2] + vpsllw %xmm26, %ymm21, %ymm20 {%k7} + +// CHECK: vpsllw %xmm26, %ymm21, %ymm20 {%k7} {z} +// CHECK: encoding: [0x62,0x81,0x55,0xa7,0xf1,0xe2] + vpsllw %xmm26, %ymm21, %ymm20 {%k7} {z} + +// CHECK: vpsllw (%rcx), %ymm21, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xf1,0x21] + vpsllw (%rcx), %ymm21, %ymm20 + +// CHECK: vpsllw 291(%rax,%r14,8), %ymm21, %ymm20 +// CHECK: encoding: [0x62,0xa1,0x55,0x20,0xf1,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsllw 291(%rax,%r14,8), %ymm21, %ymm20 + +// CHECK: vpsllw 2032(%rdx), %ymm21, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xf1,0x62,0x7f] + vpsllw 2032(%rdx), %ymm21, %ymm20 + +// CHECK: vpsllw 2048(%rdx), %ymm21, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xf1,0xa2,0x00,0x08,0x00,0x00] + vpsllw 2048(%rdx), %ymm21, %ymm20 + +// CHECK: vpsllw -2048(%rdx), %ymm21, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xf1,0x62,0x80] + vpsllw -2048(%rdx), %ymm21, %ymm20 + +// CHECK: vpsllw -2064(%rdx), %ymm21, %ymm20 +// CHECK: encoding: [0x62,0xe1,0x55,0x20,0xf1,0xa2,0xf0,0xf7,0xff,0xff] + vpsllw -2064(%rdx), %ymm21, %ymm20 + +// CHECK: vpsraw %xmm28, %xmm28, %xmm17 +// CHECK: encoding: [0x62,0x81,0x1d,0x00,0xe1,0xcc] + vpsraw %xmm28, %xmm28, %xmm17 + +// CHECK: vpsraw %xmm28, %xmm28, %xmm17 {%k1} +// CHECK: encoding: [0x62,0x81,0x1d,0x01,0xe1,0xcc] + vpsraw %xmm28, %xmm28, %xmm17 {%k1} + +// CHECK: vpsraw %xmm28, %xmm28, %xmm17 {%k1} {z} +// CHECK: encoding: [0x62,0x81,0x1d,0x81,0xe1,0xcc] + vpsraw %xmm28, %xmm28, %xmm17 {%k1} {z} + +// CHECK: vpsraw (%rcx), %xmm28, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0xe1,0x09] + vpsraw (%rcx), %xmm28, %xmm17 + +// CHECK: vpsraw 291(%rax,%r14,8), %xmm28, %xmm17 +// CHECK: encoding: [0x62,0xa1,0x1d,0x00,0xe1,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpsraw 291(%rax,%r14,8), %xmm28, %xmm17 + +// CHECK: vpsraw 2032(%rdx), %xmm28, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0xe1,0x4a,0x7f] + vpsraw 2032(%rdx), %xmm28, %xmm17 + +// CHECK: vpsraw 2048(%rdx), %xmm28, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0xe1,0x8a,0x00,0x08,0x00,0x00] + vpsraw 2048(%rdx), %xmm28, %xmm17 + +// CHECK: vpsraw -2048(%rdx), %xmm28, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0xe1,0x4a,0x80] + vpsraw -2048(%rdx), %xmm28, %xmm17 + +// CHECK: vpsraw -2064(%rdx), %xmm28, %xmm17 +// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0xe1,0x8a,0xf0,0xf7,0xff,0xff] + vpsraw -2064(%rdx), %xmm28, %xmm17 + +// CHECK: vpsraw %xmm19, %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xa1,0x2d,0x20,0xe1,0xd3] + vpsraw %xmm19, %ymm26, %ymm18 + +// CHECK: vpsraw %xmm19, %ymm26, %ymm18 {%k7} +// CHECK: encoding: [0x62,0xa1,0x2d,0x27,0xe1,0xd3] + vpsraw %xmm19, %ymm26, %ymm18 {%k7} + +// CHECK: vpsraw %xmm19, %ymm26, %ymm18 {%k7} {z} +// CHECK: encoding: [0x62,0xa1,0x2d,0xa7,0xe1,0xd3] + vpsraw %xmm19, %ymm26, %ymm18 {%k7} {z} + +// CHECK: vpsraw (%rcx), %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe1,0x11] + vpsraw (%rcx), %ymm26, %ymm18 + +// CHECK: vpsraw 291(%rax,%r14,8), %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xa1,0x2d,0x20,0xe1,0x94,0xf0,0x23,0x01,0x00,0x00] + vpsraw 291(%rax,%r14,8), %ymm26, %ymm18 + +// CHECK: vpsraw 2032(%rdx), %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe1,0x52,0x7f] + vpsraw 2032(%rdx), %ymm26, %ymm18 + +// CHECK: vpsraw 2048(%rdx), %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe1,0x92,0x00,0x08,0x00,0x00] + vpsraw 2048(%rdx), %ymm26, %ymm18 + +// CHECK: vpsraw -2048(%rdx), %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe1,0x52,0x80] + vpsraw -2048(%rdx), %ymm26, %ymm18 + +// CHECK: vpsraw -2064(%rdx), %ymm26, %ymm18 +// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0xe1,0x92,0xf0,0xf7,0xff,0xff] + vpsraw -2064(%rdx), %ymm26, %ymm18 + +// CHECK: vpsrlw %xmm27, %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x01,0x15,0x00,0xd1,0xf3] + vpsrlw %xmm27, %xmm29, %xmm30 + +// CHECK: vpsrlw %xmm27, %xmm29, %xmm30 {%k1} +// CHECK: encoding: [0x62,0x01,0x15,0x01,0xd1,0xf3] + vpsrlw %xmm27, %xmm29, %xmm30 {%k1} + +// CHECK: vpsrlw %xmm27, %xmm29, %xmm30 {%k1} {z} +// CHECK: encoding: [0x62,0x01,0x15,0x81,0xd1,0xf3] + vpsrlw %xmm27, %xmm29, %xmm30 {%k1} {z} + +// CHECK: vpsrlw (%rcx), %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x61,0x15,0x00,0xd1,0x31] + vpsrlw (%rcx), %xmm29, %xmm30 + +// CHECK: vpsrlw 291(%rax,%r14,8), %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x21,0x15,0x00,0xd1,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsrlw 291(%rax,%r14,8), %xmm29, %xmm30 + +// CHECK: vpsrlw 2032(%rdx), %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x61,0x15,0x00,0xd1,0x72,0x7f] + vpsrlw 2032(%rdx), %xmm29, %xmm30 + +// CHECK: vpsrlw 2048(%rdx), %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x61,0x15,0x00,0xd1,0xb2,0x00,0x08,0x00,0x00] + vpsrlw 2048(%rdx), %xmm29, %xmm30 + +// CHECK: vpsrlw -2048(%rdx), %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x61,0x15,0x00,0xd1,0x72,0x80] + vpsrlw -2048(%rdx), %xmm29, %xmm30 + +// CHECK: vpsrlw -2064(%rdx), %xmm29, %xmm30 +// CHECK: encoding: [0x62,0x61,0x15,0x00,0xd1,0xb2,0xf0,0xf7,0xff,0xff] + vpsrlw -2064(%rdx), %xmm29, %xmm30 + +// CHECK: vpsrlw %xmm27, %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x01,0x6d,0x20,0xd1,0xe3] + vpsrlw %xmm27, %ymm18, %ymm28 + +// CHECK: vpsrlw %xmm27, %ymm18, %ymm28 {%k2} +// CHECK: encoding: [0x62,0x01,0x6d,0x22,0xd1,0xe3] + vpsrlw %xmm27, %ymm18, %ymm28 {%k2} + +// CHECK: vpsrlw %xmm27, %ymm18, %ymm28 {%k2} {z} +// CHECK: encoding: [0x62,0x01,0x6d,0xa2,0xd1,0xe3] + vpsrlw %xmm27, %ymm18, %ymm28 {%k2} {z} + +// CHECK: vpsrlw (%rcx), %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd1,0x21] + vpsrlw (%rcx), %ymm18, %ymm28 + +// CHECK: vpsrlw 291(%rax,%r14,8), %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x21,0x6d,0x20,0xd1,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsrlw 291(%rax,%r14,8), %ymm18, %ymm28 + +// CHECK: vpsrlw 2032(%rdx), %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd1,0x62,0x7f] + vpsrlw 2032(%rdx), %ymm18, %ymm28 + +// CHECK: vpsrlw 2048(%rdx), %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd1,0xa2,0x00,0x08,0x00,0x00] + vpsrlw 2048(%rdx), %ymm18, %ymm28 + +// CHECK: vpsrlw -2048(%rdx), %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd1,0x62,0x80] + vpsrlw -2048(%rdx), %ymm18, %ymm28 + +// CHECK: vpsrlw -2064(%rdx), %ymm18, %ymm28 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd1,0xa2,0xf0,0xf7,0xff,0xff] + vpsrlw -2064(%rdx), %ymm18, %ymm28 + +// CHECK: vpsrlw $171, %xmm21, %xmm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x00,0x71,0xd5,0xab] + vpsrlw $171, %xmm21, %xmm22 + +// CHECK: vpsrlw $171, %xmm21, %xmm22 {%k7} +// CHECK: encoding: [0x62,0xb1,0x4d,0x07,0x71,0xd5,0xab] + vpsrlw $171, %xmm21, %xmm22 {%k7} + +// CHECK: vpsrlw $171, %xmm21, %xmm22 {%k7} {z} +// CHECK: encoding: [0x62,0xb1,0x4d,0x87,0x71,0xd5,0xab] + vpsrlw $171, %xmm21, %xmm22 {%k7} {z} + +// CHECK: vpsrlw $123, %xmm21, %xmm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x00,0x71,0xd5,0x7b] + vpsrlw $123, %xmm21, %xmm22 + +// CHECK: vpsrlw $123, (%rcx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x11,0x7b] + vpsrlw $123, (%rcx), %xmm22 + +// CHECK: vpsrlw $123, 291(%rax,%r14,8), %xmm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x00,0x71,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrlw $123, 291(%rax,%r14,8), %xmm22 + +// CHECK: vpsrlw $123, 2032(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x52,0x7f,0x7b] + vpsrlw $123, 2032(%rdx), %xmm22 + +// CHECK: vpsrlw $123, 2048(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x92,0x00,0x08,0x00,0x00,0x7b] + vpsrlw $123, 2048(%rdx), %xmm22 + +// CHECK: vpsrlw $123, -2048(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x52,0x80,0x7b] + vpsrlw $123, -2048(%rdx), %xmm22 + +// CHECK: vpsrlw $123, -2064(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x92,0xf0,0xf7,0xff,0xff,0x7b] + vpsrlw $123, -2064(%rdx), %xmm22 + +// CHECK: vpsrlw $171, %ymm19, %ymm27 +// CHECK: encoding: [0x62,0xb1,0x25,0x20,0x71,0xd3,0xab] + vpsrlw $171, %ymm19, %ymm27 + +// CHECK: vpsrlw $171, %ymm19, %ymm27 {%k3} +// CHECK: encoding: [0x62,0xb1,0x25,0x23,0x71,0xd3,0xab] + vpsrlw $171, %ymm19, %ymm27 {%k3} + +// CHECK: vpsrlw $171, %ymm19, %ymm27 {%k3} {z} +// CHECK: encoding: [0x62,0xb1,0x25,0xa3,0x71,0xd3,0xab] + vpsrlw $171, %ymm19, %ymm27 {%k3} {z} + +// CHECK: vpsrlw $123, %ymm19, %ymm27 +// CHECK: encoding: [0x62,0xb1,0x25,0x20,0x71,0xd3,0x7b] + vpsrlw $123, %ymm19, %ymm27 + +// CHECK: vpsrlw $123, (%rcx), %ymm27 +// CHECK: encoding: [0x62,0xf1,0x25,0x20,0x71,0x11,0x7b] + vpsrlw $123, (%rcx), %ymm27 + +// CHECK: vpsrlw $123, 291(%rax,%r14,8), %ymm27 +// CHECK: encoding: [0x62,0xb1,0x25,0x20,0x71,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrlw $123, 291(%rax,%r14,8), %ymm27 + +// CHECK: vpsrlw $123, 4064(%rdx), %ymm27 +// CHECK: encoding: [0x62,0xf1,0x25,0x20,0x71,0x52,0x7f,0x7b] + vpsrlw $123, 4064(%rdx), %ymm27 + +// CHECK: vpsrlw $123, 4096(%rdx), %ymm27 +// CHECK: encoding: [0x62,0xf1,0x25,0x20,0x71,0x92,0x00,0x10,0x00,0x00,0x7b] + vpsrlw $123, 4096(%rdx), %ymm27 + +// CHECK: vpsrlw $123, -4096(%rdx), %ymm27 +// CHECK: encoding: [0x62,0xf1,0x25,0x20,0x71,0x52,0x80,0x7b] + vpsrlw $123, -4096(%rdx), %ymm27 + +// CHECK: vpsrlw $123, -4128(%rdx), %ymm27 +// CHECK: encoding: [0x62,0xf1,0x25,0x20,0x71,0x92,0xe0,0xef,0xff,0xff,0x7b] + vpsrlw $123, -4128(%rdx), %ymm27 + +// CHECK: vpsraw $171, %xmm22, %xmm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x00,0x71,0xe6,0xab] + vpsraw $171, %xmm22, %xmm22 + +// CHECK: vpsraw $171, %xmm22, %xmm22 {%k4} +// CHECK: encoding: [0x62,0xb1,0x4d,0x04,0x71,0xe6,0xab] + vpsraw $171, %xmm22, %xmm22 {%k4} + +// CHECK: vpsraw $171, %xmm22, %xmm22 {%k4} {z} +// CHECK: encoding: [0x62,0xb1,0x4d,0x84,0x71,0xe6,0xab] + vpsraw $171, %xmm22, %xmm22 {%k4} {z} + +// CHECK: vpsraw $123, %xmm22, %xmm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x00,0x71,0xe6,0x7b] + vpsraw $123, %xmm22, %xmm22 + +// CHECK: vpsraw $123, (%rcx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x21,0x7b] + vpsraw $123, (%rcx), %xmm22 + +// CHECK: vpsraw $123, 291(%rax,%r14,8), %xmm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x00,0x71,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsraw $123, 291(%rax,%r14,8), %xmm22 + +// CHECK: vpsraw $123, 2032(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x62,0x7f,0x7b] + vpsraw $123, 2032(%rdx), %xmm22 + +// CHECK: vpsraw $123, 2048(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0xa2,0x00,0x08,0x00,0x00,0x7b] + vpsraw $123, 2048(%rdx), %xmm22 + +// CHECK: vpsraw $123, -2048(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0x62,0x80,0x7b] + vpsraw $123, -2048(%rdx), %xmm22 + +// CHECK: vpsraw $123, -2064(%rdx), %xmm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x00,0x71,0xa2,0xf0,0xf7,0xff,0xff,0x7b] + vpsraw $123, -2064(%rdx), %xmm22 + +// CHECK: vpsraw $171, %ymm22, %ymm19 +// CHECK: encoding: [0x62,0xb1,0x65,0x20,0x71,0xe6,0xab] + vpsraw $171, %ymm22, %ymm19 + +// CHECK: vpsraw $171, %ymm22, %ymm19 {%k7} +// CHECK: encoding: [0x62,0xb1,0x65,0x27,0x71,0xe6,0xab] + vpsraw $171, %ymm22, %ymm19 {%k7} + +// CHECK: vpsraw $171, %ymm22, %ymm19 {%k7} {z} +// CHECK: encoding: [0x62,0xb1,0x65,0xa7,0x71,0xe6,0xab] + vpsraw $171, %ymm22, %ymm19 {%k7} {z} + +// CHECK: vpsraw $123, %ymm22, %ymm19 +// CHECK: encoding: [0x62,0xb1,0x65,0x20,0x71,0xe6,0x7b] + vpsraw $123, %ymm22, %ymm19 + +// CHECK: vpsraw $123, (%rcx), %ymm19 +// CHECK: encoding: [0x62,0xf1,0x65,0x20,0x71,0x21,0x7b] + vpsraw $123, (%rcx), %ymm19 + +// CHECK: vpsraw $123, 291(%rax,%r14,8), %ymm19 +// CHECK: encoding: [0x62,0xb1,0x65,0x20,0x71,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsraw $123, 291(%rax,%r14,8), %ymm19 + +// CHECK: vpsraw $123, 4064(%rdx), %ymm19 +// CHECK: encoding: [0x62,0xf1,0x65,0x20,0x71,0x62,0x7f,0x7b] + vpsraw $123, 4064(%rdx), %ymm19 + +// CHECK: vpsraw $123, 4096(%rdx), %ymm19 +// CHECK: encoding: [0x62,0xf1,0x65,0x20,0x71,0xa2,0x00,0x10,0x00,0x00,0x7b] + vpsraw $123, 4096(%rdx), %ymm19 + +// CHECK: vpsraw $123, -4096(%rdx), %ymm19 +// CHECK: encoding: [0x62,0xf1,0x65,0x20,0x71,0x62,0x80,0x7b] + vpsraw $123, -4096(%rdx), %ymm19 + +// CHECK: vpsraw $123, -4128(%rdx), %ymm19 +// CHECK: encoding: [0x62,0xf1,0x65,0x20,0x71,0xa2,0xe0,0xef,0xff,0xff,0x7b] + vpsraw $123, -4128(%rdx), %ymm19 + +// CHECK: vpsrlvw %xmm19, %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x22,0xcd,0x00,0x10,0xf3] + vpsrlvw %xmm19, %xmm22, %xmm30 + +// CHECK: vpsrlvw %xmm19, %xmm22, %xmm30 {%k7} +// CHECK: encoding: [0x62,0x22,0xcd,0x07,0x10,0xf3] + vpsrlvw %xmm19, %xmm22, %xmm30 {%k7} + +// CHECK: vpsrlvw %xmm19, %xmm22, %xmm30 {%k7} {z} +// CHECK: encoding: [0x62,0x22,0xcd,0x87,0x10,0xf3] + vpsrlvw %xmm19, %xmm22, %xmm30 {%k7} {z} + +// CHECK: vpsrlvw (%rcx), %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x10,0x31] + vpsrlvw (%rcx), %xmm22, %xmm30 + +// CHECK: vpsrlvw 291(%rax,%r14,8), %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x22,0xcd,0x00,0x10,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsrlvw 291(%rax,%r14,8), %xmm22, %xmm30 + +// CHECK: vpsrlvw 2032(%rdx), %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x10,0x72,0x7f] + vpsrlvw 2032(%rdx), %xmm22, %xmm30 + +// CHECK: vpsrlvw 2048(%rdx), %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x10,0xb2,0x00,0x08,0x00,0x00] + vpsrlvw 2048(%rdx), %xmm22, %xmm30 + +// CHECK: vpsrlvw -2048(%rdx), %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x10,0x72,0x80] + vpsrlvw -2048(%rdx), %xmm22, %xmm30 + +// CHECK: vpsrlvw -2064(%rdx), %xmm22, %xmm30 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x10,0xb2,0xf0,0xf7,0xff,0xff] + vpsrlvw -2064(%rdx), %xmm22, %xmm30 + +// CHECK: vpsrlvw %ymm27, %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x02,0xb5,0x20,0x10,0xf3] + vpsrlvw %ymm27, %ymm25, %ymm30 + +// CHECK: vpsrlvw %ymm27, %ymm25, %ymm30 {%k1} +// CHECK: encoding: [0x62,0x02,0xb5,0x21,0x10,0xf3] + vpsrlvw %ymm27, %ymm25, %ymm30 {%k1} + +// CHECK: vpsrlvw %ymm27, %ymm25, %ymm30 {%k1} {z} +// CHECK: encoding: [0x62,0x02,0xb5,0xa1,0x10,0xf3] + vpsrlvw %ymm27, %ymm25, %ymm30 {%k1} {z} + +// CHECK: vpsrlvw (%rcx), %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x62,0xb5,0x20,0x10,0x31] + vpsrlvw (%rcx), %ymm25, %ymm30 + +// CHECK: vpsrlvw 291(%rax,%r14,8), %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x22,0xb5,0x20,0x10,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsrlvw 291(%rax,%r14,8), %ymm25, %ymm30 + +// CHECK: vpsrlvw 4064(%rdx), %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x62,0xb5,0x20,0x10,0x72,0x7f] + vpsrlvw 4064(%rdx), %ymm25, %ymm30 + +// CHECK: vpsrlvw 4096(%rdx), %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x62,0xb5,0x20,0x10,0xb2,0x00,0x10,0x00,0x00] + vpsrlvw 4096(%rdx), %ymm25, %ymm30 + +// CHECK: vpsrlvw -4096(%rdx), %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x62,0xb5,0x20,0x10,0x72,0x80] + vpsrlvw -4096(%rdx), %ymm25, %ymm30 + +// CHECK: vpsrlvw -4128(%rdx), %ymm25, %ymm30 +// CHECK: encoding: [0x62,0x62,0xb5,0x20,0x10,0xb2,0xe0,0xef,0xff,0xff] + vpsrlvw -4128(%rdx), %ymm25, %ymm30 + +// CHECK: vpsravw %xmm27, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x02,0x9d,0x00,0x11,0xe3] + vpsravw %xmm27, %xmm28, %xmm28 + +// CHECK: vpsravw %xmm27, %xmm28, %xmm28 {%k3} +// CHECK: encoding: [0x62,0x02,0x9d,0x03,0x11,0xe3] + vpsravw %xmm27, %xmm28, %xmm28 {%k3} + +// CHECK: vpsravw %xmm27, %xmm28, %xmm28 {%k3} {z} +// CHECK: encoding: [0x62,0x02,0x9d,0x83,0x11,0xe3] + vpsravw %xmm27, %xmm28, %xmm28 {%k3} {z} + +// CHECK: vpsravw (%rcx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x11,0x21] + vpsravw (%rcx), %xmm28, %xmm28 + +// CHECK: vpsravw 291(%rax,%r14,8), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x22,0x9d,0x00,0x11,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsravw 291(%rax,%r14,8), %xmm28, %xmm28 + +// CHECK: vpsravw 2032(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x11,0x62,0x7f] + vpsravw 2032(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravw 2048(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x11,0xa2,0x00,0x08,0x00,0x00] + vpsravw 2048(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravw -2048(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x11,0x62,0x80] + vpsravw -2048(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravw -2064(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x11,0xa2,0xf0,0xf7,0xff,0xff] + vpsravw -2064(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravw %ymm17, %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xa2,0x9d,0x20,0x11,0xe1] + vpsravw %ymm17, %ymm28, %ymm20 + +// CHECK: vpsravw %ymm17, %ymm28, %ymm20 {%k5} +// CHECK: encoding: [0x62,0xa2,0x9d,0x25,0x11,0xe1] + vpsravw %ymm17, %ymm28, %ymm20 {%k5} + +// CHECK: vpsravw %ymm17, %ymm28, %ymm20 {%k5} {z} +// CHECK: encoding: [0x62,0xa2,0x9d,0xa5,0x11,0xe1] + vpsravw %ymm17, %ymm28, %ymm20 {%k5} {z} + +// CHECK: vpsravw (%rcx), %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xe2,0x9d,0x20,0x11,0x21] + vpsravw (%rcx), %ymm28, %ymm20 + +// CHECK: vpsravw 291(%rax,%r14,8), %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xa2,0x9d,0x20,0x11,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsravw 291(%rax,%r14,8), %ymm28, %ymm20 + +// CHECK: vpsravw 4064(%rdx), %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xe2,0x9d,0x20,0x11,0x62,0x7f] + vpsravw 4064(%rdx), %ymm28, %ymm20 + +// CHECK: vpsravw 4096(%rdx), %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xe2,0x9d,0x20,0x11,0xa2,0x00,0x10,0x00,0x00] + vpsravw 4096(%rdx), %ymm28, %ymm20 + +// CHECK: vpsravw -4096(%rdx), %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xe2,0x9d,0x20,0x11,0x62,0x80] + vpsravw -4096(%rdx), %ymm28, %ymm20 + +// CHECK: vpsravw -4128(%rdx), %ymm28, %ymm20 +// CHECK: encoding: [0x62,0xe2,0x9d,0x20,0x11,0xa2,0xe0,0xef,0xff,0xff] + vpsravw -4128(%rdx), %ymm28, %ymm20 diff --git a/test/MC/X86/x86-64-avx512f_vl.s b/test/MC/X86/x86-64-avx512f_vl.s index ad121dc..09386b0 100644 --- a/test/MC/X86/x86-64-avx512f_vl.s +++ b/test/MC/X86/x86-64-avx512f_vl.s @@ -6651,3 +6651,2307 @@ // CHECK: vmovups %ymm23, -4128(%rdx) // CHECK: encoding: [0x62,0xe1,0x7c,0x28,0x11,0xba,0xe0,0xef,0xff,0xff] vmovups %ymm23, -4128(%rdx) + +// CHECK: vaddpd %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x48,0x58,0xca] +vaddpd %zmm2, %zmm1, %zmm1 + +// CHECK: vaddpd %zmm2, %zmm1, %zmm1 {%k5} +// CHECK: encoding: [0x62,0xf1,0xf5,0x4d,0x58,0xca] +vaddpd %zmm2, %zmm1, %zmm1 {%k5} + +// CHECK: vaddpd %zmm2, %zmm1, %zmm1 {%k5} {z} +// CHECK: encoding: [0x62,0xf1,0xf5,0xcd,0x58,0xca] +vaddpd %zmm2, %zmm1, %zmm1 {%k5} {z} + +// CHECK: vaddpd {rn-sae}, %zmm2, %zmm1, %zmm1 {%k5} {z} +// CHECK: encoding: [0x62,0xf1,0xf5,0x9d,0x58,0xca] +vaddpd {rn-sae}, %zmm2, %zmm1, %zmm1 {%k5} {z} + +// CHECK: vaddpd {rn-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x18,0x58,0xca] +vaddpd {rn-sae}, %zmm2, %zmm1, %zmm1 + +// CHECK: vaddpd {ru-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x58,0x58,0xca] +vaddpd {ru-sae}, %zmm2, %zmm1, %zmm1 + +// CHECK: vaddpd {rd-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x38,0x58,0xca] +vaddpd {rd-sae}, %zmm2, %zmm1, %zmm1 + +// CHECK: vaddpd {rz-sae}, %zmm2, %zmm1, %zmm1 +// CHECK: encoding: [0x62,0xf1,0xf5,0x78,0x58,0xca] +vaddpd {rz-sae}, %zmm2, %zmm1, %zmm1 + +// CHECK: vpslld %xmm22, %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xa1,0x55,0x00,0xf2,0xd6] + vpslld %xmm22, %xmm21, %xmm18 + +// CHECK: vpslld %xmm22, %xmm21, %xmm18 {%k1} +// CHECK: encoding: [0x62,0xa1,0x55,0x01,0xf2,0xd6] + vpslld %xmm22, %xmm21, %xmm18 {%k1} + +// CHECK: vpslld %xmm22, %xmm21, %xmm18 {%k1} {z} +// CHECK: encoding: [0x62,0xa1,0x55,0x81,0xf2,0xd6] + vpslld %xmm22, %xmm21, %xmm18 {%k1} {z} + +// CHECK: vpslld (%rcx), %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xe1,0x55,0x00,0xf2,0x11] + vpslld (%rcx), %xmm21, %xmm18 + +// CHECK: vpslld 291(%rax,%r14,8), %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xa1,0x55,0x00,0xf2,0x94,0xf0,0x23,0x01,0x00,0x00] + vpslld 291(%rax,%r14,8), %xmm21, %xmm18 + +// CHECK: vpslld 2032(%rdx), %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xe1,0x55,0x00,0xf2,0x52,0x7f] + vpslld 2032(%rdx), %xmm21, %xmm18 + +// CHECK: vpslld 2048(%rdx), %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xe1,0x55,0x00,0xf2,0x92,0x00,0x08,0x00,0x00] + vpslld 2048(%rdx), %xmm21, %xmm18 + +// CHECK: vpslld -2048(%rdx), %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xe1,0x55,0x00,0xf2,0x52,0x80] + vpslld -2048(%rdx), %xmm21, %xmm18 + +// CHECK: vpslld -2064(%rdx), %xmm21, %xmm18 +// CHECK: encoding: [0x62,0xe1,0x55,0x00,0xf2,0x92,0xf0,0xf7,0xff,0xff] + vpslld -2064(%rdx), %xmm21, %xmm18 + +// CHECK: vpslld %xmm25, %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x01,0x2d,0x20,0xf2,0xe9] + vpslld %xmm25, %ymm26, %ymm29 + +// CHECK: vpslld %xmm25, %ymm26, %ymm29 {%k7} +// CHECK: encoding: [0x62,0x01,0x2d,0x27,0xf2,0xe9] + vpslld %xmm25, %ymm26, %ymm29 {%k7} + +// CHECK: vpslld %xmm25, %ymm26, %ymm29 {%k7} {z} +// CHECK: encoding: [0x62,0x01,0x2d,0xa7,0xf2,0xe9] + vpslld %xmm25, %ymm26, %ymm29 {%k7} {z} + +// CHECK: vpslld (%rcx), %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xf2,0x29] + vpslld (%rcx), %ymm26, %ymm29 + +// CHECK: vpslld 291(%rax,%r14,8), %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x21,0x2d,0x20,0xf2,0xac,0xf0,0x23,0x01,0x00,0x00] + vpslld 291(%rax,%r14,8), %ymm26, %ymm29 + +// CHECK: vpslld 2032(%rdx), %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xf2,0x6a,0x7f] + vpslld 2032(%rdx), %ymm26, %ymm29 + +// CHECK: vpslld 2048(%rdx), %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xf2,0xaa,0x00,0x08,0x00,0x00] + vpslld 2048(%rdx), %ymm26, %ymm29 + +// CHECK: vpslld -2048(%rdx), %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xf2,0x6a,0x80] + vpslld -2048(%rdx), %ymm26, %ymm29 + +// CHECK: vpslld -2064(%rdx), %ymm26, %ymm29 +// CHECK: encoding: [0x62,0x61,0x2d,0x20,0xf2,0xaa,0xf0,0xf7,0xff,0xff] + vpslld -2064(%rdx), %ymm26, %ymm29 + +// CHECK: vpsllq %xmm24, %xmm28, %xmm20 +// CHECK: encoding: [0x62,0x81,0x9d,0x00,0xf3,0xe0] + vpsllq %xmm24, %xmm28, %xmm20 + +// CHECK: vpsllq %xmm24, %xmm28, %xmm20 {%k1} +// CHECK: encoding: [0x62,0x81,0x9d,0x01,0xf3,0xe0] + vpsllq %xmm24, %xmm28, %xmm20 {%k1} + +// CHECK: vpsllq %xmm24, %xmm28, %xmm20 {%k1} {z} +// CHECK: encoding: [0x62,0x81,0x9d,0x81,0xf3,0xe0] + vpsllq %xmm24, %xmm28, %xmm20 {%k1} {z} + +// CHECK: vpsllq (%rcx), %xmm28, %xmm20 +// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0xf3,0x21] + vpsllq (%rcx), %xmm28, %xmm20 + +// CHECK: vpsllq 291(%rax,%r14,8), %xmm28, %xmm20 +// CHECK: encoding: [0x62,0xa1,0x9d,0x00,0xf3,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsllq 291(%rax,%r14,8), %xmm28, %xmm20 + +// CHECK: vpsllq 2032(%rdx), %xmm28, %xmm20 +// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0xf3,0x62,0x7f] + vpsllq 2032(%rdx), %xmm28, %xmm20 + +// CHECK: vpsllq 2048(%rdx), %xmm28, %xmm20 +// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0xf3,0xa2,0x00,0x08,0x00,0x00] + vpsllq 2048(%rdx), %xmm28, %xmm20 + +// CHECK: vpsllq -2048(%rdx), %xmm28, %xmm20 +// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0xf3,0x62,0x80] + vpsllq -2048(%rdx), %xmm28, %xmm20 + +// CHECK: vpsllq -2064(%rdx), %xmm28, %xmm20 +// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0xf3,0xa2,0xf0,0xf7,0xff,0xff] + vpsllq -2064(%rdx), %xmm28, %xmm20 + +// CHECK: vpsllq %xmm20, %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xa1,0xd5,0x20,0xf3,0xfc] + vpsllq %xmm20, %ymm21, %ymm23 + +// CHECK: vpsllq %xmm20, %ymm21, %ymm23 {%k1} +// CHECK: encoding: [0x62,0xa1,0xd5,0x21,0xf3,0xfc] + vpsllq %xmm20, %ymm21, %ymm23 {%k1} + +// CHECK: vpsllq %xmm20, %ymm21, %ymm23 {%k1} {z} +// CHECK: encoding: [0x62,0xa1,0xd5,0xa1,0xf3,0xfc] + vpsllq %xmm20, %ymm21, %ymm23 {%k1} {z} + +// CHECK: vpsllq (%rcx), %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x20,0xf3,0x39] + vpsllq (%rcx), %ymm21, %ymm23 + +// CHECK: vpsllq 291(%rax,%r14,8), %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xa1,0xd5,0x20,0xf3,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpsllq 291(%rax,%r14,8), %ymm21, %ymm23 + +// CHECK: vpsllq 2032(%rdx), %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x20,0xf3,0x7a,0x7f] + vpsllq 2032(%rdx), %ymm21, %ymm23 + +// CHECK: vpsllq 2048(%rdx), %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x20,0xf3,0xba,0x00,0x08,0x00,0x00] + vpsllq 2048(%rdx), %ymm21, %ymm23 + +// CHECK: vpsllq -2048(%rdx), %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x20,0xf3,0x7a,0x80] + vpsllq -2048(%rdx), %ymm21, %ymm23 + +// CHECK: vpsllq -2064(%rdx), %ymm21, %ymm23 +// CHECK: encoding: [0x62,0xe1,0xd5,0x20,0xf3,0xba,0xf0,0xf7,0xff,0xff] + vpsllq -2064(%rdx), %ymm21, %ymm23 + +// CHECK: vpsllvd %xmm24, %xmm23, %xmm23 +// CHECK: encoding: [0x62,0x82,0x45,0x00,0x47,0xf8] + vpsllvd %xmm24, %xmm23, %xmm23 + +// CHECK: vpsllvd %xmm24, %xmm23, %xmm23 {%k6} +// CHECK: encoding: [0x62,0x82,0x45,0x06,0x47,0xf8] + vpsllvd %xmm24, %xmm23, %xmm23 {%k6} + +// CHECK: vpsllvd %xmm24, %xmm23, %xmm23 {%k6} {z} +// CHECK: encoding: [0x62,0x82,0x45,0x86,0x47,0xf8] + vpsllvd %xmm24, %xmm23, %xmm23 {%k6} {z} + +// CHECK: vpsllvd (%rcx), %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x00,0x47,0x39] + vpsllvd (%rcx), %xmm23, %xmm23 + +// CHECK: vpsllvd 291(%rax,%r14,8), %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xa2,0x45,0x00,0x47,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpsllvd 291(%rax,%r14,8), %xmm23, %xmm23 + +// CHECK: vpsllvd (%rcx){1to4}, %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x10,0x47,0x39] + vpsllvd (%rcx){1to4}, %xmm23, %xmm23 + +// CHECK: vpsllvd 2032(%rdx), %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x00,0x47,0x7a,0x7f] + vpsllvd 2032(%rdx), %xmm23, %xmm23 + +// CHECK: vpsllvd 2048(%rdx), %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x00,0x47,0xba,0x00,0x08,0x00,0x00] + vpsllvd 2048(%rdx), %xmm23, %xmm23 + +// CHECK: vpsllvd -2048(%rdx), %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x00,0x47,0x7a,0x80] + vpsllvd -2048(%rdx), %xmm23, %xmm23 + +// CHECK: vpsllvd -2064(%rdx), %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x00,0x47,0xba,0xf0,0xf7,0xff,0xff] + vpsllvd -2064(%rdx), %xmm23, %xmm23 + +// CHECK: vpsllvd 508(%rdx){1to4}, %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x10,0x47,0x7a,0x7f] + vpsllvd 508(%rdx){1to4}, %xmm23, %xmm23 + +// CHECK: vpsllvd 512(%rdx){1to4}, %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x10,0x47,0xba,0x00,0x02,0x00,0x00] + vpsllvd 512(%rdx){1to4}, %xmm23, %xmm23 + +// CHECK: vpsllvd -512(%rdx){1to4}, %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x10,0x47,0x7a,0x80] + vpsllvd -512(%rdx){1to4}, %xmm23, %xmm23 + +// CHECK: vpsllvd -516(%rdx){1to4}, %xmm23, %xmm23 +// CHECK: encoding: [0x62,0xe2,0x45,0x10,0x47,0xba,0xfc,0xfd,0xff,0xff] + vpsllvd -516(%rdx){1to4}, %xmm23, %xmm23 + +// CHECK: vpsllvd %ymm19, %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x47,0xcb] + vpsllvd %ymm19, %ymm22, %ymm17 + +// CHECK: vpsllvd %ymm19, %ymm22, %ymm17 {%k5} +// CHECK: encoding: [0x62,0xa2,0x4d,0x25,0x47,0xcb] + vpsllvd %ymm19, %ymm22, %ymm17 {%k5} + +// CHECK: vpsllvd %ymm19, %ymm22, %ymm17 {%k5} {z} +// CHECK: encoding: [0x62,0xa2,0x4d,0xa5,0x47,0xcb] + vpsllvd %ymm19, %ymm22, %ymm17 {%k5} {z} + +// CHECK: vpsllvd (%rcx), %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x47,0x09] + vpsllvd (%rcx), %ymm22, %ymm17 + +// CHECK: vpsllvd 291(%rax,%r14,8), %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xa2,0x4d,0x20,0x47,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpsllvd 291(%rax,%r14,8), %ymm22, %ymm17 + +// CHECK: vpsllvd (%rcx){1to8}, %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x30,0x47,0x09] + vpsllvd (%rcx){1to8}, %ymm22, %ymm17 + +// CHECK: vpsllvd 4064(%rdx), %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x47,0x4a,0x7f] + vpsllvd 4064(%rdx), %ymm22, %ymm17 + +// CHECK: vpsllvd 4096(%rdx), %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x47,0x8a,0x00,0x10,0x00,0x00] + vpsllvd 4096(%rdx), %ymm22, %ymm17 + +// CHECK: vpsllvd -4096(%rdx), %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x47,0x4a,0x80] + vpsllvd -4096(%rdx), %ymm22, %ymm17 + +// CHECK: vpsllvd -4128(%rdx), %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x20,0x47,0x8a,0xe0,0xef,0xff,0xff] + vpsllvd -4128(%rdx), %ymm22, %ymm17 + +// CHECK: vpsllvd 508(%rdx){1to8}, %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x30,0x47,0x4a,0x7f] + vpsllvd 508(%rdx){1to8}, %ymm22, %ymm17 + +// CHECK: vpsllvd 512(%rdx){1to8}, %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x30,0x47,0x8a,0x00,0x02,0x00,0x00] + vpsllvd 512(%rdx){1to8}, %ymm22, %ymm17 + +// CHECK: vpsllvd -512(%rdx){1to8}, %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x30,0x47,0x4a,0x80] + vpsllvd -512(%rdx){1to8}, %ymm22, %ymm17 + +// CHECK: vpsllvd -516(%rdx){1to8}, %ymm22, %ymm17 +// CHECK: encoding: [0x62,0xe2,0x4d,0x30,0x47,0x8a,0xfc,0xfd,0xff,0xff] + vpsllvd -516(%rdx){1to8}, %ymm22, %ymm17 + +// CHECK: vpsllvq %xmm18, %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xa2,0xd5,0x00,0x47,0xda] + vpsllvq %xmm18, %xmm21, %xmm19 + +// CHECK: vpsllvq %xmm18, %xmm21, %xmm19 {%k2} +// CHECK: encoding: [0x62,0xa2,0xd5,0x02,0x47,0xda] + vpsllvq %xmm18, %xmm21, %xmm19 {%k2} + +// CHECK: vpsllvq %xmm18, %xmm21, %xmm19 {%k2} {z} +// CHECK: encoding: [0x62,0xa2,0xd5,0x82,0x47,0xda] + vpsllvq %xmm18, %xmm21, %xmm19 {%k2} {z} + +// CHECK: vpsllvq (%rcx), %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x00,0x47,0x19] + vpsllvq (%rcx), %xmm21, %xmm19 + +// CHECK: vpsllvq 291(%rax,%r14,8), %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xa2,0xd5,0x00,0x47,0x9c,0xf0,0x23,0x01,0x00,0x00] + vpsllvq 291(%rax,%r14,8), %xmm21, %xmm19 + +// CHECK: vpsllvq (%rcx){1to2}, %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x10,0x47,0x19] + vpsllvq (%rcx){1to2}, %xmm21, %xmm19 + +// CHECK: vpsllvq 2032(%rdx), %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x00,0x47,0x5a,0x7f] + vpsllvq 2032(%rdx), %xmm21, %xmm19 + +// CHECK: vpsllvq 2048(%rdx), %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x00,0x47,0x9a,0x00,0x08,0x00,0x00] + vpsllvq 2048(%rdx), %xmm21, %xmm19 + +// CHECK: vpsllvq -2048(%rdx), %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x00,0x47,0x5a,0x80] + vpsllvq -2048(%rdx), %xmm21, %xmm19 + +// CHECK: vpsllvq -2064(%rdx), %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x00,0x47,0x9a,0xf0,0xf7,0xff,0xff] + vpsllvq -2064(%rdx), %xmm21, %xmm19 + +// CHECK: vpsllvq 1016(%rdx){1to2}, %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x10,0x47,0x5a,0x7f] + vpsllvq 1016(%rdx){1to2}, %xmm21, %xmm19 + +// CHECK: vpsllvq 1024(%rdx){1to2}, %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x10,0x47,0x9a,0x00,0x04,0x00,0x00] + vpsllvq 1024(%rdx){1to2}, %xmm21, %xmm19 + +// CHECK: vpsllvq -1024(%rdx){1to2}, %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x10,0x47,0x5a,0x80] + vpsllvq -1024(%rdx){1to2}, %xmm21, %xmm19 + +// CHECK: vpsllvq -1032(%rdx){1to2}, %xmm21, %xmm19 +// CHECK: encoding: [0x62,0xe2,0xd5,0x10,0x47,0x9a,0xf8,0xfb,0xff,0xff] + vpsllvq -1032(%rdx){1to2}, %xmm21, %xmm19 + +// CHECK: vpsllvq %ymm18, %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xa2,0xb5,0x20,0x47,0xfa] + vpsllvq %ymm18, %ymm25, %ymm23 + +// CHECK: vpsllvq %ymm18, %ymm25, %ymm23 {%k2} +// CHECK: encoding: [0x62,0xa2,0xb5,0x22,0x47,0xfa] + vpsllvq %ymm18, %ymm25, %ymm23 {%k2} + +// CHECK: vpsllvq %ymm18, %ymm25, %ymm23 {%k2} {z} +// CHECK: encoding: [0x62,0xa2,0xb5,0xa2,0x47,0xfa] + vpsllvq %ymm18, %ymm25, %ymm23 {%k2} {z} + +// CHECK: vpsllvq (%rcx), %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x20,0x47,0x39] + vpsllvq (%rcx), %ymm25, %ymm23 + +// CHECK: vpsllvq 291(%rax,%r14,8), %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xa2,0xb5,0x20,0x47,0xbc,0xf0,0x23,0x01,0x00,0x00] + vpsllvq 291(%rax,%r14,8), %ymm25, %ymm23 + +// CHECK: vpsllvq (%rcx){1to4}, %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x30,0x47,0x39] + vpsllvq (%rcx){1to4}, %ymm25, %ymm23 + +// CHECK: vpsllvq 4064(%rdx), %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x20,0x47,0x7a,0x7f] + vpsllvq 4064(%rdx), %ymm25, %ymm23 + +// CHECK: vpsllvq 4096(%rdx), %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x20,0x47,0xba,0x00,0x10,0x00,0x00] + vpsllvq 4096(%rdx), %ymm25, %ymm23 + +// CHECK: vpsllvq -4096(%rdx), %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x20,0x47,0x7a,0x80] + vpsllvq -4096(%rdx), %ymm25, %ymm23 + +// CHECK: vpsllvq -4128(%rdx), %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x20,0x47,0xba,0xe0,0xef,0xff,0xff] + vpsllvq -4128(%rdx), %ymm25, %ymm23 + +// CHECK: vpsllvq 1016(%rdx){1to4}, %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x30,0x47,0x7a,0x7f] + vpsllvq 1016(%rdx){1to4}, %ymm25, %ymm23 + +// CHECK: vpsllvq 1024(%rdx){1to4}, %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x30,0x47,0xba,0x00,0x04,0x00,0x00] + vpsllvq 1024(%rdx){1to4}, %ymm25, %ymm23 + +// CHECK: vpsllvq -1024(%rdx){1to4}, %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x30,0x47,0x7a,0x80] + vpsllvq -1024(%rdx){1to4}, %ymm25, %ymm23 + +// CHECK: vpsllvq -1032(%rdx){1to4}, %ymm25, %ymm23 +// CHECK: encoding: [0x62,0xe2,0xb5,0x30,0x47,0xba,0xf8,0xfb,0xff,0xff] + vpsllvq -1032(%rdx){1to4}, %ymm25, %ymm23 + +// CHECK: vpsrad %xmm20, %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x21,0x45,0x00,0xe2,0xe4] + vpsrad %xmm20, %xmm23, %xmm28 + +// CHECK: vpsrad %xmm20, %xmm23, %xmm28 {%k3} +// CHECK: encoding: [0x62,0x21,0x45,0x03,0xe2,0xe4] + vpsrad %xmm20, %xmm23, %xmm28 {%k3} + +// CHECK: vpsrad %xmm20, %xmm23, %xmm28 {%k3} {z} +// CHECK: encoding: [0x62,0x21,0x45,0x83,0xe2,0xe4] + vpsrad %xmm20, %xmm23, %xmm28 {%k3} {z} + +// CHECK: vpsrad (%rcx), %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x61,0x45,0x00,0xe2,0x21] + vpsrad (%rcx), %xmm23, %xmm28 + +// CHECK: vpsrad 291(%rax,%r14,8), %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x21,0x45,0x00,0xe2,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsrad 291(%rax,%r14,8), %xmm23, %xmm28 + +// CHECK: vpsrad 2032(%rdx), %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x61,0x45,0x00,0xe2,0x62,0x7f] + vpsrad 2032(%rdx), %xmm23, %xmm28 + +// CHECK: vpsrad 2048(%rdx), %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x61,0x45,0x00,0xe2,0xa2,0x00,0x08,0x00,0x00] + vpsrad 2048(%rdx), %xmm23, %xmm28 + +// CHECK: vpsrad -2048(%rdx), %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x61,0x45,0x00,0xe2,0x62,0x80] + vpsrad -2048(%rdx), %xmm23, %xmm28 + +// CHECK: vpsrad -2064(%rdx), %xmm23, %xmm28 +// CHECK: encoding: [0x62,0x61,0x45,0x00,0xe2,0xa2,0xf0,0xf7,0xff,0xff] + vpsrad -2064(%rdx), %xmm23, %xmm28 + +// CHECK: vpsrad %xmm24, %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x01,0x25,0x20,0xe2,0xc8] + vpsrad %xmm24, %ymm27, %ymm25 + +// CHECK: vpsrad %xmm24, %ymm27, %ymm25 {%k4} +// CHECK: encoding: [0x62,0x01,0x25,0x24,0xe2,0xc8] + vpsrad %xmm24, %ymm27, %ymm25 {%k4} + +// CHECK: vpsrad %xmm24, %ymm27, %ymm25 {%k4} {z} +// CHECK: encoding: [0x62,0x01,0x25,0xa4,0xe2,0xc8] + vpsrad %xmm24, %ymm27, %ymm25 {%k4} {z} + +// CHECK: vpsrad (%rcx), %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x61,0x25,0x20,0xe2,0x09] + vpsrad (%rcx), %ymm27, %ymm25 + +// CHECK: vpsrad 291(%rax,%r14,8), %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x21,0x25,0x20,0xe2,0x8c,0xf0,0x23,0x01,0x00,0x00] + vpsrad 291(%rax,%r14,8), %ymm27, %ymm25 + +// CHECK: vpsrad 2032(%rdx), %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x61,0x25,0x20,0xe2,0x4a,0x7f] + vpsrad 2032(%rdx), %ymm27, %ymm25 + +// CHECK: vpsrad 2048(%rdx), %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x61,0x25,0x20,0xe2,0x8a,0x00,0x08,0x00,0x00] + vpsrad 2048(%rdx), %ymm27, %ymm25 + +// CHECK: vpsrad -2048(%rdx), %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x61,0x25,0x20,0xe2,0x4a,0x80] + vpsrad -2048(%rdx), %ymm27, %ymm25 + +// CHECK: vpsrad -2064(%rdx), %ymm27, %ymm25 +// CHECK: encoding: [0x62,0x61,0x25,0x20,0xe2,0x8a,0xf0,0xf7,0xff,0xff] + vpsrad -2064(%rdx), %ymm27, %ymm25 + +// CHECK: vpsraq %xmm24, %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x01,0xbd,0x00,0xe2,0xe8] + vpsraq %xmm24, %xmm24, %xmm29 + +// CHECK: vpsraq %xmm24, %xmm24, %xmm29 {%k3} +// CHECK: encoding: [0x62,0x01,0xbd,0x03,0xe2,0xe8] + vpsraq %xmm24, %xmm24, %xmm29 {%k3} + +// CHECK: vpsraq %xmm24, %xmm24, %xmm29 {%k3} {z} +// CHECK: encoding: [0x62,0x01,0xbd,0x83,0xe2,0xe8] + vpsraq %xmm24, %xmm24, %xmm29 {%k3} {z} + +// CHECK: vpsraq (%rcx), %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x61,0xbd,0x00,0xe2,0x29] + vpsraq (%rcx), %xmm24, %xmm29 + +// CHECK: vpsraq 291(%rax,%r14,8), %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x21,0xbd,0x00,0xe2,0xac,0xf0,0x23,0x01,0x00,0x00] + vpsraq 291(%rax,%r14,8), %xmm24, %xmm29 + +// CHECK: vpsraq 2032(%rdx), %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x61,0xbd,0x00,0xe2,0x6a,0x7f] + vpsraq 2032(%rdx), %xmm24, %xmm29 + +// CHECK: vpsraq 2048(%rdx), %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x61,0xbd,0x00,0xe2,0xaa,0x00,0x08,0x00,0x00] + vpsraq 2048(%rdx), %xmm24, %xmm29 + +// CHECK: vpsraq -2048(%rdx), %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x61,0xbd,0x00,0xe2,0x6a,0x80] + vpsraq -2048(%rdx), %xmm24, %xmm29 + +// CHECK: vpsraq -2064(%rdx), %xmm24, %xmm29 +// CHECK: encoding: [0x62,0x61,0xbd,0x00,0xe2,0xaa,0xf0,0xf7,0xff,0xff] + vpsraq -2064(%rdx), %xmm24, %xmm29 + +// CHECK: vpsraq %xmm26, %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x01,0xad,0x20,0xe2,0xe2] + vpsraq %xmm26, %ymm26, %ymm28 + +// CHECK: vpsraq %xmm26, %ymm26, %ymm28 {%k4} +// CHECK: encoding: [0x62,0x01,0xad,0x24,0xe2,0xe2] + vpsraq %xmm26, %ymm26, %ymm28 {%k4} + +// CHECK: vpsraq %xmm26, %ymm26, %ymm28 {%k4} {z} +// CHECK: encoding: [0x62,0x01,0xad,0xa4,0xe2,0xe2] + vpsraq %xmm26, %ymm26, %ymm28 {%k4} {z} + +// CHECK: vpsraq (%rcx), %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x61,0xad,0x20,0xe2,0x21] + vpsraq (%rcx), %ymm26, %ymm28 + +// CHECK: vpsraq 291(%rax,%r14,8), %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x21,0xad,0x20,0xe2,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsraq 291(%rax,%r14,8), %ymm26, %ymm28 + +// CHECK: vpsraq 2032(%rdx), %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x61,0xad,0x20,0xe2,0x62,0x7f] + vpsraq 2032(%rdx), %ymm26, %ymm28 + +// CHECK: vpsraq 2048(%rdx), %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x61,0xad,0x20,0xe2,0xa2,0x00,0x08,0x00,0x00] + vpsraq 2048(%rdx), %ymm26, %ymm28 + +// CHECK: vpsraq -2048(%rdx), %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x61,0xad,0x20,0xe2,0x62,0x80] + vpsraq -2048(%rdx), %ymm26, %ymm28 + +// CHECK: vpsraq -2064(%rdx), %ymm26, %ymm28 +// CHECK: encoding: [0x62,0x61,0xad,0x20,0xe2,0xa2,0xf0,0xf7,0xff,0xff] + vpsraq -2064(%rdx), %ymm26, %ymm28 + +// CHECK: vpsravd %xmm18, %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x22,0x2d,0x00,0x46,0xc2] + vpsravd %xmm18, %xmm26, %xmm24 + +// CHECK: vpsravd %xmm18, %xmm26, %xmm24 {%k5} +// CHECK: encoding: [0x62,0x22,0x2d,0x05,0x46,0xc2] + vpsravd %xmm18, %xmm26, %xmm24 {%k5} + +// CHECK: vpsravd %xmm18, %xmm26, %xmm24 {%k5} {z} +// CHECK: encoding: [0x62,0x22,0x2d,0x85,0x46,0xc2] + vpsravd %xmm18, %xmm26, %xmm24 {%k5} {z} + +// CHECK: vpsravd (%rcx), %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x46,0x01] + vpsravd (%rcx), %xmm26, %xmm24 + +// CHECK: vpsravd 291(%rax,%r14,8), %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x22,0x2d,0x00,0x46,0x84,0xf0,0x23,0x01,0x00,0x00] + vpsravd 291(%rax,%r14,8), %xmm26, %xmm24 + +// CHECK: vpsravd (%rcx){1to4}, %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x46,0x01] + vpsravd (%rcx){1to4}, %xmm26, %xmm24 + +// CHECK: vpsravd 2032(%rdx), %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x46,0x42,0x7f] + vpsravd 2032(%rdx), %xmm26, %xmm24 + +// CHECK: vpsravd 2048(%rdx), %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x46,0x82,0x00,0x08,0x00,0x00] + vpsravd 2048(%rdx), %xmm26, %xmm24 + +// CHECK: vpsravd -2048(%rdx), %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x46,0x42,0x80] + vpsravd -2048(%rdx), %xmm26, %xmm24 + +// CHECK: vpsravd -2064(%rdx), %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x46,0x82,0xf0,0xf7,0xff,0xff] + vpsravd -2064(%rdx), %xmm26, %xmm24 + +// CHECK: vpsravd 508(%rdx){1to4}, %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x46,0x42,0x7f] + vpsravd 508(%rdx){1to4}, %xmm26, %xmm24 + +// CHECK: vpsravd 512(%rdx){1to4}, %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x46,0x82,0x00,0x02,0x00,0x00] + vpsravd 512(%rdx){1to4}, %xmm26, %xmm24 + +// CHECK: vpsravd -512(%rdx){1to4}, %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x46,0x42,0x80] + vpsravd -512(%rdx){1to4}, %xmm26, %xmm24 + +// CHECK: vpsravd -516(%rdx){1to4}, %xmm26, %xmm24 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x46,0x82,0xfc,0xfd,0xff,0xff] + vpsravd -516(%rdx){1to4}, %xmm26, %xmm24 + +// CHECK: vpsravd %ymm23, %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xa2,0x35,0x20,0x46,0xf7] + vpsravd %ymm23, %ymm25, %ymm22 + +// CHECK: vpsravd %ymm23, %ymm25, %ymm22 {%k7} +// CHECK: encoding: [0x62,0xa2,0x35,0x27,0x46,0xf7] + vpsravd %ymm23, %ymm25, %ymm22 {%k7} + +// CHECK: vpsravd %ymm23, %ymm25, %ymm22 {%k7} {z} +// CHECK: encoding: [0x62,0xa2,0x35,0xa7,0x46,0xf7] + vpsravd %ymm23, %ymm25, %ymm22 {%k7} {z} + +// CHECK: vpsravd (%rcx), %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x20,0x46,0x31] + vpsravd (%rcx), %ymm25, %ymm22 + +// CHECK: vpsravd 291(%rax,%r14,8), %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xa2,0x35,0x20,0x46,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsravd 291(%rax,%r14,8), %ymm25, %ymm22 + +// CHECK: vpsravd (%rcx){1to8}, %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x30,0x46,0x31] + vpsravd (%rcx){1to8}, %ymm25, %ymm22 + +// CHECK: vpsravd 4064(%rdx), %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x20,0x46,0x72,0x7f] + vpsravd 4064(%rdx), %ymm25, %ymm22 + +// CHECK: vpsravd 4096(%rdx), %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x20,0x46,0xb2,0x00,0x10,0x00,0x00] + vpsravd 4096(%rdx), %ymm25, %ymm22 + +// CHECK: vpsravd -4096(%rdx), %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x20,0x46,0x72,0x80] + vpsravd -4096(%rdx), %ymm25, %ymm22 + +// CHECK: vpsravd -4128(%rdx), %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x20,0x46,0xb2,0xe0,0xef,0xff,0xff] + vpsravd -4128(%rdx), %ymm25, %ymm22 + +// CHECK: vpsravd 508(%rdx){1to8}, %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x30,0x46,0x72,0x7f] + vpsravd 508(%rdx){1to8}, %ymm25, %ymm22 + +// CHECK: vpsravd 512(%rdx){1to8}, %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x30,0x46,0xb2,0x00,0x02,0x00,0x00] + vpsravd 512(%rdx){1to8}, %ymm25, %ymm22 + +// CHECK: vpsravd -512(%rdx){1to8}, %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x30,0x46,0x72,0x80] + vpsravd -512(%rdx){1to8}, %ymm25, %ymm22 + +// CHECK: vpsravd -516(%rdx){1to8}, %ymm25, %ymm22 +// CHECK: encoding: [0x62,0xe2,0x35,0x30,0x46,0xb2,0xfc,0xfd,0xff,0xff] + vpsravd -516(%rdx){1to8}, %ymm25, %ymm22 + +// CHECK: vpsravq %xmm17, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x22,0x9d,0x00,0x46,0xe1] + vpsravq %xmm17, %xmm28, %xmm28 + +// CHECK: vpsravq %xmm17, %xmm28, %xmm28 {%k1} +// CHECK: encoding: [0x62,0x22,0x9d,0x01,0x46,0xe1] + vpsravq %xmm17, %xmm28, %xmm28 {%k1} + +// CHECK: vpsravq %xmm17, %xmm28, %xmm28 {%k1} {z} +// CHECK: encoding: [0x62,0x22,0x9d,0x81,0x46,0xe1] + vpsravq %xmm17, %xmm28, %xmm28 {%k1} {z} + +// CHECK: vpsravq (%rcx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x46,0x21] + vpsravq (%rcx), %xmm28, %xmm28 + +// CHECK: vpsravq 291(%rax,%r14,8), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x22,0x9d,0x00,0x46,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsravq 291(%rax,%r14,8), %xmm28, %xmm28 + +// CHECK: vpsravq (%rcx){1to2}, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x10,0x46,0x21] + vpsravq (%rcx){1to2}, %xmm28, %xmm28 + +// CHECK: vpsravq 2032(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x46,0x62,0x7f] + vpsravq 2032(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravq 2048(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x46,0xa2,0x00,0x08,0x00,0x00] + vpsravq 2048(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravq -2048(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x46,0x62,0x80] + vpsravq -2048(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravq -2064(%rdx), %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x00,0x46,0xa2,0xf0,0xf7,0xff,0xff] + vpsravq -2064(%rdx), %xmm28, %xmm28 + +// CHECK: vpsravq 1016(%rdx){1to2}, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x10,0x46,0x62,0x7f] + vpsravq 1016(%rdx){1to2}, %xmm28, %xmm28 + +// CHECK: vpsravq 1024(%rdx){1to2}, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x10,0x46,0xa2,0x00,0x04,0x00,0x00] + vpsravq 1024(%rdx){1to2}, %xmm28, %xmm28 + +// CHECK: vpsravq -1024(%rdx){1to2}, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x10,0x46,0x62,0x80] + vpsravq -1024(%rdx){1to2}, %xmm28, %xmm28 + +// CHECK: vpsravq -1032(%rdx){1to2}, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x62,0x9d,0x10,0x46,0xa2,0xf8,0xfb,0xff,0xff] + vpsravq -1032(%rdx){1to2}, %xmm28, %xmm28 + +// CHECK: vpsravq %ymm21, %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x22,0xbd,0x20,0x46,0xf5] + vpsravq %ymm21, %ymm24, %ymm30 + +// CHECK: vpsravq %ymm21, %ymm24, %ymm30 {%k7} +// CHECK: encoding: [0x62,0x22,0xbd,0x27,0x46,0xf5] + vpsravq %ymm21, %ymm24, %ymm30 {%k7} + +// CHECK: vpsravq %ymm21, %ymm24, %ymm30 {%k7} {z} +// CHECK: encoding: [0x62,0x22,0xbd,0xa7,0x46,0xf5] + vpsravq %ymm21, %ymm24, %ymm30 {%k7} {z} + +// CHECK: vpsravq (%rcx), %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x20,0x46,0x31] + vpsravq (%rcx), %ymm24, %ymm30 + +// CHECK: vpsravq 291(%rax,%r14,8), %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x22,0xbd,0x20,0x46,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsravq 291(%rax,%r14,8), %ymm24, %ymm30 + +// CHECK: vpsravq (%rcx){1to4}, %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x30,0x46,0x31] + vpsravq (%rcx){1to4}, %ymm24, %ymm30 + +// CHECK: vpsravq 4064(%rdx), %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x20,0x46,0x72,0x7f] + vpsravq 4064(%rdx), %ymm24, %ymm30 + +// CHECK: vpsravq 4096(%rdx), %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x20,0x46,0xb2,0x00,0x10,0x00,0x00] + vpsravq 4096(%rdx), %ymm24, %ymm30 + +// CHECK: vpsravq -4096(%rdx), %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x20,0x46,0x72,0x80] + vpsravq -4096(%rdx), %ymm24, %ymm30 + +// CHECK: vpsravq -4128(%rdx), %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x20,0x46,0xb2,0xe0,0xef,0xff,0xff] + vpsravq -4128(%rdx), %ymm24, %ymm30 + +// CHECK: vpsravq 1016(%rdx){1to4}, %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x30,0x46,0x72,0x7f] + vpsravq 1016(%rdx){1to4}, %ymm24, %ymm30 + +// CHECK: vpsravq 1024(%rdx){1to4}, %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x30,0x46,0xb2,0x00,0x04,0x00,0x00] + vpsravq 1024(%rdx){1to4}, %ymm24, %ymm30 + +// CHECK: vpsravq -1024(%rdx){1to4}, %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x30,0x46,0x72,0x80] + vpsravq -1024(%rdx){1to4}, %ymm24, %ymm30 + +// CHECK: vpsravq -1032(%rdx){1to4}, %ymm24, %ymm30 +// CHECK: encoding: [0x62,0x62,0xbd,0x30,0x46,0xb2,0xf8,0xfb,0xff,0xff] + vpsravq -1032(%rdx){1to4}, %ymm24, %ymm30 + +// CHECK: vpsrld %xmm20, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x21,0x5d,0x00,0xd2,0xf4] + vpsrld %xmm20, %xmm20, %xmm30 + +// CHECK: vpsrld %xmm20, %xmm20, %xmm30 {%k3} +// CHECK: encoding: [0x62,0x21,0x5d,0x03,0xd2,0xf4] + vpsrld %xmm20, %xmm20, %xmm30 {%k3} + +// CHECK: vpsrld %xmm20, %xmm20, %xmm30 {%k3} {z} +// CHECK: encoding: [0x62,0x21,0x5d,0x83,0xd2,0xf4] + vpsrld %xmm20, %xmm20, %xmm30 {%k3} {z} + +// CHECK: vpsrld (%rcx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x61,0x5d,0x00,0xd2,0x31] + vpsrld (%rcx), %xmm20, %xmm30 + +// CHECK: vpsrld 291(%rax,%r14,8), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x21,0x5d,0x00,0xd2,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsrld 291(%rax,%r14,8), %xmm20, %xmm30 + +// CHECK: vpsrld 2032(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x61,0x5d,0x00,0xd2,0x72,0x7f] + vpsrld 2032(%rdx), %xmm20, %xmm30 + +// CHECK: vpsrld 2048(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x61,0x5d,0x00,0xd2,0xb2,0x00,0x08,0x00,0x00] + vpsrld 2048(%rdx), %xmm20, %xmm30 + +// CHECK: vpsrld -2048(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x61,0x5d,0x00,0xd2,0x72,0x80] + vpsrld -2048(%rdx), %xmm20, %xmm30 + +// CHECK: vpsrld -2064(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x61,0x5d,0x00,0xd2,0xb2,0xf0,0xf7,0xff,0xff] + vpsrld -2064(%rdx), %xmm20, %xmm30 + +// CHECK: vpsrld %xmm25, %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x01,0x6d,0x20,0xd2,0xd1] + vpsrld %xmm25, %ymm18, %ymm26 + +// CHECK: vpsrld %xmm25, %ymm18, %ymm26 {%k1} +// CHECK: encoding: [0x62,0x01,0x6d,0x21,0xd2,0xd1] + vpsrld %xmm25, %ymm18, %ymm26 {%k1} + +// CHECK: vpsrld %xmm25, %ymm18, %ymm26 {%k1} {z} +// CHECK: encoding: [0x62,0x01,0x6d,0xa1,0xd2,0xd1] + vpsrld %xmm25, %ymm18, %ymm26 {%k1} {z} + +// CHECK: vpsrld (%rcx), %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd2,0x11] + vpsrld (%rcx), %ymm18, %ymm26 + +// CHECK: vpsrld 291(%rax,%r14,8), %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x21,0x6d,0x20,0xd2,0x94,0xf0,0x23,0x01,0x00,0x00] + vpsrld 291(%rax,%r14,8), %ymm18, %ymm26 + +// CHECK: vpsrld 2032(%rdx), %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd2,0x52,0x7f] + vpsrld 2032(%rdx), %ymm18, %ymm26 + +// CHECK: vpsrld 2048(%rdx), %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd2,0x92,0x00,0x08,0x00,0x00] + vpsrld 2048(%rdx), %ymm18, %ymm26 + +// CHECK: vpsrld -2048(%rdx), %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd2,0x52,0x80] + vpsrld -2048(%rdx), %ymm18, %ymm26 + +// CHECK: vpsrld -2064(%rdx), %ymm18, %ymm26 +// CHECK: encoding: [0x62,0x61,0x6d,0x20,0xd2,0x92,0xf0,0xf7,0xff,0xff] + vpsrld -2064(%rdx), %ymm18, %ymm26 + +// CHECK: vpsrlq %xmm17, %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x21,0xd5,0x00,0xd3,0xe1] + vpsrlq %xmm17, %xmm21, %xmm28 + +// CHECK: vpsrlq %xmm17, %xmm21, %xmm28 {%k2} +// CHECK: encoding: [0x62,0x21,0xd5,0x02,0xd3,0xe1] + vpsrlq %xmm17, %xmm21, %xmm28 {%k2} + +// CHECK: vpsrlq %xmm17, %xmm21, %xmm28 {%k2} {z} +// CHECK: encoding: [0x62,0x21,0xd5,0x82,0xd3,0xe1] + vpsrlq %xmm17, %xmm21, %xmm28 {%k2} {z} + +// CHECK: vpsrlq (%rcx), %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x61,0xd5,0x00,0xd3,0x21] + vpsrlq (%rcx), %xmm21, %xmm28 + +// CHECK: vpsrlq 291(%rax,%r14,8), %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x21,0xd5,0x00,0xd3,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsrlq 291(%rax,%r14,8), %xmm21, %xmm28 + +// CHECK: vpsrlq 2032(%rdx), %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x61,0xd5,0x00,0xd3,0x62,0x7f] + vpsrlq 2032(%rdx), %xmm21, %xmm28 + +// CHECK: vpsrlq 2048(%rdx), %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x61,0xd5,0x00,0xd3,0xa2,0x00,0x08,0x00,0x00] + vpsrlq 2048(%rdx), %xmm21, %xmm28 + +// CHECK: vpsrlq -2048(%rdx), %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x61,0xd5,0x00,0xd3,0x62,0x80] + vpsrlq -2048(%rdx), %xmm21, %xmm28 + +// CHECK: vpsrlq -2064(%rdx), %xmm21, %xmm28 +// CHECK: encoding: [0x62,0x61,0xd5,0x00,0xd3,0xa2,0xf0,0xf7,0xff,0xff] + vpsrlq -2064(%rdx), %xmm21, %xmm28 + +// CHECK: vpsrlq %xmm18, %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xa1,0xad,0x20,0xd3,0xf2] + vpsrlq %xmm18, %ymm26, %ymm22 + +// CHECK: vpsrlq %xmm18, %ymm26, %ymm22 {%k2} +// CHECK: encoding: [0x62,0xa1,0xad,0x22,0xd3,0xf2] + vpsrlq %xmm18, %ymm26, %ymm22 {%k2} + +// CHECK: vpsrlq %xmm18, %ymm26, %ymm22 {%k2} {z} +// CHECK: encoding: [0x62,0xa1,0xad,0xa2,0xd3,0xf2] + vpsrlq %xmm18, %ymm26, %ymm22 {%k2} {z} + +// CHECK: vpsrlq (%rcx), %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xe1,0xad,0x20,0xd3,0x31] + vpsrlq (%rcx), %ymm26, %ymm22 + +// CHECK: vpsrlq 291(%rax,%r14,8), %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xa1,0xad,0x20,0xd3,0xb4,0xf0,0x23,0x01,0x00,0x00] + vpsrlq 291(%rax,%r14,8), %ymm26, %ymm22 + +// CHECK: vpsrlq 2032(%rdx), %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xe1,0xad,0x20,0xd3,0x72,0x7f] + vpsrlq 2032(%rdx), %ymm26, %ymm22 + +// CHECK: vpsrlq 2048(%rdx), %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xe1,0xad,0x20,0xd3,0xb2,0x00,0x08,0x00,0x00] + vpsrlq 2048(%rdx), %ymm26, %ymm22 + +// CHECK: vpsrlq -2048(%rdx), %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xe1,0xad,0x20,0xd3,0x72,0x80] + vpsrlq -2048(%rdx), %ymm26, %ymm22 + +// CHECK: vpsrlq -2064(%rdx), %ymm26, %ymm22 +// CHECK: encoding: [0x62,0xe1,0xad,0x20,0xd3,0xb2,0xf0,0xf7,0xff,0xff] + vpsrlq -2064(%rdx), %ymm26, %ymm22 + +// CHECK: vpsrlvd %xmm18, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x22,0x35,0x00,0x45,0xea] + vpsrlvd %xmm18, %xmm25, %xmm29 + +// CHECK: vpsrlvd %xmm18, %xmm25, %xmm29 {%k3} +// CHECK: encoding: [0x62,0x22,0x35,0x03,0x45,0xea] + vpsrlvd %xmm18, %xmm25, %xmm29 {%k3} + +// CHECK: vpsrlvd %xmm18, %xmm25, %xmm29 {%k3} {z} +// CHECK: encoding: [0x62,0x22,0x35,0x83,0x45,0xea] + vpsrlvd %xmm18, %xmm25, %xmm29 {%k3} {z} + +// CHECK: vpsrlvd (%rcx), %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x00,0x45,0x29] + vpsrlvd (%rcx), %xmm25, %xmm29 + +// CHECK: vpsrlvd 291(%rax,%r14,8), %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x22,0x35,0x00,0x45,0xac,0xf0,0x23,0x01,0x00,0x00] + vpsrlvd 291(%rax,%r14,8), %xmm25, %xmm29 + +// CHECK: vpsrlvd (%rcx){1to4}, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x10,0x45,0x29] + vpsrlvd (%rcx){1to4}, %xmm25, %xmm29 + +// CHECK: vpsrlvd 2032(%rdx), %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x00,0x45,0x6a,0x7f] + vpsrlvd 2032(%rdx), %xmm25, %xmm29 + +// CHECK: vpsrlvd 2048(%rdx), %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x00,0x45,0xaa,0x00,0x08,0x00,0x00] + vpsrlvd 2048(%rdx), %xmm25, %xmm29 + +// CHECK: vpsrlvd -2048(%rdx), %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x00,0x45,0x6a,0x80] + vpsrlvd -2048(%rdx), %xmm25, %xmm29 + +// CHECK: vpsrlvd -2064(%rdx), %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x00,0x45,0xaa,0xf0,0xf7,0xff,0xff] + vpsrlvd -2064(%rdx), %xmm25, %xmm29 + +// CHECK: vpsrlvd 508(%rdx){1to4}, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x10,0x45,0x6a,0x7f] + vpsrlvd 508(%rdx){1to4}, %xmm25, %xmm29 + +// CHECK: vpsrlvd 512(%rdx){1to4}, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x10,0x45,0xaa,0x00,0x02,0x00,0x00] + vpsrlvd 512(%rdx){1to4}, %xmm25, %xmm29 + +// CHECK: vpsrlvd -512(%rdx){1to4}, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x10,0x45,0x6a,0x80] + vpsrlvd -512(%rdx){1to4}, %xmm25, %xmm29 + +// CHECK: vpsrlvd -516(%rdx){1to4}, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x62,0x35,0x10,0x45,0xaa,0xfc,0xfd,0xff,0xff] + vpsrlvd -516(%rdx){1to4}, %xmm25, %xmm29 + +// CHECK: vpsrlvd %ymm20, %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x22,0x55,0x20,0x45,0xe4] + vpsrlvd %ymm20, %ymm21, %ymm28 + +// CHECK: vpsrlvd %ymm20, %ymm21, %ymm28 {%k5} +// CHECK: encoding: [0x62,0x22,0x55,0x25,0x45,0xe4] + vpsrlvd %ymm20, %ymm21, %ymm28 {%k5} + +// CHECK: vpsrlvd %ymm20, %ymm21, %ymm28 {%k5} {z} +// CHECK: encoding: [0x62,0x22,0x55,0xa5,0x45,0xe4] + vpsrlvd %ymm20, %ymm21, %ymm28 {%k5} {z} + +// CHECK: vpsrlvd (%rcx), %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x20,0x45,0x21] + vpsrlvd (%rcx), %ymm21, %ymm28 + +// CHECK: vpsrlvd 291(%rax,%r14,8), %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x22,0x55,0x20,0x45,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsrlvd 291(%rax,%r14,8), %ymm21, %ymm28 + +// CHECK: vpsrlvd (%rcx){1to8}, %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x30,0x45,0x21] + vpsrlvd (%rcx){1to8}, %ymm21, %ymm28 + +// CHECK: vpsrlvd 4064(%rdx), %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x20,0x45,0x62,0x7f] + vpsrlvd 4064(%rdx), %ymm21, %ymm28 + +// CHECK: vpsrlvd 4096(%rdx), %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x20,0x45,0xa2,0x00,0x10,0x00,0x00] + vpsrlvd 4096(%rdx), %ymm21, %ymm28 + +// CHECK: vpsrlvd -4096(%rdx), %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x20,0x45,0x62,0x80] + vpsrlvd -4096(%rdx), %ymm21, %ymm28 + +// CHECK: vpsrlvd -4128(%rdx), %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x20,0x45,0xa2,0xe0,0xef,0xff,0xff] + vpsrlvd -4128(%rdx), %ymm21, %ymm28 + +// CHECK: vpsrlvd 508(%rdx){1to8}, %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x30,0x45,0x62,0x7f] + vpsrlvd 508(%rdx){1to8}, %ymm21, %ymm28 + +// CHECK: vpsrlvd 512(%rdx){1to8}, %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x30,0x45,0xa2,0x00,0x02,0x00,0x00] + vpsrlvd 512(%rdx){1to8}, %ymm21, %ymm28 + +// CHECK: vpsrlvd -512(%rdx){1to8}, %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x30,0x45,0x62,0x80] + vpsrlvd -512(%rdx){1to8}, %ymm21, %ymm28 + +// CHECK: vpsrlvd -516(%rdx){1to8}, %ymm21, %ymm28 +// CHECK: encoding: [0x62,0x62,0x55,0x30,0x45,0xa2,0xfc,0xfd,0xff,0xff] + vpsrlvd -516(%rdx){1to8}, %ymm21, %ymm28 + +// CHECK: vpsrlvq %xmm27, %xmm28, %xmm21 +// CHECK: encoding: [0x62,0x82,0x9d,0x00,0x45,0xeb] + vpsrlvq %xmm27, %xmm28, %xmm21 + +// CHECK: vpsrlvq %xmm27, %xmm28, %xmm21 {%k1} +// CHECK: encoding: [0x62,0x82,0x9d,0x01,0x45,0xeb] + vpsrlvq %xmm27, %xmm28, %xmm21 {%k1} + +// CHECK: vpsrlvq %xmm27, %xmm28, %xmm21 {%k1} {z} +// CHECK: encoding: [0x62,0x82,0x9d,0x81,0x45,0xeb] + vpsrlvq %xmm27, %xmm28, %xmm21 {%k1} {z} + +// CHECK: vpsrlvq (%rcx), %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x00,0x45,0x29] + vpsrlvq (%rcx), %xmm28, %xmm21 + +// CHECK: vpsrlvq 291(%rax,%r14,8), %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xa2,0x9d,0x00,0x45,0xac,0xf0,0x23,0x01,0x00,0x00] + vpsrlvq 291(%rax,%r14,8), %xmm28, %xmm21 + +// CHECK: vpsrlvq (%rcx){1to2}, %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x10,0x45,0x29] + vpsrlvq (%rcx){1to2}, %xmm28, %xmm21 + +// CHECK: vpsrlvq 2032(%rdx), %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x00,0x45,0x6a,0x7f] + vpsrlvq 2032(%rdx), %xmm28, %xmm21 + +// CHECK: vpsrlvq 2048(%rdx), %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x00,0x45,0xaa,0x00,0x08,0x00,0x00] + vpsrlvq 2048(%rdx), %xmm28, %xmm21 + +// CHECK: vpsrlvq -2048(%rdx), %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x00,0x45,0x6a,0x80] + vpsrlvq -2048(%rdx), %xmm28, %xmm21 + +// CHECK: vpsrlvq -2064(%rdx), %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x00,0x45,0xaa,0xf0,0xf7,0xff,0xff] + vpsrlvq -2064(%rdx), %xmm28, %xmm21 + +// CHECK: vpsrlvq 1016(%rdx){1to2}, %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x10,0x45,0x6a,0x7f] + vpsrlvq 1016(%rdx){1to2}, %xmm28, %xmm21 + +// CHECK: vpsrlvq 1024(%rdx){1to2}, %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x10,0x45,0xaa,0x00,0x04,0x00,0x00] + vpsrlvq 1024(%rdx){1to2}, %xmm28, %xmm21 + +// CHECK: vpsrlvq -1024(%rdx){1to2}, %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x10,0x45,0x6a,0x80] + vpsrlvq -1024(%rdx){1to2}, %xmm28, %xmm21 + +// CHECK: vpsrlvq -1032(%rdx){1to2}, %xmm28, %xmm21 +// CHECK: encoding: [0x62,0xe2,0x9d,0x10,0x45,0xaa,0xf8,0xfb,0xff,0xff] + vpsrlvq -1032(%rdx){1to2}, %xmm28, %xmm21 + +// CHECK: vpsrlvq %ymm26, %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x02,0xa5,0x20,0x45,0xe2] + vpsrlvq %ymm26, %ymm27, %ymm28 + +// CHECK: vpsrlvq %ymm26, %ymm27, %ymm28 {%k7} +// CHECK: encoding: [0x62,0x02,0xa5,0x27,0x45,0xe2] + vpsrlvq %ymm26, %ymm27, %ymm28 {%k7} + +// CHECK: vpsrlvq %ymm26, %ymm27, %ymm28 {%k7} {z} +// CHECK: encoding: [0x62,0x02,0xa5,0xa7,0x45,0xe2] + vpsrlvq %ymm26, %ymm27, %ymm28 {%k7} {z} + +// CHECK: vpsrlvq (%rcx), %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x20,0x45,0x21] + vpsrlvq (%rcx), %ymm27, %ymm28 + +// CHECK: vpsrlvq 291(%rax,%r14,8), %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x22,0xa5,0x20,0x45,0xa4,0xf0,0x23,0x01,0x00,0x00] + vpsrlvq 291(%rax,%r14,8), %ymm27, %ymm28 + +// CHECK: vpsrlvq (%rcx){1to4}, %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x30,0x45,0x21] + vpsrlvq (%rcx){1to4}, %ymm27, %ymm28 + +// CHECK: vpsrlvq 4064(%rdx), %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x20,0x45,0x62,0x7f] + vpsrlvq 4064(%rdx), %ymm27, %ymm28 + +// CHECK: vpsrlvq 4096(%rdx), %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x20,0x45,0xa2,0x00,0x10,0x00,0x00] + vpsrlvq 4096(%rdx), %ymm27, %ymm28 + +// CHECK: vpsrlvq -4096(%rdx), %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x20,0x45,0x62,0x80] + vpsrlvq -4096(%rdx), %ymm27, %ymm28 + +// CHECK: vpsrlvq -4128(%rdx), %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x20,0x45,0xa2,0xe0,0xef,0xff,0xff] + vpsrlvq -4128(%rdx), %ymm27, %ymm28 + +// CHECK: vpsrlvq 1016(%rdx){1to4}, %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x30,0x45,0x62,0x7f] + vpsrlvq 1016(%rdx){1to4}, %ymm27, %ymm28 + +// CHECK: vpsrlvq 1024(%rdx){1to4}, %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x30,0x45,0xa2,0x00,0x04,0x00,0x00] + vpsrlvq 1024(%rdx){1to4}, %ymm27, %ymm28 + +// CHECK: vpsrlvq -1024(%rdx){1to4}, %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x30,0x45,0x62,0x80] + vpsrlvq -1024(%rdx){1to4}, %ymm27, %ymm28 + +// CHECK: vpsrlvq -1032(%rdx){1to4}, %ymm27, %ymm28 +// CHECK: encoding: [0x62,0x62,0xa5,0x30,0x45,0xa2,0xf8,0xfb,0xff,0xff] + vpsrlvq -1032(%rdx){1to4}, %ymm27, %ymm28 + +// CHECK: vpsrld $171, %xmm23, %xmm30 +// CHECK: encoding: [0x62,0xb1,0x0d,0x00,0x72,0xd7,0xab] + vpsrld $171, %xmm23, %xmm30 + +// CHECK: vpsrld $171, %xmm23, %xmm30 {%k3} +// CHECK: encoding: [0x62,0xb1,0x0d,0x03,0x72,0xd7,0xab] + vpsrld $171, %xmm23, %xmm30 {%k3} + +// CHECK: vpsrld $171, %xmm23, %xmm30 {%k3} {z} +// CHECK: encoding: [0x62,0xb1,0x0d,0x83,0x72,0xd7,0xab] + vpsrld $171, %xmm23, %xmm30 {%k3} {z} + +// CHECK: vpsrld $123, %xmm23, %xmm30 +// CHECK: encoding: [0x62,0xb1,0x0d,0x00,0x72,0xd7,0x7b] + vpsrld $123, %xmm23, %xmm30 + +// CHECK: vpsrld $123, (%rcx), %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x00,0x72,0x11,0x7b] + vpsrld $123, (%rcx), %xmm30 + +// CHECK: vpsrld $123, 291(%rax,%r14,8), %xmm30 +// CHECK: encoding: [0x62,0xb1,0x0d,0x00,0x72,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrld $123, 291(%rax,%r14,8), %xmm30 + +// CHECK: vpsrld $123, (%rcx){1to4}, %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x10,0x72,0x11,0x7b] + vpsrld $123, (%rcx){1to4}, %xmm30 + +// CHECK: vpsrld $123, 2032(%rdx), %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x00,0x72,0x52,0x7f,0x7b] + vpsrld $123, 2032(%rdx), %xmm30 + +// CHECK: vpsrld $123, 2048(%rdx), %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x00,0x72,0x92,0x00,0x08,0x00,0x00,0x7b] + vpsrld $123, 2048(%rdx), %xmm30 + +// CHECK: vpsrld $123, -2048(%rdx), %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x00,0x72,0x52,0x80,0x7b] + vpsrld $123, -2048(%rdx), %xmm30 + +// CHECK: vpsrld $123, -2064(%rdx), %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x00,0x72,0x92,0xf0,0xf7,0xff,0xff,0x7b] + vpsrld $123, -2064(%rdx), %xmm30 + +// CHECK: vpsrld $123, 508(%rdx){1to4}, %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x10,0x72,0x52,0x7f,0x7b] + vpsrld $123, 508(%rdx){1to4}, %xmm30 + +// CHECK: vpsrld $123, 512(%rdx){1to4}, %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x10,0x72,0x92,0x00,0x02,0x00,0x00,0x7b] + vpsrld $123, 512(%rdx){1to4}, %xmm30 + +// CHECK: vpsrld $123, -512(%rdx){1to4}, %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x10,0x72,0x52,0x80,0x7b] + vpsrld $123, -512(%rdx){1to4}, %xmm30 + +// CHECK: vpsrld $123, -516(%rdx){1to4}, %xmm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x10,0x72,0x92,0xfc,0xfd,0xff,0xff,0x7b] + vpsrld $123, -516(%rdx){1to4}, %xmm30 + +// CHECK: vpsrld $171, %ymm24, %ymm22 +// CHECK: encoding: [0x62,0x91,0x4d,0x20,0x72,0xd0,0xab] + vpsrld $171, %ymm24, %ymm22 + +// CHECK: vpsrld $171, %ymm24, %ymm22 {%k2} +// CHECK: encoding: [0x62,0x91,0x4d,0x22,0x72,0xd0,0xab] + vpsrld $171, %ymm24, %ymm22 {%k2} + +// CHECK: vpsrld $171, %ymm24, %ymm22 {%k2} {z} +// CHECK: encoding: [0x62,0x91,0x4d,0xa2,0x72,0xd0,0xab] + vpsrld $171, %ymm24, %ymm22 {%k2} {z} + +// CHECK: vpsrld $123, %ymm24, %ymm22 +// CHECK: encoding: [0x62,0x91,0x4d,0x20,0x72,0xd0,0x7b] + vpsrld $123, %ymm24, %ymm22 + +// CHECK: vpsrld $123, (%rcx), %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x20,0x72,0x11,0x7b] + vpsrld $123, (%rcx), %ymm22 + +// CHECK: vpsrld $123, 291(%rax,%r14,8), %ymm22 +// CHECK: encoding: [0x62,0xb1,0x4d,0x20,0x72,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrld $123, 291(%rax,%r14,8), %ymm22 + +// CHECK: vpsrld $123, (%rcx){1to8}, %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x30,0x72,0x11,0x7b] + vpsrld $123, (%rcx){1to8}, %ymm22 + +// CHECK: vpsrld $123, 4064(%rdx), %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x20,0x72,0x52,0x7f,0x7b] + vpsrld $123, 4064(%rdx), %ymm22 + +// CHECK: vpsrld $123, 4096(%rdx), %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x20,0x72,0x92,0x00,0x10,0x00,0x00,0x7b] + vpsrld $123, 4096(%rdx), %ymm22 + +// CHECK: vpsrld $123, -4096(%rdx), %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x20,0x72,0x52,0x80,0x7b] + vpsrld $123, -4096(%rdx), %ymm22 + +// CHECK: vpsrld $123, -4128(%rdx), %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x20,0x72,0x92,0xe0,0xef,0xff,0xff,0x7b] + vpsrld $123, -4128(%rdx), %ymm22 + +// CHECK: vpsrld $123, 508(%rdx){1to8}, %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x30,0x72,0x52,0x7f,0x7b] + vpsrld $123, 508(%rdx){1to8}, %ymm22 + +// CHECK: vpsrld $123, 512(%rdx){1to8}, %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x30,0x72,0x92,0x00,0x02,0x00,0x00,0x7b] + vpsrld $123, 512(%rdx){1to8}, %ymm22 + +// CHECK: vpsrld $123, -512(%rdx){1to8}, %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x30,0x72,0x52,0x80,0x7b] + vpsrld $123, -512(%rdx){1to8}, %ymm22 + +// CHECK: vpsrld $123, -516(%rdx){1to8}, %ymm22 +// CHECK: encoding: [0x62,0xf1,0x4d,0x30,0x72,0x92,0xfc,0xfd,0xff,0xff,0x7b] + vpsrld $123, -516(%rdx){1to8}, %ymm22 + +// CHECK: vpsrlq $171, %xmm24, %xmm17 +// CHECK: encoding: [0x62,0x91,0xf5,0x00,0x73,0xd0,0xab] + vpsrlq $171, %xmm24, %xmm17 + +// CHECK: vpsrlq $171, %xmm24, %xmm17 {%k6} +// CHECK: encoding: [0x62,0x91,0xf5,0x06,0x73,0xd0,0xab] + vpsrlq $171, %xmm24, %xmm17 {%k6} + +// CHECK: vpsrlq $171, %xmm24, %xmm17 {%k6} {z} +// CHECK: encoding: [0x62,0x91,0xf5,0x86,0x73,0xd0,0xab] + vpsrlq $171, %xmm24, %xmm17 {%k6} {z} + +// CHECK: vpsrlq $123, %xmm24, %xmm17 +// CHECK: encoding: [0x62,0x91,0xf5,0x00,0x73,0xd0,0x7b] + vpsrlq $123, %xmm24, %xmm17 + +// CHECK: vpsrlq $123, (%rcx), %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x00,0x73,0x11,0x7b] + vpsrlq $123, (%rcx), %xmm17 + +// CHECK: vpsrlq $123, 291(%rax,%r14,8), %xmm17 +// CHECK: encoding: [0x62,0xb1,0xf5,0x00,0x73,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrlq $123, 291(%rax,%r14,8), %xmm17 + +// CHECK: vpsrlq $123, (%rcx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x10,0x73,0x11,0x7b] + vpsrlq $123, (%rcx){1to2}, %xmm17 + +// CHECK: vpsrlq $123, 2032(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x00,0x73,0x52,0x7f,0x7b] + vpsrlq $123, 2032(%rdx), %xmm17 + +// CHECK: vpsrlq $123, 2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x00,0x73,0x92,0x00,0x08,0x00,0x00,0x7b] + vpsrlq $123, 2048(%rdx), %xmm17 + +// CHECK: vpsrlq $123, -2048(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x00,0x73,0x52,0x80,0x7b] + vpsrlq $123, -2048(%rdx), %xmm17 + +// CHECK: vpsrlq $123, -2064(%rdx), %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x00,0x73,0x92,0xf0,0xf7,0xff,0xff,0x7b] + vpsrlq $123, -2064(%rdx), %xmm17 + +// CHECK: vpsrlq $123, 1016(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x10,0x73,0x52,0x7f,0x7b] + vpsrlq $123, 1016(%rdx){1to2}, %xmm17 + +// CHECK: vpsrlq $123, 1024(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x10,0x73,0x92,0x00,0x04,0x00,0x00,0x7b] + vpsrlq $123, 1024(%rdx){1to2}, %xmm17 + +// CHECK: vpsrlq $123, -1024(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x10,0x73,0x52,0x80,0x7b] + vpsrlq $123, -1024(%rdx){1to2}, %xmm17 + +// CHECK: vpsrlq $123, -1032(%rdx){1to2}, %xmm17 +// CHECK: encoding: [0x62,0xf1,0xf5,0x10,0x73,0x92,0xf8,0xfb,0xff,0xff,0x7b] + vpsrlq $123, -1032(%rdx){1to2}, %xmm17 + +// CHECK: vpsrlq $171, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x91,0x95,0x20,0x73,0xd3,0xab] + vpsrlq $171, %ymm27, %ymm29 + +// CHECK: vpsrlq $171, %ymm27, %ymm29 {%k3} +// CHECK: encoding: [0x62,0x91,0x95,0x23,0x73,0xd3,0xab] + vpsrlq $171, %ymm27, %ymm29 {%k3} + +// CHECK: vpsrlq $171, %ymm27, %ymm29 {%k3} {z} +// CHECK: encoding: [0x62,0x91,0x95,0xa3,0x73,0xd3,0xab] + vpsrlq $171, %ymm27, %ymm29 {%k3} {z} + +// CHECK: vpsrlq $123, %ymm27, %ymm29 +// CHECK: encoding: [0x62,0x91,0x95,0x20,0x73,0xd3,0x7b] + vpsrlq $123, %ymm27, %ymm29 + +// CHECK: vpsrlq $123, (%rcx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x20,0x73,0x11,0x7b] + vpsrlq $123, (%rcx), %ymm29 + +// CHECK: vpsrlq $123, 291(%rax,%r14,8), %ymm29 +// CHECK: encoding: [0x62,0xb1,0x95,0x20,0x73,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b] + vpsrlq $123, 291(%rax,%r14,8), %ymm29 + +// CHECK: vpsrlq $123, (%rcx){1to4}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x30,0x73,0x11,0x7b] + vpsrlq $123, (%rcx){1to4}, %ymm29 + +// CHECK: vpsrlq $123, 4064(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x20,0x73,0x52,0x7f,0x7b] + vpsrlq $123, 4064(%rdx), %ymm29 + +// CHECK: vpsrlq $123, 4096(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x20,0x73,0x92,0x00,0x10,0x00,0x00,0x7b] + vpsrlq $123, 4096(%rdx), %ymm29 + +// CHECK: vpsrlq $123, -4096(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x20,0x73,0x52,0x80,0x7b] + vpsrlq $123, -4096(%rdx), %ymm29 + +// CHECK: vpsrlq $123, -4128(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x20,0x73,0x92,0xe0,0xef,0xff,0xff,0x7b] + vpsrlq $123, -4128(%rdx), %ymm29 + +// CHECK: vpsrlq $123, 1016(%rdx){1to4}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x30,0x73,0x52,0x7f,0x7b] + vpsrlq $123, 1016(%rdx){1to4}, %ymm29 + +// CHECK: vpsrlq $123, 1024(%rdx){1to4}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x30,0x73,0x92,0x00,0x04,0x00,0x00,0x7b] + vpsrlq $123, 1024(%rdx){1to4}, %ymm29 + +// CHECK: vpsrlq $123, -1024(%rdx){1to4}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x30,0x73,0x52,0x80,0x7b] + vpsrlq $123, -1024(%rdx){1to4}, %ymm29 + +// CHECK: vpsrlq $123, -1032(%rdx){1to4}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x95,0x30,0x73,0x92,0xf8,0xfb,0xff,0xff,0x7b] + vpsrlq $123, -1032(%rdx){1to4}, %ymm29 + +// CHECK: vprolvd %xmm20, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x22,0x5d,0x00,0x15,0xf4] + vprolvd %xmm20, %xmm20, %xmm30 + +// CHECK: vprolvd %xmm20, %xmm20, %xmm30 {%k2} +// CHECK: encoding: [0x62,0x22,0x5d,0x02,0x15,0xf4] + vprolvd %xmm20, %xmm20, %xmm30 {%k2} + +// CHECK: vprolvd %xmm20, %xmm20, %xmm30 {%k2} {z} +// CHECK: encoding: [0x62,0x22,0x5d,0x82,0x15,0xf4] + vprolvd %xmm20, %xmm20, %xmm30 {%k2} {z} + +// CHECK: vprolvd (%rcx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x15,0x31] + vprolvd (%rcx), %xmm20, %xmm30 + +// CHECK: vprolvd 291(%rax,%r14,8), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x22,0x5d,0x00,0x15,0xb4,0xf0,0x23,0x01,0x00,0x00] + vprolvd 291(%rax,%r14,8), %xmm20, %xmm30 + +// CHECK: vprolvd (%rcx){1to4}, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x10,0x15,0x31] + vprolvd (%rcx){1to4}, %xmm20, %xmm30 + +// CHECK: vprolvd 2032(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x15,0x72,0x7f] + vprolvd 2032(%rdx), %xmm20, %xmm30 + +// CHECK: vprolvd 2048(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x15,0xb2,0x00,0x08,0x00,0x00] + vprolvd 2048(%rdx), %xmm20, %xmm30 + +// CHECK: vprolvd -2048(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x15,0x72,0x80] + vprolvd -2048(%rdx), %xmm20, %xmm30 + +// CHECK: vprolvd -2064(%rdx), %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x15,0xb2,0xf0,0xf7,0xff,0xff] + vprolvd -2064(%rdx), %xmm20, %xmm30 + +// CHECK: vprolvd 508(%rdx){1to4}, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x10,0x15,0x72,0x7f] + vprolvd 508(%rdx){1to4}, %xmm20, %xmm30 + +// CHECK: vprolvd 512(%rdx){1to4}, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x10,0x15,0xb2,0x00,0x02,0x00,0x00] + vprolvd 512(%rdx){1to4}, %xmm20, %xmm30 + +// CHECK: vprolvd -512(%rdx){1to4}, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x10,0x15,0x72,0x80] + vprolvd -512(%rdx){1to4}, %xmm20, %xmm30 + +// CHECK: vprolvd -516(%rdx){1to4}, %xmm20, %xmm30 +// CHECK: encoding: [0x62,0x62,0x5d,0x10,0x15,0xb2,0xfc,0xfd,0xff,0xff] + vprolvd -516(%rdx){1to4}, %xmm20, %xmm30 + +// CHECK: vprolvd %ymm19, %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x22,0x45,0x20,0x15,0xd3] + vprolvd %ymm19, %ymm23, %ymm26 + +// CHECK: vprolvd %ymm19, %ymm23, %ymm26 {%k1} +// CHECK: encoding: [0x62,0x22,0x45,0x21,0x15,0xd3] + vprolvd %ymm19, %ymm23, %ymm26 {%k1} + +// CHECK: vprolvd %ymm19, %ymm23, %ymm26 {%k1} {z} +// CHECK: encoding: [0x62,0x22,0x45,0xa1,0x15,0xd3] + vprolvd %ymm19, %ymm23, %ymm26 {%k1} {z} + +// CHECK: vprolvd (%rcx), %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x20,0x15,0x11] + vprolvd (%rcx), %ymm23, %ymm26 + +// CHECK: vprolvd 291(%rax,%r14,8), %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x22,0x45,0x20,0x15,0x94,0xf0,0x23,0x01,0x00,0x00] + vprolvd 291(%rax,%r14,8), %ymm23, %ymm26 + +// CHECK: vprolvd (%rcx){1to8}, %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x30,0x15,0x11] + vprolvd (%rcx){1to8}, %ymm23, %ymm26 + +// CHECK: vprolvd 4064(%rdx), %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x20,0x15,0x52,0x7f] + vprolvd 4064(%rdx), %ymm23, %ymm26 + +// CHECK: vprolvd 4096(%rdx), %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x20,0x15,0x92,0x00,0x10,0x00,0x00] + vprolvd 4096(%rdx), %ymm23, %ymm26 + +// CHECK: vprolvd -4096(%rdx), %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x20,0x15,0x52,0x80] + vprolvd -4096(%rdx), %ymm23, %ymm26 + +// CHECK: vprolvd -4128(%rdx), %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x20,0x15,0x92,0xe0,0xef,0xff,0xff] + vprolvd -4128(%rdx), %ymm23, %ymm26 + +// CHECK: vprolvd 508(%rdx){1to8}, %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x30,0x15,0x52,0x7f] + vprolvd 508(%rdx){1to8}, %ymm23, %ymm26 + +// CHECK: vprolvd 512(%rdx){1to8}, %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x30,0x15,0x92,0x00,0x02,0x00,0x00] + vprolvd 512(%rdx){1to8}, %ymm23, %ymm26 + +// CHECK: vprolvd -512(%rdx){1to8}, %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x30,0x15,0x52,0x80] + vprolvd -512(%rdx){1to8}, %ymm23, %ymm26 + +// CHECK: vprolvd -516(%rdx){1to8}, %ymm23, %ymm26 +// CHECK: encoding: [0x62,0x62,0x45,0x30,0x15,0x92,0xfc,0xfd,0xff,0xff] + vprolvd -516(%rdx){1to8}, %ymm23, %ymm26 + +// CHECK: vprold $171, %xmm23, %xmm18 +// CHECK: encoding: [0x62,0xb1,0x6d,0x00,0x72,0xcf,0xab] + vprold $171, %xmm23, %xmm18 + +// CHECK: vprold $171, %xmm23, %xmm18 {%k3} +// CHECK: encoding: [0x62,0xb1,0x6d,0x03,0x72,0xcf,0xab] + vprold $171, %xmm23, %xmm18 {%k3} + +// CHECK: vprold $171, %xmm23, %xmm18 {%k3} {z} +// CHECK: encoding: [0x62,0xb1,0x6d,0x83,0x72,0xcf,0xab] + vprold $171, %xmm23, %xmm18 {%k3} {z} + +// CHECK: vprold $123, %xmm23, %xmm18 +// CHECK: encoding: [0x62,0xb1,0x6d,0x00,0x72,0xcf,0x7b] + vprold $123, %xmm23, %xmm18 + +// CHECK: vprold $123, (%rcx), %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x00,0x72,0x09,0x7b] + vprold $123, (%rcx), %xmm18 + +// CHECK: vprold $123, 291(%rax,%r14,8), %xmm18 +// CHECK: encoding: [0x62,0xb1,0x6d,0x00,0x72,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprold $123, 291(%rax,%r14,8), %xmm18 + +// CHECK: vprold $123, (%rcx){1to4}, %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x10,0x72,0x09,0x7b] + vprold $123, (%rcx){1to4}, %xmm18 + +// CHECK: vprold $123, 2032(%rdx), %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x00,0x72,0x4a,0x7f,0x7b] + vprold $123, 2032(%rdx), %xmm18 + +// CHECK: vprold $123, 2048(%rdx), %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x00,0x72,0x8a,0x00,0x08,0x00,0x00,0x7b] + vprold $123, 2048(%rdx), %xmm18 + +// CHECK: vprold $123, -2048(%rdx), %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x00,0x72,0x4a,0x80,0x7b] + vprold $123, -2048(%rdx), %xmm18 + +// CHECK: vprold $123, -2064(%rdx), %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x00,0x72,0x8a,0xf0,0xf7,0xff,0xff,0x7b] + vprold $123, -2064(%rdx), %xmm18 + +// CHECK: vprold $123, 508(%rdx){1to4}, %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x10,0x72,0x4a,0x7f,0x7b] + vprold $123, 508(%rdx){1to4}, %xmm18 + +// CHECK: vprold $123, 512(%rdx){1to4}, %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x10,0x72,0x8a,0x00,0x02,0x00,0x00,0x7b] + vprold $123, 512(%rdx){1to4}, %xmm18 + +// CHECK: vprold $123, -512(%rdx){1to4}, %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x10,0x72,0x4a,0x80,0x7b] + vprold $123, -512(%rdx){1to4}, %xmm18 + +// CHECK: vprold $123, -516(%rdx){1to4}, %xmm18 +// CHECK: encoding: [0x62,0xf1,0x6d,0x10,0x72,0x8a,0xfc,0xfd,0xff,0xff,0x7b] + vprold $123, -516(%rdx){1to4}, %xmm18 + +// CHECK: vprold $171, %ymm19, %ymm29 +// CHECK: encoding: [0x62,0xb1,0x15,0x20,0x72,0xcb,0xab] + vprold $171, %ymm19, %ymm29 + +// CHECK: vprold $171, %ymm19, %ymm29 {%k1} +// CHECK: encoding: [0x62,0xb1,0x15,0x21,0x72,0xcb,0xab] + vprold $171, %ymm19, %ymm29 {%k1} + +// CHECK: vprold $171, %ymm19, %ymm29 {%k1} {z} +// CHECK: encoding: [0x62,0xb1,0x15,0xa1,0x72,0xcb,0xab] + vprold $171, %ymm19, %ymm29 {%k1} {z} + +// CHECK: vprold $123, %ymm19, %ymm29 +// CHECK: encoding: [0x62,0xb1,0x15,0x20,0x72,0xcb,0x7b] + vprold $123, %ymm19, %ymm29 + +// CHECK: vprold $123, (%rcx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x20,0x72,0x09,0x7b] + vprold $123, (%rcx), %ymm29 + +// CHECK: vprold $123, 291(%rax,%r14,8), %ymm29 +// CHECK: encoding: [0x62,0xb1,0x15,0x20,0x72,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprold $123, 291(%rax,%r14,8), %ymm29 + +// CHECK: vprold $123, (%rcx){1to8}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x30,0x72,0x09,0x7b] + vprold $123, (%rcx){1to8}, %ymm29 + +// CHECK: vprold $123, 4064(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x20,0x72,0x4a,0x7f,0x7b] + vprold $123, 4064(%rdx), %ymm29 + +// CHECK: vprold $123, 4096(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x20,0x72,0x8a,0x00,0x10,0x00,0x00,0x7b] + vprold $123, 4096(%rdx), %ymm29 + +// CHECK: vprold $123, -4096(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x20,0x72,0x4a,0x80,0x7b] + vprold $123, -4096(%rdx), %ymm29 + +// CHECK: vprold $123, -4128(%rdx), %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x20,0x72,0x8a,0xe0,0xef,0xff,0xff,0x7b] + vprold $123, -4128(%rdx), %ymm29 + +// CHECK: vprold $123, 508(%rdx){1to8}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x30,0x72,0x4a,0x7f,0x7b] + vprold $123, 508(%rdx){1to8}, %ymm29 + +// CHECK: vprold $123, 512(%rdx){1to8}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x30,0x72,0x8a,0x00,0x02,0x00,0x00,0x7b] + vprold $123, 512(%rdx){1to8}, %ymm29 + +// CHECK: vprold $123, -512(%rdx){1to8}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x30,0x72,0x4a,0x80,0x7b] + vprold $123, -512(%rdx){1to8}, %ymm29 + +// CHECK: vprold $123, -516(%rdx){1to8}, %ymm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x30,0x72,0x8a,0xfc,0xfd,0xff,0xff,0x7b] + vprold $123, -516(%rdx){1to8}, %ymm29 + +// CHECK: vprolvq %xmm17, %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x22,0xcd,0x00,0x15,0xc9] + vprolvq %xmm17, %xmm22, %xmm25 + +// CHECK: vprolvq %xmm17, %xmm22, %xmm25 {%k5} +// CHECK: encoding: [0x62,0x22,0xcd,0x05,0x15,0xc9] + vprolvq %xmm17, %xmm22, %xmm25 {%k5} + +// CHECK: vprolvq %xmm17, %xmm22, %xmm25 {%k5} {z} +// CHECK: encoding: [0x62,0x22,0xcd,0x85,0x15,0xc9] + vprolvq %xmm17, %xmm22, %xmm25 {%k5} {z} + +// CHECK: vprolvq (%rcx), %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x15,0x09] + vprolvq (%rcx), %xmm22, %xmm25 + +// CHECK: vprolvq 291(%rax,%r14,8), %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x22,0xcd,0x00,0x15,0x8c,0xf0,0x23,0x01,0x00,0x00] + vprolvq 291(%rax,%r14,8), %xmm22, %xmm25 + +// CHECK: vprolvq (%rcx){1to2}, %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x10,0x15,0x09] + vprolvq (%rcx){1to2}, %xmm22, %xmm25 + +// CHECK: vprolvq 2032(%rdx), %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x15,0x4a,0x7f] + vprolvq 2032(%rdx), %xmm22, %xmm25 + +// CHECK: vprolvq 2048(%rdx), %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x15,0x8a,0x00,0x08,0x00,0x00] + vprolvq 2048(%rdx), %xmm22, %xmm25 + +// CHECK: vprolvq -2048(%rdx), %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x15,0x4a,0x80] + vprolvq -2048(%rdx), %xmm22, %xmm25 + +// CHECK: vprolvq -2064(%rdx), %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x00,0x15,0x8a,0xf0,0xf7,0xff,0xff] + vprolvq -2064(%rdx), %xmm22, %xmm25 + +// CHECK: vprolvq 1016(%rdx){1to2}, %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x10,0x15,0x4a,0x7f] + vprolvq 1016(%rdx){1to2}, %xmm22, %xmm25 + +// CHECK: vprolvq 1024(%rdx){1to2}, %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x10,0x15,0x8a,0x00,0x04,0x00,0x00] + vprolvq 1024(%rdx){1to2}, %xmm22, %xmm25 + +// CHECK: vprolvq -1024(%rdx){1to2}, %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x10,0x15,0x4a,0x80] + vprolvq -1024(%rdx){1to2}, %xmm22, %xmm25 + +// CHECK: vprolvq -1032(%rdx){1to2}, %xmm22, %xmm25 +// CHECK: encoding: [0x62,0x62,0xcd,0x10,0x15,0x8a,0xf8,0xfb,0xff,0xff] + vprolvq -1032(%rdx){1to2}, %xmm22, %xmm25 + +// CHECK: vprolvq %ymm28, %ymm17, %ymm17 +// CHECK: encoding: [0x62,0x82,0xf5,0x20,0x15,0xcc] + vprolvq %ymm28, %ymm17, %ymm17 + +// CHECK: vprolvq %ymm28, %ymm17, %ymm17 {%k3} +// CHECK: encoding: [0x62,0x82,0xf5,0x23,0x15,0xcc] + vprolvq %ymm28, %ymm17, %ymm17 {%k3} + +// CHECK: vprolvq %ymm28, %ymm17, %ymm17 {%k3} {z} +// CHECK: encoding: [0x62,0x82,0xf5,0xa3,0x15,0xcc] + vprolvq %ymm28, %ymm17, %ymm17 {%k3} {z} + +// CHECK: vprolvq (%rcx), %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x20,0x15,0x09] + vprolvq (%rcx), %ymm17, %ymm17 + +// CHECK: vprolvq 291(%rax,%r14,8), %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xa2,0xf5,0x20,0x15,0x8c,0xf0,0x23,0x01,0x00,0x00] + vprolvq 291(%rax,%r14,8), %ymm17, %ymm17 + +// CHECK: vprolvq (%rcx){1to4}, %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x30,0x15,0x09] + vprolvq (%rcx){1to4}, %ymm17, %ymm17 + +// CHECK: vprolvq 4064(%rdx), %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x20,0x15,0x4a,0x7f] + vprolvq 4064(%rdx), %ymm17, %ymm17 + +// CHECK: vprolvq 4096(%rdx), %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x20,0x15,0x8a,0x00,0x10,0x00,0x00] + vprolvq 4096(%rdx), %ymm17, %ymm17 + +// CHECK: vprolvq -4096(%rdx), %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x20,0x15,0x4a,0x80] + vprolvq -4096(%rdx), %ymm17, %ymm17 + +// CHECK: vprolvq -4128(%rdx), %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x20,0x15,0x8a,0xe0,0xef,0xff,0xff] + vprolvq -4128(%rdx), %ymm17, %ymm17 + +// CHECK: vprolvq 1016(%rdx){1to4}, %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x30,0x15,0x4a,0x7f] + vprolvq 1016(%rdx){1to4}, %ymm17, %ymm17 + +// CHECK: vprolvq 1024(%rdx){1to4}, %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x30,0x15,0x8a,0x00,0x04,0x00,0x00] + vprolvq 1024(%rdx){1to4}, %ymm17, %ymm17 + +// CHECK: vprolvq -1024(%rdx){1to4}, %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x30,0x15,0x4a,0x80] + vprolvq -1024(%rdx){1to4}, %ymm17, %ymm17 + +// CHECK: vprolvq -1032(%rdx){1to4}, %ymm17, %ymm17 +// CHECK: encoding: [0x62,0xe2,0xf5,0x30,0x15,0x8a,0xf8,0xfb,0xff,0xff] + vprolvq -1032(%rdx){1to4}, %ymm17, %ymm17 + +// CHECK: vprolq $171, %xmm19, %xmm28 +// CHECK: encoding: [0x62,0xb1,0x9d,0x00,0x72,0xcb,0xab] + vprolq $171, %xmm19, %xmm28 + +// CHECK: vprolq $171, %xmm19, %xmm28 {%k2} +// CHECK: encoding: [0x62,0xb1,0x9d,0x02,0x72,0xcb,0xab] + vprolq $171, %xmm19, %xmm28 {%k2} + +// CHECK: vprolq $171, %xmm19, %xmm28 {%k2} {z} +// CHECK: encoding: [0x62,0xb1,0x9d,0x82,0x72,0xcb,0xab] + vprolq $171, %xmm19, %xmm28 {%k2} {z} + +// CHECK: vprolq $123, %xmm19, %xmm28 +// CHECK: encoding: [0x62,0xb1,0x9d,0x00,0x72,0xcb,0x7b] + vprolq $123, %xmm19, %xmm28 + +// CHECK: vprolq $123, (%rcx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x09,0x7b] + vprolq $123, (%rcx), %xmm28 + +// CHECK: vprolq $123, 291(%rax,%r14,8), %xmm28 +// CHECK: encoding: [0x62,0xb1,0x9d,0x00,0x72,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprolq $123, 291(%rax,%r14,8), %xmm28 + +// CHECK: vprolq $123, (%rcx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x09,0x7b] + vprolq $123, (%rcx){1to2}, %xmm28 + +// CHECK: vprolq $123, 2032(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x4a,0x7f,0x7b] + vprolq $123, 2032(%rdx), %xmm28 + +// CHECK: vprolq $123, 2048(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x8a,0x00,0x08,0x00,0x00,0x7b] + vprolq $123, 2048(%rdx), %xmm28 + +// CHECK: vprolq $123, -2048(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x4a,0x80,0x7b] + vprolq $123, -2048(%rdx), %xmm28 + +// CHECK: vprolq $123, -2064(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x8a,0xf0,0xf7,0xff,0xff,0x7b] + vprolq $123, -2064(%rdx), %xmm28 + +// CHECK: vprolq $123, 1016(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x4a,0x7f,0x7b] + vprolq $123, 1016(%rdx){1to2}, %xmm28 + +// CHECK: vprolq $123, 1024(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x8a,0x00,0x04,0x00,0x00,0x7b] + vprolq $123, 1024(%rdx){1to2}, %xmm28 + +// CHECK: vprolq $123, -1024(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x4a,0x80,0x7b] + vprolq $123, -1024(%rdx){1to2}, %xmm28 + +// CHECK: vprolq $123, -1032(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vprolq $123, -1032(%rdx){1to2}, %xmm28 + +// CHECK: vprolq $171, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x91,0xb5,0x20,0x72,0xc8,0xab] + vprolq $171, %ymm24, %ymm25 + +// CHECK: vprolq $171, %ymm24, %ymm25 {%k5} +// CHECK: encoding: [0x62,0x91,0xb5,0x25,0x72,0xc8,0xab] + vprolq $171, %ymm24, %ymm25 {%k5} + +// CHECK: vprolq $171, %ymm24, %ymm25 {%k5} {z} +// CHECK: encoding: [0x62,0x91,0xb5,0xa5,0x72,0xc8,0xab] + vprolq $171, %ymm24, %ymm25 {%k5} {z} + +// CHECK: vprolq $123, %ymm24, %ymm25 +// CHECK: encoding: [0x62,0x91,0xb5,0x20,0x72,0xc8,0x7b] + vprolq $123, %ymm24, %ymm25 + +// CHECK: vprolq $123, (%rcx), %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x20,0x72,0x09,0x7b] + vprolq $123, (%rcx), %ymm25 + +// CHECK: vprolq $123, 291(%rax,%r14,8), %ymm25 +// CHECK: encoding: [0x62,0xb1,0xb5,0x20,0x72,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprolq $123, 291(%rax,%r14,8), %ymm25 + +// CHECK: vprolq $123, (%rcx){1to4}, %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x30,0x72,0x09,0x7b] + vprolq $123, (%rcx){1to4}, %ymm25 + +// CHECK: vprolq $123, 4064(%rdx), %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x20,0x72,0x4a,0x7f,0x7b] + vprolq $123, 4064(%rdx), %ymm25 + +// CHECK: vprolq $123, 4096(%rdx), %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x20,0x72,0x8a,0x00,0x10,0x00,0x00,0x7b] + vprolq $123, 4096(%rdx), %ymm25 + +// CHECK: vprolq $123, -4096(%rdx), %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x20,0x72,0x4a,0x80,0x7b] + vprolq $123, -4096(%rdx), %ymm25 + +// CHECK: vprolq $123, -4128(%rdx), %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x20,0x72,0x8a,0xe0,0xef,0xff,0xff,0x7b] + vprolq $123, -4128(%rdx), %ymm25 + +// CHECK: vprolq $123, 1016(%rdx){1to4}, %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x30,0x72,0x4a,0x7f,0x7b] + vprolq $123, 1016(%rdx){1to4}, %ymm25 + +// CHECK: vprolq $123, 1024(%rdx){1to4}, %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x30,0x72,0x8a,0x00,0x04,0x00,0x00,0x7b] + vprolq $123, 1024(%rdx){1to4}, %ymm25 + +// CHECK: vprolq $123, -1024(%rdx){1to4}, %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x30,0x72,0x4a,0x80,0x7b] + vprolq $123, -1024(%rdx){1to4}, %ymm25 + +// CHECK: vprolq $123, -1032(%rdx){1to4}, %ymm25 +// CHECK: encoding: [0x62,0xf1,0xb5,0x30,0x72,0x8a,0xf8,0xfb,0xff,0xff,0x7b] + vprolq $123, -1032(%rdx){1to4}, %ymm25 + +// CHECK: vprorvd %xmm22, %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x22,0x2d,0x00,0x14,0xce] + vprorvd %xmm22, %xmm26, %xmm25 + +// CHECK: vprorvd %xmm22, %xmm26, %xmm25 {%k4} +// CHECK: encoding: [0x62,0x22,0x2d,0x04,0x14,0xce] + vprorvd %xmm22, %xmm26, %xmm25 {%k4} + +// CHECK: vprorvd %xmm22, %xmm26, %xmm25 {%k4} {z} +// CHECK: encoding: [0x62,0x22,0x2d,0x84,0x14,0xce] + vprorvd %xmm22, %xmm26, %xmm25 {%k4} {z} + +// CHECK: vprorvd (%rcx), %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x14,0x09] + vprorvd (%rcx), %xmm26, %xmm25 + +// CHECK: vprorvd 291(%rax,%r14,8), %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x22,0x2d,0x00,0x14,0x8c,0xf0,0x23,0x01,0x00,0x00] + vprorvd 291(%rax,%r14,8), %xmm26, %xmm25 + +// CHECK: vprorvd (%rcx){1to4}, %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x14,0x09] + vprorvd (%rcx){1to4}, %xmm26, %xmm25 + +// CHECK: vprorvd 2032(%rdx), %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x14,0x4a,0x7f] + vprorvd 2032(%rdx), %xmm26, %xmm25 + +// CHECK: vprorvd 2048(%rdx), %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x14,0x8a,0x00,0x08,0x00,0x00] + vprorvd 2048(%rdx), %xmm26, %xmm25 + +// CHECK: vprorvd -2048(%rdx), %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x14,0x4a,0x80] + vprorvd -2048(%rdx), %xmm26, %xmm25 + +// CHECK: vprorvd -2064(%rdx), %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x00,0x14,0x8a,0xf0,0xf7,0xff,0xff] + vprorvd -2064(%rdx), %xmm26, %xmm25 + +// CHECK: vprorvd 508(%rdx){1to4}, %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x14,0x4a,0x7f] + vprorvd 508(%rdx){1to4}, %xmm26, %xmm25 + +// CHECK: vprorvd 512(%rdx){1to4}, %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x14,0x8a,0x00,0x02,0x00,0x00] + vprorvd 512(%rdx){1to4}, %xmm26, %xmm25 + +// CHECK: vprorvd -512(%rdx){1to4}, %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x14,0x4a,0x80] + vprorvd -512(%rdx){1to4}, %xmm26, %xmm25 + +// CHECK: vprorvd -516(%rdx){1to4}, %xmm26, %xmm25 +// CHECK: encoding: [0x62,0x62,0x2d,0x10,0x14,0x8a,0xfc,0xfd,0xff,0xff] + vprorvd -516(%rdx){1to4}, %xmm26, %xmm25 + +// CHECK: vprorvd %ymm25, %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x02,0x1d,0x20,0x14,0xc1] + vprorvd %ymm25, %ymm28, %ymm24 + +// CHECK: vprorvd %ymm25, %ymm28, %ymm24 {%k4} +// CHECK: encoding: [0x62,0x02,0x1d,0x24,0x14,0xc1] + vprorvd %ymm25, %ymm28, %ymm24 {%k4} + +// CHECK: vprorvd %ymm25, %ymm28, %ymm24 {%k4} {z} +// CHECK: encoding: [0x62,0x02,0x1d,0xa4,0x14,0xc1] + vprorvd %ymm25, %ymm28, %ymm24 {%k4} {z} + +// CHECK: vprorvd (%rcx), %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x20,0x14,0x01] + vprorvd (%rcx), %ymm28, %ymm24 + +// CHECK: vprorvd 291(%rax,%r14,8), %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x22,0x1d,0x20,0x14,0x84,0xf0,0x23,0x01,0x00,0x00] + vprorvd 291(%rax,%r14,8), %ymm28, %ymm24 + +// CHECK: vprorvd (%rcx){1to8}, %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x30,0x14,0x01] + vprorvd (%rcx){1to8}, %ymm28, %ymm24 + +// CHECK: vprorvd 4064(%rdx), %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x20,0x14,0x42,0x7f] + vprorvd 4064(%rdx), %ymm28, %ymm24 + +// CHECK: vprorvd 4096(%rdx), %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x20,0x14,0x82,0x00,0x10,0x00,0x00] + vprorvd 4096(%rdx), %ymm28, %ymm24 + +// CHECK: vprorvd -4096(%rdx), %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x20,0x14,0x42,0x80] + vprorvd -4096(%rdx), %ymm28, %ymm24 + +// CHECK: vprorvd -4128(%rdx), %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x20,0x14,0x82,0xe0,0xef,0xff,0xff] + vprorvd -4128(%rdx), %ymm28, %ymm24 + +// CHECK: vprorvd 508(%rdx){1to8}, %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x30,0x14,0x42,0x7f] + vprorvd 508(%rdx){1to8}, %ymm28, %ymm24 + +// CHECK: vprorvd 512(%rdx){1to8}, %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x30,0x14,0x82,0x00,0x02,0x00,0x00] + vprorvd 512(%rdx){1to8}, %ymm28, %ymm24 + +// CHECK: vprorvd -512(%rdx){1to8}, %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x30,0x14,0x42,0x80] + vprorvd -512(%rdx){1to8}, %ymm28, %ymm24 + +// CHECK: vprorvd -516(%rdx){1to8}, %ymm28, %ymm24 +// CHECK: encoding: [0x62,0x62,0x1d,0x30,0x14,0x82,0xfc,0xfd,0xff,0xff] + vprorvd -516(%rdx){1to8}, %ymm28, %ymm24 + +// CHECK: vprord $171, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x91,0x15,0x00,0x72,0xc1,0xab] + vprord $171, %xmm25, %xmm29 + +// CHECK: vprord $171, %xmm25, %xmm29 {%k3} +// CHECK: encoding: [0x62,0x91,0x15,0x03,0x72,0xc1,0xab] + vprord $171, %xmm25, %xmm29 {%k3} + +// CHECK: vprord $171, %xmm25, %xmm29 {%k3} {z} +// CHECK: encoding: [0x62,0x91,0x15,0x83,0x72,0xc1,0xab] + vprord $171, %xmm25, %xmm29 {%k3} {z} + +// CHECK: vprord $123, %xmm25, %xmm29 +// CHECK: encoding: [0x62,0x91,0x15,0x00,0x72,0xc1,0x7b] + vprord $123, %xmm25, %xmm29 + +// CHECK: vprord $123, (%rcx), %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x00,0x72,0x01,0x7b] + vprord $123, (%rcx), %xmm29 + +// CHECK: vprord $123, 291(%rax,%r14,8), %xmm29 +// CHECK: encoding: [0x62,0xb1,0x15,0x00,0x72,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprord $123, 291(%rax,%r14,8), %xmm29 + +// CHECK: vprord $123, (%rcx){1to4}, %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x10,0x72,0x01,0x7b] + vprord $123, (%rcx){1to4}, %xmm29 + +// CHECK: vprord $123, 2032(%rdx), %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x00,0x72,0x42,0x7f,0x7b] + vprord $123, 2032(%rdx), %xmm29 + +// CHECK: vprord $123, 2048(%rdx), %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x00,0x72,0x82,0x00,0x08,0x00,0x00,0x7b] + vprord $123, 2048(%rdx), %xmm29 + +// CHECK: vprord $123, -2048(%rdx), %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x00,0x72,0x42,0x80,0x7b] + vprord $123, -2048(%rdx), %xmm29 + +// CHECK: vprord $123, -2064(%rdx), %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x00,0x72,0x82,0xf0,0xf7,0xff,0xff,0x7b] + vprord $123, -2064(%rdx), %xmm29 + +// CHECK: vprord $123, 508(%rdx){1to4}, %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x10,0x72,0x42,0x7f,0x7b] + vprord $123, 508(%rdx){1to4}, %xmm29 + +// CHECK: vprord $123, 512(%rdx){1to4}, %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x10,0x72,0x82,0x00,0x02,0x00,0x00,0x7b] + vprord $123, 512(%rdx){1to4}, %xmm29 + +// CHECK: vprord $123, -512(%rdx){1to4}, %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x10,0x72,0x42,0x80,0x7b] + vprord $123, -512(%rdx){1to4}, %xmm29 + +// CHECK: vprord $123, -516(%rdx){1to4}, %xmm29 +// CHECK: encoding: [0x62,0xf1,0x15,0x10,0x72,0x82,0xfc,0xfd,0xff,0xff,0x7b] + vprord $123, -516(%rdx){1to4}, %xmm29 + +// CHECK: vprord $171, %ymm29, %ymm30 +// CHECK: encoding: [0x62,0x91,0x0d,0x20,0x72,0xc5,0xab] + vprord $171, %ymm29, %ymm30 + +// CHECK: vprord $171, %ymm29, %ymm30 {%k6} +// CHECK: encoding: [0x62,0x91,0x0d,0x26,0x72,0xc5,0xab] + vprord $171, %ymm29, %ymm30 {%k6} + +// CHECK: vprord $171, %ymm29, %ymm30 {%k6} {z} +// CHECK: encoding: [0x62,0x91,0x0d,0xa6,0x72,0xc5,0xab] + vprord $171, %ymm29, %ymm30 {%k6} {z} + +// CHECK: vprord $123, %ymm29, %ymm30 +// CHECK: encoding: [0x62,0x91,0x0d,0x20,0x72,0xc5,0x7b] + vprord $123, %ymm29, %ymm30 + +// CHECK: vprord $123, (%rcx), %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x20,0x72,0x01,0x7b] + vprord $123, (%rcx), %ymm30 + +// CHECK: vprord $123, 291(%rax,%r14,8), %ymm30 +// CHECK: encoding: [0x62,0xb1,0x0d,0x20,0x72,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprord $123, 291(%rax,%r14,8), %ymm30 + +// CHECK: vprord $123, (%rcx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x30,0x72,0x01,0x7b] + vprord $123, (%rcx){1to8}, %ymm30 + +// CHECK: vprord $123, 4064(%rdx), %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x20,0x72,0x42,0x7f,0x7b] + vprord $123, 4064(%rdx), %ymm30 + +// CHECK: vprord $123, 4096(%rdx), %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x20,0x72,0x82,0x00,0x10,0x00,0x00,0x7b] + vprord $123, 4096(%rdx), %ymm30 + +// CHECK: vprord $123, -4096(%rdx), %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x20,0x72,0x42,0x80,0x7b] + vprord $123, -4096(%rdx), %ymm30 + +// CHECK: vprord $123, -4128(%rdx), %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x20,0x72,0x82,0xe0,0xef,0xff,0xff,0x7b] + vprord $123, -4128(%rdx), %ymm30 + +// CHECK: vprord $123, 508(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x30,0x72,0x42,0x7f,0x7b] + vprord $123, 508(%rdx){1to8}, %ymm30 + +// CHECK: vprord $123, 512(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x30,0x72,0x82,0x00,0x02,0x00,0x00,0x7b] + vprord $123, 512(%rdx){1to8}, %ymm30 + +// CHECK: vprord $123, -512(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x30,0x72,0x42,0x80,0x7b] + vprord $123, -512(%rdx){1to8}, %ymm30 + +// CHECK: vprord $123, -516(%rdx){1to8}, %ymm30 +// CHECK: encoding: [0x62,0xf1,0x0d,0x30,0x72,0x82,0xfc,0xfd,0xff,0xff,0x7b] + vprord $123, -516(%rdx){1to8}, %ymm30 + +// CHECK: vprorvq %xmm24, %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x02,0xd5,0x00,0x14,0xd0] + vprorvq %xmm24, %xmm21, %xmm26 + +// CHECK: vprorvq %xmm24, %xmm21, %xmm26 {%k4} +// CHECK: encoding: [0x62,0x02,0xd5,0x04,0x14,0xd0] + vprorvq %xmm24, %xmm21, %xmm26 {%k4} + +// CHECK: vprorvq %xmm24, %xmm21, %xmm26 {%k4} {z} +// CHECK: encoding: [0x62,0x02,0xd5,0x84,0x14,0xd0] + vprorvq %xmm24, %xmm21, %xmm26 {%k4} {z} + +// CHECK: vprorvq (%rcx), %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x00,0x14,0x11] + vprorvq (%rcx), %xmm21, %xmm26 + +// CHECK: vprorvq 291(%rax,%r14,8), %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x22,0xd5,0x00,0x14,0x94,0xf0,0x23,0x01,0x00,0x00] + vprorvq 291(%rax,%r14,8), %xmm21, %xmm26 + +// CHECK: vprorvq (%rcx){1to2}, %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x10,0x14,0x11] + vprorvq (%rcx){1to2}, %xmm21, %xmm26 + +// CHECK: vprorvq 2032(%rdx), %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x00,0x14,0x52,0x7f] + vprorvq 2032(%rdx), %xmm21, %xmm26 + +// CHECK: vprorvq 2048(%rdx), %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x00,0x14,0x92,0x00,0x08,0x00,0x00] + vprorvq 2048(%rdx), %xmm21, %xmm26 + +// CHECK: vprorvq -2048(%rdx), %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x00,0x14,0x52,0x80] + vprorvq -2048(%rdx), %xmm21, %xmm26 + +// CHECK: vprorvq -2064(%rdx), %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x00,0x14,0x92,0xf0,0xf7,0xff,0xff] + vprorvq -2064(%rdx), %xmm21, %xmm26 + +// CHECK: vprorvq 1016(%rdx){1to2}, %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x10,0x14,0x52,0x7f] + vprorvq 1016(%rdx){1to2}, %xmm21, %xmm26 + +// CHECK: vprorvq 1024(%rdx){1to2}, %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x10,0x14,0x92,0x00,0x04,0x00,0x00] + vprorvq 1024(%rdx){1to2}, %xmm21, %xmm26 + +// CHECK: vprorvq -1024(%rdx){1to2}, %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x10,0x14,0x52,0x80] + vprorvq -1024(%rdx){1to2}, %xmm21, %xmm26 + +// CHECK: vprorvq -1032(%rdx){1to2}, %xmm21, %xmm26 +// CHECK: encoding: [0x62,0x62,0xd5,0x10,0x14,0x92,0xf8,0xfb,0xff,0xff] + vprorvq -1032(%rdx){1to2}, %xmm21, %xmm26 + +// CHECK: vprorvq %ymm28, %ymm24, %ymm20 +// CHECK: encoding: [0x62,0x82,0xbd,0x20,0x14,0xe4] + vprorvq %ymm28, %ymm24, %ymm20 + +// CHECK: vprorvq %ymm28, %ymm24, %ymm20 {%k7} +// CHECK: encoding: [0x62,0x82,0xbd,0x27,0x14,0xe4] + vprorvq %ymm28, %ymm24, %ymm20 {%k7} + +// CHECK: vprorvq %ymm28, %ymm24, %ymm20 {%k7} {z} +// CHECK: encoding: [0x62,0x82,0xbd,0xa7,0x14,0xe4] + vprorvq %ymm28, %ymm24, %ymm20 {%k7} {z} + +// CHECK: vprorvq (%rcx), %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x20,0x14,0x21] + vprorvq (%rcx), %ymm24, %ymm20 + +// CHECK: vprorvq 291(%rax,%r14,8), %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xa2,0xbd,0x20,0x14,0xa4,0xf0,0x23,0x01,0x00,0x00] + vprorvq 291(%rax,%r14,8), %ymm24, %ymm20 + +// CHECK: vprorvq (%rcx){1to4}, %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x30,0x14,0x21] + vprorvq (%rcx){1to4}, %ymm24, %ymm20 + +// CHECK: vprorvq 4064(%rdx), %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x20,0x14,0x62,0x7f] + vprorvq 4064(%rdx), %ymm24, %ymm20 + +// CHECK: vprorvq 4096(%rdx), %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x20,0x14,0xa2,0x00,0x10,0x00,0x00] + vprorvq 4096(%rdx), %ymm24, %ymm20 + +// CHECK: vprorvq -4096(%rdx), %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x20,0x14,0x62,0x80] + vprorvq -4096(%rdx), %ymm24, %ymm20 + +// CHECK: vprorvq -4128(%rdx), %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x20,0x14,0xa2,0xe0,0xef,0xff,0xff] + vprorvq -4128(%rdx), %ymm24, %ymm20 + +// CHECK: vprorvq 1016(%rdx){1to4}, %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x30,0x14,0x62,0x7f] + vprorvq 1016(%rdx){1to4}, %ymm24, %ymm20 + +// CHECK: vprorvq 1024(%rdx){1to4}, %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x30,0x14,0xa2,0x00,0x04,0x00,0x00] + vprorvq 1024(%rdx){1to4}, %ymm24, %ymm20 + +// CHECK: vprorvq -1024(%rdx){1to4}, %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x30,0x14,0x62,0x80] + vprorvq -1024(%rdx){1to4}, %ymm24, %ymm20 + +// CHECK: vprorvq -1032(%rdx){1to4}, %ymm24, %ymm20 +// CHECK: encoding: [0x62,0xe2,0xbd,0x30,0x14,0xa2,0xf8,0xfb,0xff,0xff] + vprorvq -1032(%rdx){1to4}, %ymm24, %ymm20 + +// CHECK: vprorq $171, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x91,0x9d,0x00,0x72,0xc4,0xab] + vprorq $171, %xmm28, %xmm28 + +// CHECK: vprorq $171, %xmm28, %xmm28 {%k1} +// CHECK: encoding: [0x62,0x91,0x9d,0x01,0x72,0xc4,0xab] + vprorq $171, %xmm28, %xmm28 {%k1} + +// CHECK: vprorq $171, %xmm28, %xmm28 {%k1} {z} +// CHECK: encoding: [0x62,0x91,0x9d,0x81,0x72,0xc4,0xab] + vprorq $171, %xmm28, %xmm28 {%k1} {z} + +// CHECK: vprorq $123, %xmm28, %xmm28 +// CHECK: encoding: [0x62,0x91,0x9d,0x00,0x72,0xc4,0x7b] + vprorq $123, %xmm28, %xmm28 + +// CHECK: vprorq $123, (%rcx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x01,0x7b] + vprorq $123, (%rcx), %xmm28 + +// CHECK: vprorq $123, 291(%rax,%r14,8), %xmm28 +// CHECK: encoding: [0x62,0xb1,0x9d,0x00,0x72,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprorq $123, 291(%rax,%r14,8), %xmm28 + +// CHECK: vprorq $123, (%rcx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x01,0x7b] + vprorq $123, (%rcx){1to2}, %xmm28 + +// CHECK: vprorq $123, 2032(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x42,0x7f,0x7b] + vprorq $123, 2032(%rdx), %xmm28 + +// CHECK: vprorq $123, 2048(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x82,0x00,0x08,0x00,0x00,0x7b] + vprorq $123, 2048(%rdx), %xmm28 + +// CHECK: vprorq $123, -2048(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x42,0x80,0x7b] + vprorq $123, -2048(%rdx), %xmm28 + +// CHECK: vprorq $123, -2064(%rdx), %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x00,0x72,0x82,0xf0,0xf7,0xff,0xff,0x7b] + vprorq $123, -2064(%rdx), %xmm28 + +// CHECK: vprorq $123, 1016(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x42,0x7f,0x7b] + vprorq $123, 1016(%rdx){1to2}, %xmm28 + +// CHECK: vprorq $123, 1024(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x82,0x00,0x04,0x00,0x00,0x7b] + vprorq $123, 1024(%rdx){1to2}, %xmm28 + +// CHECK: vprorq $123, -1024(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x42,0x80,0x7b] + vprorq $123, -1024(%rdx){1to2}, %xmm28 + +// CHECK: vprorq $123, -1032(%rdx){1to2}, %xmm28 +// CHECK: encoding: [0x62,0xf1,0x9d,0x10,0x72,0x82,0xf8,0xfb,0xff,0xff,0x7b] + vprorq $123, -1032(%rdx){1to2}, %xmm28 + +// CHECK: vprorq $171, %ymm17, %ymm21 +// CHECK: encoding: [0x62,0xb1,0xd5,0x20,0x72,0xc1,0xab] + vprorq $171, %ymm17, %ymm21 + +// CHECK: vprorq $171, %ymm17, %ymm21 {%k1} +// CHECK: encoding: [0x62,0xb1,0xd5,0x21,0x72,0xc1,0xab] + vprorq $171, %ymm17, %ymm21 {%k1} + +// CHECK: vprorq $171, %ymm17, %ymm21 {%k1} {z} +// CHECK: encoding: [0x62,0xb1,0xd5,0xa1,0x72,0xc1,0xab] + vprorq $171, %ymm17, %ymm21 {%k1} {z} + +// CHECK: vprorq $123, %ymm17, %ymm21 +// CHECK: encoding: [0x62,0xb1,0xd5,0x20,0x72,0xc1,0x7b] + vprorq $123, %ymm17, %ymm21 + +// CHECK: vprorq $123, (%rcx), %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x20,0x72,0x01,0x7b] + vprorq $123, (%rcx), %ymm21 + +// CHECK: vprorq $123, 291(%rax,%r14,8), %ymm21 +// CHECK: encoding: [0x62,0xb1,0xd5,0x20,0x72,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b] + vprorq $123, 291(%rax,%r14,8), %ymm21 + +// CHECK: vprorq $123, (%rcx){1to4}, %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x30,0x72,0x01,0x7b] + vprorq $123, (%rcx){1to4}, %ymm21 + +// CHECK: vprorq $123, 4064(%rdx), %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x20,0x72,0x42,0x7f,0x7b] + vprorq $123, 4064(%rdx), %ymm21 + +// CHECK: vprorq $123, 4096(%rdx), %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x20,0x72,0x82,0x00,0x10,0x00,0x00,0x7b] + vprorq $123, 4096(%rdx), %ymm21 + +// CHECK: vprorq $123, -4096(%rdx), %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x20,0x72,0x42,0x80,0x7b] + vprorq $123, -4096(%rdx), %ymm21 + +// CHECK: vprorq $123, -4128(%rdx), %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x20,0x72,0x82,0xe0,0xef,0xff,0xff,0x7b] + vprorq $123, -4128(%rdx), %ymm21 + +// CHECK: vprorq $123, 1016(%rdx){1to4}, %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x30,0x72,0x42,0x7f,0x7b] + vprorq $123, 1016(%rdx){1to4}, %ymm21 + +// CHECK: vprorq $123, 1024(%rdx){1to4}, %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x30,0x72,0x82,0x00,0x04,0x00,0x00,0x7b] + vprorq $123, 1024(%rdx){1to4}, %ymm21 + +// CHECK: vprorq $123, -1024(%rdx){1to4}, %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x30,0x72,0x42,0x80,0x7b] + vprorq $123, -1024(%rdx){1to4}, %ymm21 + +// CHECK: vprorq $123, -1032(%rdx){1to4}, %ymm21 +// CHECK: encoding: [0x62,0xf1,0xd5,0x30,0x72,0x82,0xf8,0xfb,0xff,0xff,0x7b] + vprorq $123, -1032(%rdx){1to4}, %ymm21 diff --git a/test/MC/X86/x86_64-avx-encoding.s b/test/MC/X86/x86_64-avx-encoding.s index 9da08df..1440d08 100644 --- a/test/MC/X86/x86_64-avx-encoding.s +++ b/test/MC/X86/x86_64-avx-encoding.s @@ -3724,6 +3724,10 @@ vdivpd -4(%rcx,%rbx,8), %xmm10, %xmm11 // CHECK: encoding: [0xc4,0x63,0x2d,0x40,0x18,0x03] vdpps $3, (%rax), %ymm10, %ymm11 +// CHECK: vbroadcasti128 (%rax), %ymm12 +// CHECK: encoding: [0xc4,0x62,0x7d,0x5a,0x20] + vbroadcasti128 (%rax), %ymm12 + // CHECK: vbroadcastf128 (%rax), %ymm12 // CHECK: encoding: [0xc4,0x62,0x7d,0x1a,0x20] vbroadcastf128 (%rax), %ymm12 |