From abd768fbbe7258a94a5bd07ba67358639f8f8e97 Mon Sep 17 00:00:00 2001 From: Igor Breger Date: Mon, 31 Aug 2015 11:33:50 +0000 Subject: [PATCH] AVX512: Add encoding tests for vscatter instructions Differential Revision: http://reviews.llvm.org/D11941 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246431 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/X86/avx512-encodings.s | 64 ++++++++++++++++ test/MC/X86/x86-64-avx512f_vl.s | 128 ++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+) diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s index 7dd8014213d..c0ef0cb0e29 100644 --- a/test/MC/X86/avx512-encodings.s +++ b/test/MC/X86/avx512-encodings.s @@ -14958,3 +14958,67 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2 // CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0x92,0xf8,0xfb,0xff,0xff] vgetexpsd -1032(%rdx), %xmm7, %xmm2 +// CHECK: vscatterqps %ymm6, 123(%r14,%zmm27,8) {%k1} +// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0xb4,0xde,0x7b,0x00,0x00,0x00] + vscatterqps %ymm6, 123(%r14,%zmm27,8) {%k1} + +// CHECK: vscatterqps %ymm6, 123(%r14,%zmm27,8) {%k1} +// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0xb4,0xde,0x7b,0x00,0x00,0x00] + vscatterqps %ymm6, 123(%r14,%zmm27,8) {%k1} + +// CHECK: vscatterqps %ymm6, 256(%r9,%zmm27) {%k1} +// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0x74,0x19,0x40] + vscatterqps %ymm6, 256(%r9,%zmm27) {%k1} + +// CHECK: vscatterqps %ymm6, 1024(%rcx,%zmm27,4) {%k1} +// CHECK: encoding: [0x62,0xb2,0x7d,0x41,0xa3,0xb4,0x99,0x00,0x04,0x00,0x00] + vscatterqps %ymm6, 1024(%rcx,%zmm27,4) {%k1} + +// CHECK: vscatterqpd %zmm22, 123(%r14,%zmm28,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0xb4,0xe6,0x7b,0x00,0x00,0x00] + vscatterqpd %zmm22, 123(%r14,%zmm28,8) {%k1} + +// CHECK: vscatterqpd %zmm22, 123(%r14,%zmm28,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0xb4,0xe6,0x7b,0x00,0x00,0x00] + vscatterqpd %zmm22, 123(%r14,%zmm28,8) {%k1} + +// CHECK: vscatterqpd %zmm22, 256(%r9,%zmm28) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0x74,0x21,0x20] + vscatterqpd %zmm22, 256(%r9,%zmm28) {%k1} + +// CHECK: vscatterqpd %zmm22, 1024(%rcx,%zmm28,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa3,0xb4,0xa1,0x00,0x04,0x00,0x00] + vscatterqpd %zmm22, 1024(%rcx,%zmm28,4) {%k1} + +// CHECK: vscatterdps %zmm17, 123(%r14,%zmm19,8) {%k1} +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x8c,0xde,0x7b,0x00,0x00,0x00] + vscatterdps %zmm17, 123(%r14, %zmm19,8) {%k1} + +// CHECK: vscatterdps %zmm17, 123(%r14,%zmm19,8) {%k1} +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x8c,0xde,0x7b,0x00,0x00,0x00] + vscatterdps %zmm17, 123(%r14, %zmm19,8) {%k1} + +// CHECK: vscatterdps %zmm17, 256(%r9,%zmm19) {%k1} +// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x4c,0x19,0x40] + vscatterdps %zmm17, 256(%r9, %zmm19) {%k1} + +// CHECK: vscatterdps %zmm17, 1024(%rcx,%zmm19,4) {%k1} +// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa2,0x8c,0x99,0x00,0x04,0x00,0x00] + vscatterdps %zmm17, 1024(%rcx, %zmm19,4) {%k1} + +// CHECK: vscatterdpd %zmm18, 123(%r14,%ymm24,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xc6,0x7b,0x00,0x00,0x00] + vscatterdpd %zmm18, 123(%r14, %ymm24,8) {%k1} + +// CHECK: vscatterdpd %zmm18, 123(%r14,%ymm24,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xc6,0x7b,0x00,0x00,0x00] + vscatterdpd %zmm18, 123(%r14, %ymm24,8) {%k1} + +// CHECK: vscatterdpd %zmm18, 256(%r9,%ymm24) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x54,0x01,0x20] + vscatterdpd %zmm18, 256(%r9, %ymm24) {%k1} + +// CHECK: vscatterdpd %zmm18, 1024(%rcx,%ymm24,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa2,0x94,0x81,0x00,0x04,0x00,0x00] + vscatterdpd %zmm18, 1024(%rcx, %ymm24,4) {%k1} + diff --git a/test/MC/X86/x86-64-avx512f_vl.s b/test/MC/X86/x86-64-avx512f_vl.s index 564af897274..0681f42fa99 100644 --- a/test/MC/X86/x86-64-avx512f_vl.s +++ b/test/MC/X86/x86-64-avx512f_vl.s @@ -19739,3 +19739,131 @@ vaddpd {rz-sae}, %zmm2, %zmm1, %zmm1 // CHECK: encoding: [0x62,0xe1,0xe5,0x30,0x6d,0xa2,0xf8,0xfb,0xff,0xff] vpunpckhqdq -1032(%rdx){1to4}, %ymm19, %ymm20 +// CHECK: vscatterqps %xmm28, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm28, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterqps %xmm28, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm28, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterqps %xmm28, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x64,0x39,0x40] + vscatterqps %xmm28, 256(%r9, %xmm31) {%k1} + +// CHECK: vscatterqps %xmm28, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa3,0xa4,0xb9,0x00,0x04,0x00,0x00] + vscatterqps %xmm28, 1024(%rcx, %xmm31,4) {%k1} + +// CHECK: vscatterqps %xmm25, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm25, 123(%r14, %ymm31,8) {%k1} + +// CHECK: vscatterqps %xmm25, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x8c,0xfe,0x7b,0x00,0x00,0x00] + vscatterqps %xmm25, 123(%r14, %ymm31,8) {%k1} + +// CHECK: vscatterqps %xmm25, 256(%r9,%ymm31) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x4c,0x39,0x40] + vscatterqps %xmm25, 256(%r9, %ymm31) {%k1} + +// CHECK: vscatterqps %xmm25, 1024(%rcx,%ymm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa3,0x8c,0xb9,0x00,0x04,0x00,0x00] + vscatterqps %xmm25, 1024(%rcx, %ymm31,4) {%k1} + +// CHECK: vscatterqpd %xmm21, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0xac,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %xmm21, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterqpd %xmm21, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0xac,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %xmm21, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterqpd %xmm21, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x6c,0x39,0x20] + vscatterqpd %xmm21, 256(%r9, %xmm31) {%k1} + +// CHECK: vscatterqpd %xmm21, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa3,0xac,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd %xmm21, 1024(%rcx, %xmm31,4) {%k1} + +// CHECK: vscatterqpd %ymm23, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %ymm23, 123(%r14, %ymm31,8) {%k1} + +// CHECK: vscatterqpd %ymm23, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterqpd %ymm23, 123(%r14, %ymm31,8) {%k1} + +// CHECK: vscatterqpd %ymm23, 256(%r9,%ymm31) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0x7c,0x39,0x20] + vscatterqpd %ymm23, 256(%r9, %ymm31) {%k1} + +// CHECK: vscatterqpd %ymm23, 1024(%rcx,%ymm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa3,0xbc,0xb9,0x00,0x04,0x00,0x00] + vscatterqpd %ymm23, 1024(%rcx, %ymm31,4) {%k1} + +// CHECK: vscatterdps %xmm24, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x84,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %xmm24, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterdps %xmm24, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x84,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %xmm24, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterdps %xmm24, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x44,0x39,0x40] + vscatterdps %xmm24, 256(%r9, %xmm31) {%k1} + +// CHECK: vscatterdps %xmm24, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa2,0x84,0xb9,0x00,0x04,0x00,0x00] + vscatterdps %xmm24, 1024(%rcx, %xmm31,4) {%k1} + +// CHECK: vscatterdps %ymm23, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %ymm23, 123(%r14, %ymm31,8) {%k1} + +// CHECK: vscatterdps %ymm23, 123(%r14,%ymm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0xbc,0xfe,0x7b,0x00,0x00,0x00] + vscatterdps %ymm23, 123(%r14, %ymm31,8) {%k1} + +// CHECK: vscatterdps %ymm23, 256(%r9,%ymm31) {%k1} +// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0x7c,0x39,0x40] + vscatterdps %ymm23, 256(%r9, %ymm31) {%k1} + +// CHECK: vscatterdps %ymm23, 1024(%rcx,%ymm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0xa2,0xbc,0xb9,0x00,0x04,0x00,0x00] + vscatterdps %ymm23, 1024(%rcx, %ymm31,4) {%k1} + +// CHECK: vscatterdpd %xmm18, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x94,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %xmm18, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterdpd %xmm18, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x94,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %xmm18, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterdpd %xmm18, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x54,0x39,0x20] + vscatterdpd %xmm18, 256(%r9, %xmm31) {%k1} + +// CHECK: vscatterdpd %xmm18, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa2,0x94,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd %xmm18, 1024(%rcx, %xmm31,4) {%k1} + +// CHECK: vscatterdpd %ymm30, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %ymm30, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterdpd %ymm30, 123(%r14,%xmm31,8) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xb4,0xfe,0x7b,0x00,0x00,0x00] + vscatterdpd %ymm30, 123(%r14, %xmm31,8) {%k1} + +// CHECK: vscatterdpd %ymm30, 256(%r9,%xmm31) {%k1} +// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x74,0x39,0x20] + vscatterdpd %ymm30, 256(%r9, %xmm31) {%k1} + +// CHECK: vscatterdpd %ymm30, 1024(%rcx,%xmm31,4) {%k1} +// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa2,0xb4,0xb9,0x00,0x04,0x00,0x00] + vscatterdpd %ymm30, 1024(%rcx, %xmm31,4) {%k1} + -- 2.34.1