From ead90cd47c7b17373c2d3d2dfb32bce9ec1492c3 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 16 Jan 2017 00:58:20 +0000 Subject: [PATCH] [AVX-512] Add more gather/scatter encoding test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292089 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/X86/avx512-encodings.s | 48 ++++++++++++ test/MC/X86/avx512vl-encoding.s | 128 ++++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index e883249b003..23d58e7d77e 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -12525,6 +12525,54 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2 // CHECK: encoding: [0x62,0xe2,0xfd,0x41,0x91,0x8c,0xa9,0x00,0x04,0x00,0x00] vpgatherqq 1024(%rcx, %zmm21,4), %zmm17 {%k1} +// CHECK: vgatherdps 123(%r14,%zmm11,8), %zmm17 {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x49,0x92,0x8c,0xde,0x7b,0x00,0x00,0x00] + vgatherdps 123(%r14, %zmm11,8), %zmm17 {%k1} + +// CHECK: vgatherdps 256(%r9,%zmm11), %zmm17 {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x49,0x92,0x4c,0x19,0x40] + vgatherdps 256(%r9,%zmm11), %zmm17 {%k1} + +// CHECK: vgatherdps 1024(%rcx,%zmm11,4), %zmm17 {%k1} +// CHECK: encoding: [0x62,0xa2,0x7d,0x49,0x92,0x8c,0x99,0x00,0x04,0x00,0x00] + vgatherdps 1024(%rcx, %zmm11,4), %zmm17 {%k1} + +// CHECK: vgatherdpd 123(%r14,%ymm14,8), %zmm8 {%k1} +// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x92,0x84,0xf6,0x7b,0x00,0x00,0x00] + vgatherdpd 123(%r14, %ymm14,8), %zmm8 {%k1} + +// CHECK: vgatherdpd 256(%r9,%ymm14), %zmm8 {%k1} +// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x92,0x44,0x31,0x20] + vgatherdpd 256(%r9, %ymm14), %zmm8 {%k1} + +// CHECK: vgatherdpd 1024(%rcx,%ymm14,4), %zmm8 {%k1} +// CHECK: encoding: [0x62,0x32,0xfd,0x49,0x92,0x84,0xb1,0x00,0x04,0x00,0x00] + vgatherdpd 1024(%rcx, %ymm14,4), %zmm8 {%k1} + +// CHECK: vgatherqps 123(%r14,%zmm17,8), %ymm3 {%k1} +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x93,0x9c,0xce,0x7b,0x00,0x00,0x00] + vgatherqps 123(%r14, %zmm17,8), %ymm3 {%k1} + +// CHECK: vgatherqps 256(%r9,%zmm17), %ymm3 {%k1} +// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x93,0x5c,0x09,0x40] + vgatherqps 256(%r9,%zmm17), %ymm3 {%k1} + +// CHECK: vgatherqps 1024(%rcx,%zmm17,4), %ymm3 {%k1} +// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0x93,0x9c,0x89,0x00,0x04,0x00,0x00] + vgatherqps 1024(%rcx, %zmm17,4), %ymm3 {%k1} + +// CHECK: vgatherqpd 123(%r14,%zmm21,8), %zmm17 {%k1} +// CHECK: encoding: [0x62,0xc2,0xfd,0x41,0x93,0x8c,0xee,0x7b,0x00,0x00,0x00] + vgatherqpd 123(%r14, %zmm21,8), %zmm17 {%k1} + +// CHECK: vgatherqpd 256(%r9,%zmm21), %zmm17 {%k1} +// CHECK: encoding: [0x62,0xc2,0xfd,0x41,0x93,0x4c,0x29,0x20] + vgatherqpd 256(%r9,%zmm21), %zmm17 {%k1} + +// CHECK: vgatherqpd 1024(%rcx,%zmm21,4), %zmm17 {%k1} +// CHECK: encoding: [0x62,0xe2,0xfd,0x41,0x93,0x8c,0xa9,0x00,0x04,0x00,0x00] + vgatherqpd 1024(%rcx, %zmm21,4), %zmm17 {%k1} + // CHECK: vpscatterdd %zmm19, 123(%r14,%zmm16,8) {%k1} // CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x9c,0xc6,0x7b,0x00,0x00,0x00] vpscatterdd %zmm19, 123(%r14,%zmm16,8) {%k1} diff --git a/test/MC/X86/avx512vl-encoding.s b/test/MC/X86/avx512vl-encoding.s index 2e3eaf2aa4c..42b412cc50d 100644 --- a/test/MC/X86/avx512vl-encoding.s +++ b/test/MC/X86/avx512vl-encoding.s @@ -1980,3 +1980,131 @@ // CHECK: vpscatterqq %ymm19, 1024(%rcx,%ymm31,4) {%k1} // CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa1,0x9c,0xb9,0x00,0x04,0x00,0x00] vpscatterqq %ymm19, 1024(%rcx,%ymm31,4) {%k1} + +// CHECK: vscatterdps %xmm20, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa2,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %xmm20, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterdps %xmm20, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa2,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %xmm20, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterdps %xmm20, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa2,0x64,0x39,0x40] + vscatterdps %xmm20, 256(%r9,%xmm31) {%k1} + +// CHECK: vscatterdps %xmm20, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa2,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterdps %xmm20, 1024(%rcx,%xmm31,4) {%k1} + +// CHECK: vscatterdps %ymm28, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %ymm28, 123(%r14,%ymm31,8) {%k1} + +// CHECK: vscatterdps %ymm28, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %ymm28, 123(%r14,%ymm31,8) {%k1} + +// CHECK: vscatterdps %ymm28, 256(%r9,%ymm31) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x64,0x39,0x40] + vscatterdps %ymm28, 256(%r9,%ymm31) {%k1} + +// CHECK: vscatterdps %ymm28, 1024(%rcx,%ymm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa2,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterdps %ymm28, 1024(%rcx,%ymm31,4) {%k1} + +// CHECK: vscatterdpd %xmm21, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0xac,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %xmm21, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterdpd %xmm21, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0xac,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %xmm21, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterdpd %xmm21, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x6c,0x39,0x20] + vscatterdpd %xmm21, 256(%r9,%xmm31) {%k1} + +// CHECK: vscatterdpd %xmm21, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa2,0xac,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd %xmm21, 1024(%rcx,%xmm31,4) {%k1} + +// CHECK: vscatterdpd %ymm28, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %ymm28, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterdpd %ymm28, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %ymm28, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterdpd %ymm28, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x64,0x39,0x20] + vscatterdpd %ymm28, 256(%r9,%xmm31) {%k1} + +// CHECK: vscatterdpd %ymm28, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa2,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd %ymm28, 1024(%rcx,%xmm31,4) {%k1} + +// CHECK: vscatterqps %xmm22, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa3,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm22, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterqps %xmm22, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa3,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm22, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterqps %xmm22, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa3,0x74,0x39,0x40] + vscatterqps %xmm22, 256(%r9,%xmm31) {%k1} + +// CHECK: vscatterqps %xmm22, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa3,0xb4,0xb9,0x00,0x04,0x00,0x00] + vscatterqps %xmm22, 1024(%rcx,%xmm31,4) {%k1} + +// CHECK: vscatterqps %xmm24, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x84,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm24, 123(%r14,%ymm31,8) {%k1} + +// CHECK: vscatterqps %xmm24, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x84,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm24, 123(%r14,%ymm31,8) {%k1} + +// CHECK: vscatterqps %xmm24, 256(%r9,%ymm31) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x44,0x39,0x40] + vscatterqps %xmm24, 256(%r9,%ymm31) {%k1} + +// CHECK: vscatterqps %xmm24, 1024(%rcx,%ymm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa3,0x84,0xb9,0x00,0x04,0x00,0x00] + vscatterqps %xmm24, 1024(%rcx,%ymm31,4) {%k1} + +// CHECK: vscatterqpd %xmm28, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %xmm28, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterqpd %xmm28, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %xmm28, 123(%r14,%xmm31,8) {%k1} + +// CHECK: vscatterqpd %xmm28, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa3,0x64,0x39,0x20] + vscatterqpd %xmm28, 256(%r9,%xmm31) {%k1} + +// CHECK: vscatterqpd %xmm28, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa3,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd %xmm28, 1024(%rcx,%xmm31,4) {%k1} + +// CHECK: vscatterqpd %ymm19, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %ymm19, 123(%r14,%ymm31,8) {%k1} + +// CHECK: vscatterqpd %ymm19, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0x9c,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %ymm19, 123(%r14,%ymm31,8) {%k1} + +// CHECK: vscatterqpd %ymm19, 256(%r9,%ymm31) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0x5c,0x39,0x20] + vscatterqpd %ymm19, 256(%r9,%ymm31) {%k1} + +// CHECK: vscatterqpd %ymm19, 1024(%rcx,%ymm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa3,0x9c,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd %ymm19, 1024(%rcx,%ymm31,4) {%k1} -- 2.50.1