summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2016-01-19 18:47:02 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2016-01-19 18:47:02 +0000
commit4582bdab12c0f2ece03a6c2790dd554b671217a0 (patch)
tree773af6b857c66e7e87565489e2fc88e165e17a90 /llvm/test/MC
parentfeaa967ee813be3fa34ebc2b7a4751f2ec821df5 (diff)
downloadbcm5719-llvm-4582bdab12c0f2ece03a6c2790dd554b671217a0.tar.gz
bcm5719-llvm-4582bdab12c0f2ece03a6c2790dd554b671217a0.zip
[AVX512] Adding VPERMT2B and VPERMI2B instruction .
Differential Revision: http://reviews.llvm.org/D16297 llvm-svn: 258161
Diffstat (limited to 'llvm/test/MC')
-rw-r--r--llvm/test/MC/X86/avx512vbmi-encoding.s239
1 files changed, 239 insertions, 0 deletions
diff --git a/llvm/test/MC/X86/avx512vbmi-encoding.s b/llvm/test/MC/X86/avx512vbmi-encoding.s
index a66e824711a..5e210a53495 100644
--- a/llvm/test/MC/X86/avx512vbmi-encoding.s
+++ b/llvm/test/MC/X86/avx512vbmi-encoding.s
@@ -120,4 +120,243 @@
//CHECK: vpermb 4660(%rax,%r14,8), %zmm29, %zmm30
//CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpermt2b %xmm28, %xmm29, %xmm30
+//CHECK: vpermt2b %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
+
+ vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
+
+ vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
+
+ vpermt2b (%rcx), %xmm29, %xmm30
+//CHECK: vpermt2b (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
+
+ vpermt2b 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermt2b 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermt2b 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
+
+ vpermt2b 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
+
+ vpermt2b -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
+
+ vpermt2b -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpermt2b %ymm28, %ymm29, %ymm30
+//CHECK: vpermt2b %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
+
+ vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
+
+ vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
+
+ vpermt2b (%rcx), %ymm29, %ymm30
+//CHECK: vpermt2b (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
+
+ vpermt2b 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermt2b 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermt2b 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
+
+ vpermt2b 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
+
+ vpermt2b -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
+
+ vpermt2b -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpermt2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermt2b 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermt2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermt2b 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermt2b %zmm28, %zmm29, %zmm30
+//CHECK: vpermt2b %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
+
+ vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
+
+ vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
+
+ vpermt2b (%rcx), %zmm29, %zmm30
+//CHECK: vpermt2b (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
+
+ vpermt2b 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermt2b 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermt2b 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
+
+ vpermt2b 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
+
+ vpermt2b -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
+
+ vpermt2b -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpermt2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermt2b 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermi2b %xmm28, %xmm29, %xmm30
+//CHECK: vpermi2b %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
+
+ vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
+
+ vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
+
+ vpermi2b (%rcx), %xmm29, %xmm30
+//CHECK: vpermi2b (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
+
+ vpermi2b 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermi2b 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermi2b 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
+
+ vpermi2b 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
+
+ vpermi2b -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
+
+ vpermi2b -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpermi2b %ymm28, %ymm29, %ymm30
+//CHECK: vpermi2b %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
+
+ vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
+
+ vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
+
+ vpermi2b (%rcx), %ymm29, %ymm30
+//CHECK: vpermi2b (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
+
+ vpermi2b 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermi2b 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermi2b 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
+
+ vpermi2b 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
+
+ vpermi2b -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
+
+ vpermi2b -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpermi2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermi2b 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermi2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermi2b 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermi2b %zmm28, %zmm29, %zmm30
+//CHECK: vpermi2b %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
+
+ vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
+
+ vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
+
+ vpermi2b (%rcx), %zmm29, %zmm30
+//CHECK: vpermi2b (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
+
+ vpermi2b 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermi2b 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermi2b 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
+
+ vpermi2b 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
+
+ vpermi2b -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
+
+ vpermi2b -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpermi2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermi2b 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
OpenPOWER on IntegriCloud