1f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
2f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#include <stdio.h>
3f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#include <stdlib.h>
4f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#include <assert.h>
5917ca31cf6b0d1f92c7168f5557b1dba8fd25253rhyskidd#include "tests/malloc.h"
6f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
7f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjtypedef  unsigned char           UChar;
8f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjtypedef  unsigned int            UInt;
9f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjtypedef  unsigned long int       UWord;
10f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjtypedef  unsigned long long int  ULong;
11f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
127232d21715667faf36d067c75606abecbb85f17frhyskidd#if defined(VGO_darwin)
13f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjUChar randArray[1027] __attribute__((used));
147232d21715667faf36d067c75606abecbb85f17frhyskidd#else
157232d21715667faf36d067c75606abecbb85f17frhyskiddUChar _randArray[1027] __attribute__((used));
167232d21715667faf36d067c75606abecbb85f17frhyskidd#endif
17f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
18f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define IS_32_ALIGNED(_ptr) (0 == (0x1F & (UWord)(_ptr)))
19f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
20f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjtypedef  union { UChar u8[32];  UInt u32[8];  }  YMM;
21f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
22f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjtypedef  struct {  YMM a1; YMM a2; YMM a3; YMM a4; ULong u64; }  Block;
23f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
24f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjvoid showYMM ( YMM* vec )
25f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj{
26f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   int i;
27f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   assert(IS_32_ALIGNED(vec));
28f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   for (i = 31; i >= 0; i--) {
29f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj      printf("%02x", (UInt)vec->u8[i]);
30f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj      if (i > 0 && 0 == ((i+0) & 7)) printf(".");
31f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   }
32f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj}
33f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
34f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjvoid showBlock ( char* msg, Block* block )
35f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj{
36f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   printf("  %s\n", msg);
37f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   printf("    "); showYMM(&block->a1); printf("\n");
38f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   printf("    "); showYMM(&block->a2); printf("\n");
39f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   printf("    "); showYMM(&block->a3); printf("\n");
40f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   printf("    "); showYMM(&block->a4); printf("\n");
41f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   printf("    %016llx\n", block->u64);
42f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj}
43f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
44f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjUChar randUChar ( void )
45f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj{
46f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   static UInt seed = 80021;
47f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   seed = 1103515245 * seed + 12345;
48f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   return (seed >> 17) & 0xFF;
49f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj}
50f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
51f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjvoid randBlock ( Block* b )
52f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj{
53f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   int i;
54f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   UChar* p = (UChar*)b;
55f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   for (i = 0; i < sizeof(Block); i++)
56f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj      p[i] = randUChar();
57f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj}
58f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
59f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
60f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj/* Generate a function test_NAME, that tests the given insn, in both
61f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   its mem and reg forms.  The reg form of the insn may mention, as
62f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   operands only %ymm6, %ymm7, %ymm8, %ymm9 and %r14.  The mem form of
63f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   the insn may mention as operands only (%rax), %ymm7, %ymm8, %ymm9
64f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   and %r14.  It's OK for the insn to clobber ymm0, as this is needed
6544e53760bdf68e7e895306f564c7d22f6070abb8sewardj   for testing PCMPxSTRx, and ymm6, as this is needed for testing
6644e53760bdf68e7e895306f564c7d22f6070abb8sewardj   MOVMASK variants. */
67f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
68f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define GEN_test_RandM(_name, _reg_form, _mem_form)   \
69f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj    \
70f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj    __attribute__ ((noinline)) static void test_##_name ( void )   \
71f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj    { \
72917ca31cf6b0d1f92c7168f5557b1dba8fd25253rhyskidd       Block* b = memalign32(sizeof(Block)); \
73f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       randBlock(b); \
74f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       printf("%s(reg)\n", #_name); \
75f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       showBlock("before", b); \
76f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       __asm__ __volatile__( \
77f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa   0(%0),%%ymm7"  "\n\t" \
78f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa  32(%0),%%ymm8"  "\n\t" \
79f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa  64(%0),%%ymm6"  "\n\t" \
80f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa  96(%0),%%ymm9"  "\n\t" \
81f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "movq    128(%0),%%r14"   "\n\t" \
82f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          _reg_form   "\n\t" \
83f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm7,  0(%0)"  "\n\t" \
84f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm8, 32(%0)"  "\n\t" \
85f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm6, 64(%0)"  "\n\t" \
86f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm9, 96(%0)"  "\n\t" \
87f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "movq    %%r14, 128(%0)"  "\n\t" \
88f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          : /*OUT*/  \
89f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          : /*IN*/"r"(b) \
90f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          : /*TRASH*/"xmm0","xmm7","xmm8","xmm6","xmm9","r14","memory","cc" \
91f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       ); \
92f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       showBlock("after", b); \
93f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       randBlock(b); \
94f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       printf("%s(mem)\n", #_name); \
95f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       showBlock("before", b); \
96f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       __asm__ __volatile__( \
97f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "leaq      0(%0),%%rax"  "\n\t" \
98f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa  32(%0),%%ymm8"  "\n\t" \
99f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa  64(%0),%%ymm7"  "\n\t" \
100f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa  96(%0),%%ymm9"  "\n\t" \
101f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "movq    128(%0),%%r14"   "\n\t" \
102f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          _mem_form   "\n\t" \
103f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm8, 32(%0)"  "\n\t" \
104f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm7, 64(%0)"  "\n\t" \
105f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "vmovdqa %%ymm9, 96(%0)"  "\n\t" \
106f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          "movq    %%r14, 128(%0)"  "\n\t" \
107f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          : /*OUT*/  \
108f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj          : /*IN*/"r"(b) \
10944e53760bdf68e7e895306f564c7d22f6070abb8sewardj          : /*TRASH*/"xmm6", \
11044e53760bdf68e7e895306f564c7d22f6070abb8sewardj                     "xmm0","xmm8","xmm7","xmm9","r14","rax","memory","cc" \
111f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       ); \
112f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       showBlock("after", b); \
113f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       printf("\n"); \
114f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj       free(b); \
115f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj    }
116f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
117f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define GEN_test_Ronly(_name, _reg_form) \
118f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   GEN_test_RandM(_name, _reg_form, "")
119f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define GEN_test_Monly(_name, _mem_form) \
120f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   GEN_test_RandM(_name, "", _mem_form)
121f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
122f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj/* Vector integers promoved from 128-bit in AVX to 256-bit in AVX2.  */
123f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
124f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPOR_256,
125f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpor %%ymm6,  %%ymm8, %%ymm7",
126f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpor (%%rax), %%ymm8, %%ymm7")
127f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
128f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPXOR_256,
129f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpxor %%ymm6,  %%ymm8, %%ymm7",
130f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpxor (%%rax), %%ymm8, %%ymm7")
131f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
132f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBB_256,
133f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubb %%ymm6,  %%ymm8, %%ymm7",
134f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubb (%%rax), %%ymm8, %%ymm7")
135f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
136f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBD_256,
137f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubd %%ymm6,  %%ymm8, %%ymm7",
138f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubd (%%rax), %%ymm8, %%ymm7")
139f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
140f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDD_256,
141f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddd %%ymm6,  %%ymm8, %%ymm7",
142f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddd (%%rax), %%ymm8, %%ymm7")
143f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
144f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVZXWD_256,
145f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxwd %%xmm6,  %%ymm8",
146f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxwd (%%rax), %%ymm8")
147f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
148f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVZXBW_256,
149f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxbw %%xmm6,  %%ymm8",
150f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxbw (%%rax), %%ymm8")
151f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
152f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDVB_256,
153f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendvb %%ymm9, %%ymm6,  %%ymm8, %%ymm7",
154f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendvb %%ymm9, (%%rax), %%ymm8, %%ymm7")
155f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
156f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMINSD_256,
157f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminsd %%ymm6,  %%ymm8, %%ymm7",
158f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminsd (%%rax), %%ymm8, %%ymm7")
159f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
160f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMAXSD_256,
161f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxsd %%ymm6,  %%ymm8, %%ymm7",
162f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxsd (%%rax), %%ymm8, %%ymm7")
163f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
164f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSHUFB_256,
165f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshufb %%ymm6,  %%ymm8, %%ymm7",
166f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshufb (%%rax), %%ymm8, %%ymm7")
167f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
168f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKLBW_256,
169f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpcklbw %%ymm6,  %%ymm8, %%ymm7",
170f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpcklbw (%%rax), %%ymm8, %%ymm7")
171f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
172f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKHBW_256,
173f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhbw %%ymm6,  %%ymm8, %%ymm7",
174f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhbw (%%rax), %%ymm8, %%ymm7")
175f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
176f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPABSD_256,
177f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpabsd %%ymm6,  %%ymm8",
178f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpabsd (%%rax), %%ymm8")
179f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
180f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPACKUSWB_256,
181f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpackuswb %%ymm9,  %%ymm8, %%ymm7",
182f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpackuswb (%%rax), %%ymm8, %%ymm7")
183f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
184f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPMOVMSKB_256,
185f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovmskb %%ymm8, %%r14")
186f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
187f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPAND_256,
188f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpand %%ymm9,  %%ymm8, %%ymm7",
189f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpand (%%rax), %%ymm8, %%ymm7")
190f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
191f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPEQB_256,
192f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqb %%ymm9,  %%ymm8, %%ymm7",
193f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqb (%%rax), %%ymm8, %%ymm7")
194f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
195f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSHUFLW_0x39_256,
196f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshuflw $0x39, %%ymm9,  %%ymm7",
197f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshuflw $0xC6, (%%rax), %%ymm8")
198f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
199f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSHUFHW_0x39_256,
200f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshufhw $0x39, %%ymm9,  %%ymm7",
201f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshufhw $0xC6, (%%rax), %%ymm8")
202f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
203f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULLW_256,
204f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmullw %%ymm9,  %%ymm8, %%ymm7",
205f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmullw (%%rax), %%ymm8, %%ymm7")
206f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
207f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDUSW_256,
208f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddusw %%ymm9,  %%ymm8, %%ymm7",
209f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddusw (%%rax), %%ymm8, %%ymm7")
210f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
211f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULHUW_256,
212f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulhuw %%ymm9,  %%ymm8, %%ymm7",
213f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulhuw (%%rax), %%ymm8, %%ymm7")
214f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
215f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDUSB_256,
216f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddusb %%ymm9,  %%ymm8, %%ymm7",
217f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddusb (%%rax), %%ymm8, %%ymm7")
218f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
219f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKLWD_256,
220f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpcklwd %%ymm6,  %%ymm8, %%ymm7",
221f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpcklwd (%%rax), %%ymm8, %%ymm7")
222f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
223f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKHWD_256,
224f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhwd %%ymm6,  %%ymm8, %%ymm7",
225f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhwd (%%rax), %%ymm8, %%ymm7")
226f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
227f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSLLD_0x05_256,
228f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $0x5, %%ymm9,  %%ymm7")
229f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
230f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSRLD_0x05_256,
231f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $0x5, %%ymm9,  %%ymm7")
232f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
233f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSRAD_0x05_256,
234f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrad $0x5, %%ymm9,  %%ymm7")
235f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
236f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBUSB_256,
237f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubusb %%ymm9,  %%ymm8, %%ymm7",
238f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubusb (%%rax), %%ymm8, %%ymm7")
239f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
240f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBSB_256,
241f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubsb %%ymm9,  %%ymm8, %%ymm7",
242f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubsb (%%rax), %%ymm8, %%ymm7")
243f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
244f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSRLDQ_0x05_256,
245f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrldq $0x5, %%ymm9,  %%ymm7")
246f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
247f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSLLDQ_0x05_256,
248f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslldq $0x5, %%ymm9,  %%ymm7")
249f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
250f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPANDN_256,
251f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpandn %%ymm9,  %%ymm8, %%ymm7",
252f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpandn (%%rax), %%ymm8, %%ymm7")
253f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
254f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKLQDQ_256,
255f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpcklqdq %%ymm6,  %%ymm8, %%ymm7",
256f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpcklqdq (%%rax), %%ymm8, %%ymm7")
257f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
258f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSRLW_0x05_256,
259f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlw $0x5, %%ymm9,  %%ymm7")
260f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
261f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSLLW_0x05_256,
262f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllw $0x5, %%ymm9,  %%ymm7")
263f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
264f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDW_256,
265f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddw %%ymm6,  %%ymm8, %%ymm7",
266f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddw (%%rax), %%ymm8, %%ymm7")
267f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
268f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPACKSSDW_256,
269f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpackssdw %%ymm9,  %%ymm8, %%ymm7",
270f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpackssdw (%%rax), %%ymm8, %%ymm7")
271f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
272f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKLDQ_256,
273f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckldq %%ymm6,  %%ymm8, %%ymm7",
274f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckldq (%%rax), %%ymm8, %%ymm7")
275f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
276f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPEQD_256,
277f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqd %%ymm6,  %%ymm8, %%ymm7",
278f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqd (%%rax), %%ymm8, %%ymm7")
279f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
280f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSHUFD_0x39_256,
281f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshufd $0x39, %%ymm9,  %%ymm8",
282f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpshufd $0xC6, (%%rax), %%ymm7")
283f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
284f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDQ_256,
285f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%ymm6,  %%ymm8, %%ymm7",
286f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq (%%rax), %%ymm8, %%ymm7")
287f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
288f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBQ_256,
289f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%ymm6,  %%ymm8, %%ymm7",
290f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq (%%rax), %%ymm8, %%ymm7")
291f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
292f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBW_256,
293f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubw %%ymm6,  %%ymm8, %%ymm7",
294f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubw (%%rax), %%ymm8, %%ymm7")
295f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
296f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPEQQ_256,
297f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqq %%ymm6,  %%ymm8, %%ymm7",
298f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqq (%%rax), %%ymm8, %%ymm7")
299f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
300f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPGTQ_256,
301f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtq %%ymm6,  %%ymm8, %%ymm7",
302f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtq (%%rax), %%ymm8, %%ymm7")
303f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
304f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSRLQ_0x05_256,
305f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $0x5, %%ymm9,  %%ymm7")
306f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
307f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULUDQ_256,
308f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmuludq %%ymm6,  %%ymm8, %%ymm7",
309f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmuludq (%%rax), %%ymm8, %%ymm7")
310f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
311f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULDQ_256,
312f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmuldq %%ymm6,  %%ymm8, %%ymm7",
313f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmuldq (%%rax), %%ymm8, %%ymm7")
314f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
315f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSLLQ_0x05_256,
316f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $0x5, %%ymm9,  %%ymm7")
317f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
318f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMAXUD_256,
319f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxud %%ymm6,  %%ymm8, %%ymm7",
320f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxud (%%rax), %%ymm8, %%ymm7")
321f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
322f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMINUD_256,
323f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminud %%ymm6,  %%ymm8, %%ymm7",
324f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminud (%%rax), %%ymm8, %%ymm7")
325f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
326f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULLD_256,
327f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulld %%ymm6,  %%ymm8, %%ymm7",
328f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulld (%%rax), %%ymm8, %%ymm7")
329f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
330f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMAXUW_256,
331f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxuw %%ymm6,  %%ymm8, %%ymm7",
332f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxuw (%%rax), %%ymm8, %%ymm7")
333f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
334f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMINUW_256,
335f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminuw %%ymm6,  %%ymm8, %%ymm7",
336f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminuw (%%rax), %%ymm8, %%ymm7")
337f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
338f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMAXSW_256,
339f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxsw %%ymm6,  %%ymm8, %%ymm7",
340f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxsw (%%rax), %%ymm8, %%ymm7")
341f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
342f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMINSW_256,
343f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminsw %%ymm6,  %%ymm8, %%ymm7",
344f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminsw (%%rax), %%ymm8, %%ymm7")
345f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
346f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMAXUB_256,
347f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxub %%ymm6,  %%ymm8, %%ymm7",
348f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxub (%%rax), %%ymm8, %%ymm7")
349f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
350f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMINUB_256,
351f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminub %%ymm6,  %%ymm8, %%ymm7",
352f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminub (%%rax), %%ymm8, %%ymm7")
353f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
354f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMAXSB_256,
355f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxsb %%ymm6,  %%ymm8, %%ymm7",
356f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaxsb (%%rax), %%ymm8, %%ymm7")
357f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
358f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMINSB_256,
359f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminsb %%ymm6,  %%ymm8, %%ymm7",
360f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpminsb (%%rax), %%ymm8, %%ymm7")
361f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
362f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVSXBW_256,
363f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxbw %%xmm6,  %%ymm8",
364f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxbw (%%rax), %%ymm8")
365f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
366f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBUSW_256,
367f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubusw %%ymm9,  %%ymm8, %%ymm7",
368f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubusw (%%rax), %%ymm8, %%ymm7")
369f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
370f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSUBSW_256,
371f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubsw %%ymm9,  %%ymm8, %%ymm7",
372f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubsw (%%rax), %%ymm8, %%ymm7")
373f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
374f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPEQW_256,
375f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqw %%ymm6,  %%ymm8, %%ymm7",
376f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpeqw (%%rax), %%ymm8, %%ymm7")
377f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
378f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDB_256,
379f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddb %%ymm6,  %%ymm8, %%ymm7",
380f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddb (%%rax), %%ymm8, %%ymm7")
381f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
382f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKHDQ_256,
383f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhdq %%ymm6,  %%ymm8, %%ymm7",
384f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhdq (%%rax), %%ymm8, %%ymm7")
385f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
386f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVSXDQ_256,
387f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6,  %%ymm8",
388f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq (%%rax), %%ymm8")
389f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
390f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVSXWD_256,
391f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxwd %%xmm6,  %%ymm8",
392f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxwd (%%rax), %%ymm8")
393f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
394f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULHW_256,
395f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulhw %%ymm9,  %%ymm8, %%ymm7",
396f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulhw (%%rax), %%ymm8, %%ymm7")
397f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
398f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPUNPCKHQDQ_256,
399f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhqdq %%ymm6,  %%ymm8, %%ymm7",
400f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpunpckhqdq (%%rax), %%ymm8, %%ymm7")
401f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
402f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPSRAW_0x05_256,
403f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsraw $0x5, %%ymm9,  %%ymm7")
404f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
405f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPGTB_256,
406f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtb %%ymm6,  %%ymm8, %%ymm7",
407f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtb (%%rax), %%ymm8, %%ymm7")
408f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
409f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPGTW_256,
410f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtw %%ymm6,  %%ymm8, %%ymm7",
411f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtw (%%rax), %%ymm8, %%ymm7")
412f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
413f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPCMPGTD_256,
414f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtd %%ymm6,  %%ymm8, %%ymm7",
415f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpcmpgtd (%%rax), %%ymm8, %%ymm7")
416f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
417f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVZXBD_256,
418f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxbd %%xmm6,  %%ymm8",
419f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxbd (%%rax), %%ymm8")
420f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
421f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVSXBD_256,
422f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxbd %%xmm6,  %%ymm8",
423f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxbd (%%rax), %%ymm8")
424f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
425f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPALIGNR_256_1of3,
426f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpalignr $0, %%ymm6,  %%ymm8, %%ymm7",
427f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpalignr $3, (%%rax), %%ymm8, %%ymm7")
428f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPALIGNR_256_2of3,
429f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpalignr $6, %%ymm6,  %%ymm8, %%ymm7",
430f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpalignr $9, (%%rax), %%ymm8, %%ymm7")
431f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPALIGNR_256_3of3,
432f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpalignr $12, %%ymm6,  %%ymm8, %%ymm7",
433f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpalignr $15, (%%rax), %%ymm8, %%ymm7")
434f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
435f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0x00,
436f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x00, %%ymm6,  %%ymm8, %%ymm7",
437f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x01, (%%rax), %%ymm8, %%ymm7")
438f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0xFE,
439f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0xFE, %%ymm6,  %%ymm8, %%ymm7",
440f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0xFF, (%%rax), %%ymm8, %%ymm7")
441f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0x30,
442f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x30, %%ymm6,  %%ymm8, %%ymm7",
443f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x03, (%%rax), %%ymm8, %%ymm7")
444f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0x21,
445f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x21, %%ymm6,  %%ymm8, %%ymm7",
446f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x12, (%%rax), %%ymm8, %%ymm7")
447f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0xD7,
448f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0xD7, %%ymm6,  %%ymm8, %%ymm7",
449f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x6C, (%%rax), %%ymm8, %%ymm7")
450f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0xB5,
451f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0xB5, %%ymm6,  %%ymm8, %%ymm7",
452f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x4A, (%%rax), %%ymm8, %%ymm7")
453f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0x85,
454f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x85, %%ymm6,  %%ymm8, %%ymm7",
455f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0xDC, (%%rax), %%ymm8, %%ymm7")
456f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDW_256_0x29,
457f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x29, %%ymm6,  %%ymm8, %%ymm7",
458f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendw $0x92, (%%rax), %%ymm8, %%ymm7")
459f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
460f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLW_256,
461f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $15, %%r14d;"
462f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
463f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllw %%xmm6,     %%ymm8, %%ymm9",
464f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $15, 128(%%rax);"
465f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllw 128(%%rax), %%ymm8, %%ymm9")
466f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
467f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLW_256,
468f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $15, %%r14d;"
469f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
470f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlw %%xmm6,     %%ymm8, %%ymm9",
471f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $15, 128(%%rax);"
472f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlw 128(%%rax), %%ymm8, %%ymm9")
473f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
474f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRAW_256,
475f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, %%r14d;"
476f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
477f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsraw %%xmm6,     %%ymm8, %%ymm9",
478f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $15, 128(%%rax);"
479f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsraw 128(%%rax), %%ymm8, %%ymm9")
480f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
481f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLD_256,
482f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, %%r14d;"
483f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
484f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld %%xmm6,     %%ymm8, %%ymm9",
485f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $31, 128(%%rax);"
486f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld 128(%%rax), %%ymm8, %%ymm9")
487f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
488f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLD_256,
489f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, %%r14d;"
490f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
491f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld %%xmm6,     %%ymm8, %%ymm9",
492f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $31, 128(%%rax);"
493f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld 128(%%rax), %%ymm8, %%ymm9")
494f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
495f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRAD_256,
496f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, %%r14d;"
497f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
498f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrad %%xmm6,     %%ymm8, %%ymm9",
499f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $31, 128(%%rax);"
500f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrad 128(%%rax), %%ymm8, %%ymm9")
501f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
502f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLQ_256,
503f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, %%r14d;"
504f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
505f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq %%xmm6,     %%ymm8, %%ymm9",
506f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $63, 128(%%rax);"
507f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq 128(%%rax), %%ymm8, %%ymm9")
508f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
509f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLQ_256,
510f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, %%r14d;"
511f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovd %%r14d, %%xmm6;"
512f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq %%xmm6,     %%ymm8, %%ymm9",
513f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andq $63, 128(%%rax);"
514f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq 128(%%rax), %%ymm8, %%ymm9")
515f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
516f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMADDWD_256,
517f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaddwd %%ymm6,  %%ymm8, %%ymm7",
518f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaddwd (%%rax), %%ymm8, %%ymm7")
519f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
520f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Monly(VMOVNTDQA_256,
521f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovntdqa (%%rax), %%ymm9")
522f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
523f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPACKSSWB_256,
524f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpacksswb %%ymm6,  %%ymm8, %%ymm7",
525f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpacksswb (%%rax), %%ymm8, %%ymm7")
526f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
527f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPAVGB_256,
528f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpavgb %%ymm6,  %%ymm8, %%ymm7",
529f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpavgb (%%rax), %%ymm8, %%ymm7")
530f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
531f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPAVGW_256,
532f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpavgw %%ymm6,  %%ymm8, %%ymm7",
533f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpavgw (%%rax), %%ymm8, %%ymm7")
534f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
535f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDSB_256,
536f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddsb %%ymm6,  %%ymm8, %%ymm7",
537f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddsb (%%rax), %%ymm8, %%ymm7")
538f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
539f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPADDSW_256,
540f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddsw %%ymm6,  %%ymm8, %%ymm7",
541f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddsw (%%rax), %%ymm8, %%ymm7")
542f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
543f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPHADDW_256,
544f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphaddw %%ymm6,  %%ymm8, %%ymm7",
545f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphaddw (%%rax), %%ymm8, %%ymm7")
546f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
547f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPHADDD_256,
548f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphaddd %%ymm6,  %%ymm8, %%ymm7",
549f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphaddd (%%rax), %%ymm8, %%ymm7")
550f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
551f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPHADDSW_256,
552f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphaddsw %%ymm6,  %%ymm8, %%ymm7",
553f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphaddsw (%%rax), %%ymm8, %%ymm7")
554f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
555f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMADDUBSW_256,
556f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaddubsw %%ymm6,  %%ymm8, %%ymm7",
557f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaddubsw (%%rax), %%ymm8, %%ymm7")
558f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
559f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPHSUBW_256,
560f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphsubw %%ymm6,  %%ymm8, %%ymm7",
561f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphsubw (%%rax), %%ymm8, %%ymm7")
562f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
563f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPHSUBD_256,
564f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphsubd %%ymm6,  %%ymm8, %%ymm7",
565f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphsubd (%%rax), %%ymm8, %%ymm7")
566f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
567f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPHSUBSW_256,
568f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphsubsw %%ymm6,  %%ymm8, %%ymm7",
569f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vphsubsw (%%rax), %%ymm8, %%ymm7")
570f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
571f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPABSB_256,
572f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpabsb %%ymm6,  %%ymm7",
573f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpabsb (%%rax), %%ymm7")
574f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
575f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPABSW_256,
576f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpabsw %%ymm6,  %%ymm7",
577f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpabsw (%%rax), %%ymm7")
578f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
579f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVSXBQ_256,
580f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxbq %%xmm6,  %%ymm8",
581f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxbq (%%rax), %%ymm8")
582f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
583f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVSXWQ_256,
584f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxwq %%xmm6,  %%ymm8",
585f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxwq (%%rax), %%ymm8")
586f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
587f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPACKUSDW_256,
588f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpackusdw %%ymm6,  %%ymm8, %%ymm7",
589f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpackusdw (%%rax), %%ymm8, %%ymm7")
590f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
591f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVZXBQ_256,
592f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxbq %%xmm6,  %%ymm8",
593f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxbq (%%rax), %%ymm8")
594f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
595f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVZXWQ_256,
596f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxwq %%xmm6,  %%ymm8",
597f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxwq (%%rax), %%ymm8")
598f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
599f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMOVZXDQ_256,
600f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxdq %%xmm6,  %%ymm8",
601f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovzxdq (%%rax), %%ymm8")
602f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
603f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x0,
604f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0, %%ymm6,  %%ymm8, %%ymm7",
605f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0, (%%rax), %%ymm8, %%ymm7")
606f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x39,
607f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x39, %%ymm6,  %%ymm8, %%ymm7",
608f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x39, (%%rax), %%ymm8, %%ymm7")
609f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x32,
610f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x32, %%ymm6,  %%ymm8, %%ymm7",
611f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x32, (%%rax), %%ymm8, %%ymm7")
612f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x2b,
613f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x2b, %%ymm6,  %%ymm8, %%ymm7",
614f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x2b, (%%rax), %%ymm8, %%ymm7")
615f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x24,
616f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x24, %%ymm6,  %%ymm8, %%ymm7",
617f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x24, (%%rax), %%ymm8, %%ymm7")
618f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x1d,
619f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x1d, %%ymm6,  %%ymm8, %%ymm7",
620f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x1d, (%%rax), %%ymm8, %%ymm7")
621f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x16,
622f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x16, %%ymm6,  %%ymm8, %%ymm7",
623f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x16, (%%rax), %%ymm8, %%ymm7")
624f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VMPSADBW_256_0x0f,
625f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x0f, %%ymm6,  %%ymm8, %%ymm7",
626f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmpsadbw $0x0f, (%%rax), %%ymm8, %%ymm7")
627f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
628f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSADBW_256,
629f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsadbw %%ymm6,  %%ymm8, %%ymm7",
630f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsadbw (%%rax), %%ymm8, %%ymm7")
631f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
632f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSIGNB_256,
633f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsignb %%ymm6,  %%ymm8, %%ymm7",
634f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsignb (%%rax), %%ymm8, %%ymm7")
635f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
636f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSIGNW_256,
637f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsignw %%ymm6,  %%ymm8, %%ymm7",
638f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsignw (%%rax), %%ymm8, %%ymm7")
639f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
640f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSIGND_256,
641f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsignd %%ymm6,  %%ymm8, %%ymm7",
642f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsignd (%%rax), %%ymm8, %%ymm7")
643f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
644f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPMULHRSW_256,
645f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulhrsw %%ymm6,  %%ymm8, %%ymm7",
646f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmulhrsw (%%rax), %%ymm8, %%ymm7")
647f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
648f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj/* Instructions new in AVX2.  */
649f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
650f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Monly(VBROADCASTI128,
651f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vbroadcasti128 (%%rax), %%ymm9")
652f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
653f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VEXTRACTI128_0x0,
654f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vextracti128 $0x0, %%ymm7, %%xmm9",
655f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vextracti128 $0x0, %%ymm7, (%%rax)")
656f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
657f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VEXTRACTI128_0x1,
658f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vextracti128 $0x1, %%ymm7, %%xmm9",
659f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vextracti128 $0x1, %%ymm7, (%%rax)")
660f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
661f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VINSERTI128_0x0,
662f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vinserti128 $0x0, %%xmm9,  %%ymm7, %%ymm8",
663f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vinserti128 $0x0, (%%rax), %%ymm7, %%ymm8")
664f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
665f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VINSERTI128_0x1,
666f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vinserti128 $0x1, %%xmm9,  %%ymm7, %%ymm8",
667f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vinserti128 $0x1, (%%rax), %%ymm7, %%ymm8")
668f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
669f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x00,
670f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x00, %%ymm6,  %%ymm8, %%ymm7",
671f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x00, (%%rax), %%ymm8, %%ymm7")
672f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0xFF,
673f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0xFF, %%ymm6,  %%ymm8, %%ymm7",
674f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0xFF, (%%rax), %%ymm8, %%ymm7")
675f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x30,
676f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x30, %%ymm6,  %%ymm8, %%ymm7",
677f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x30, (%%rax), %%ymm8, %%ymm7")
678f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x21,
679f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x21, %%ymm6,  %%ymm8, %%ymm7",
680f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x21, (%%rax), %%ymm8, %%ymm7")
681f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x12,
682f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x12, %%ymm6,  %%ymm8, %%ymm7",
683f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x12, (%%rax), %%ymm8, %%ymm7")
684f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x03,
685f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x03, %%ymm6,  %%ymm8, %%ymm7",
686f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x03, (%%rax), %%ymm8, %%ymm7")
687f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x85,
688f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x85, %%ymm6,  %%ymm8, %%ymm7",
689f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x85, (%%rax), %%ymm8, %%ymm7")
690f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERM2I128_0x5A,
691f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x5A, %%ymm6,  %%ymm8, %%ymm7",
692f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vperm2i128 $0x5A, (%%rax), %%ymm8, %%ymm7")
693f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
694f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VBROADCASTSS_128,
695f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vbroadcastss %%xmm9, %%xmm7")
696f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
697f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VBROADCASTSS_256,
698f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vbroadcastss %%xmm9, %%ymm7")
699f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
700f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VBROADCASTSD_256,
701f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vbroadcastsd %%xmm9, %%ymm7")
702f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
703f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMD,
704f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermd %%ymm6, %%ymm7, %%ymm9",
705f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermd (%%rax), %%ymm7, %%ymm9")
706f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
707f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0x00,
708f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x00, %%ymm6,  %%ymm7",
709f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x01, (%%rax), %%ymm7")
710f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0xFE,
711f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0xFE, %%ymm6,  %%ymm7",
712f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0xFF, (%%rax), %%ymm7")
713f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0x30,
714f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x30, %%ymm6,  %%ymm7",
715f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x03, (%%rax), %%ymm7")
716f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0x21,
717f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x21, %%ymm6,  %%ymm7",
718f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x12, (%%rax), %%ymm7")
719f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0xD7,
720f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0xD7, %%ymm6,  %%ymm7",
721f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x6C, (%%rax), %%ymm7")
722f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0xB5,
723f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0xB5, %%ymm6,  %%ymm7",
724f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x4A, (%%rax), %%ymm7")
725f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0x85,
726f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x85, %%ymm6,  %%ymm7",
727f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0xDC, (%%rax), %%ymm7")
728f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMQ_0x29,
729f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x29, %%ymm6,  %%ymm7",
730f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermq $0x92, (%%rax), %%ymm7")
731f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
732f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPS,
733f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermps %%ymm6, %%ymm7, %%ymm9",
734f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermps (%%rax), %%ymm7, %%ymm9")
735f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
736f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0x00,
737f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x00, %%ymm6,  %%ymm7",
738f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x01, (%%rax), %%ymm7")
739f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0xFE,
740f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0xFE, %%ymm6,  %%ymm7",
741f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0xFF, (%%rax), %%ymm7")
742f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0x30,
743f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x30, %%ymm6,  %%ymm7",
744f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x03, (%%rax), %%ymm7")
745f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0x21,
746f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x21, %%ymm6,  %%ymm7",
747f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x12, (%%rax), %%ymm7")
748f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0xD7,
749f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0xD7, %%ymm6,  %%ymm7",
750f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x6C, (%%rax), %%ymm7")
751f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0xB5,
752f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0xB5, %%ymm6,  %%ymm7",
753f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x4A, (%%rax), %%ymm7")
754f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0x85,
755f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x85, %%ymm6,  %%ymm7",
756f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0xDC, (%%rax), %%ymm7")
757f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPERMPD_0x29,
758f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x29, %%ymm6,  %%ymm7",
759f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpermpd $0x92, (%%rax), %%ymm7")
760f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
761f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x00,
762f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x00, %%xmm6,  %%xmm8, %%xmm7",
763f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x01, (%%rax), %%xmm8, %%xmm7")
764f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x02,
765f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x02, %%xmm6,  %%xmm8, %%xmm7",
766f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x03, (%%rax), %%xmm8, %%xmm7")
767f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x04,
768f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x04, %%xmm6,  %%xmm8, %%xmm7",
769f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x05, (%%rax), %%xmm8, %%xmm7")
770f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x06,
771f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x06, %%xmm6,  %%xmm8, %%xmm7",
772f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x07, (%%rax), %%xmm8, %%xmm7")
773f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x08,
774f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x08, %%xmm6,  %%xmm8, %%xmm7",
775f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x09, (%%rax), %%xmm8, %%xmm7")
776f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x0A,
777f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x0A, %%xmm6,  %%xmm8, %%xmm7",
778f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x0B, (%%rax), %%xmm8, %%xmm7")
779f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x0C,
780f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x0C, %%xmm6,  %%xmm8, %%xmm7",
781f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x0D, (%%rax), %%xmm8, %%xmm7")
782f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_128_0x0E,
783f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x0E, %%xmm6,  %%xmm8, %%xmm7",
784f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x0F, (%%rax), %%xmm8, %%xmm7")
785f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
786f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0x00,
787f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x00, %%ymm6,  %%ymm8, %%ymm7",
788f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x01, (%%rax), %%ymm8, %%ymm7")
789f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0xFE,
790f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0xFE, %%ymm6,  %%ymm8, %%ymm7",
791f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0xFF, (%%rax), %%ymm8, %%ymm7")
792f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0x30,
793f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x30, %%ymm6,  %%ymm8, %%ymm7",
794f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x03, (%%rax), %%ymm8, %%ymm7")
795f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0x21,
796f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x21, %%ymm6,  %%ymm8, %%ymm7",
797f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x12, (%%rax), %%ymm8, %%ymm7")
798f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0xD7,
799f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0xD7, %%ymm6,  %%ymm8, %%ymm7",
800f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x6C, (%%rax), %%ymm8, %%ymm7")
801f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0xB5,
802f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0xB5, %%ymm6,  %%ymm8, %%ymm7",
803f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x4A, (%%rax), %%ymm8, %%ymm7")
804f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0x85,
805f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x85, %%ymm6,  %%ymm8, %%ymm7",
806f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0xDC, (%%rax), %%ymm8, %%ymm7")
807f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBLENDD_256_0x29,
808f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x29, %%ymm6,  %%ymm8, %%ymm7",
809f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpblendd $0x92, (%%rax), %%ymm8, %%ymm7")
810f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
811f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLVD_128,
812f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $27, %%xmm6, %%xmm6;"
813f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $27, %%xmm6, %%xmm6;"
814f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvd %%xmm6, %%xmm8, %%xmm7",
815f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, (%%rax);"
816f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 4(%%rax);"
817f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 8(%%rax);"
818f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvd (%%rax), %%xmm8, %%xmm7")
819f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
820f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLVD_256,
821f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $27, %%ymm6, %%ymm6;"
822f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $27, %%ymm6, %%ymm6;"
823f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvd %%ymm6, %%ymm8, %%ymm7",
824f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, (%%rax);"
825f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 4(%%rax);"
826f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 8(%%rax);"
827f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 16(%%rax);"
828f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 20(%%rax);"
829f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 24(%%rax);"
830f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvd (%%rax), %%ymm8, %%ymm7")
831f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
832f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLVQ_128,
833f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%xmm6, %%xmm6;"
834f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%xmm6, %%xmm6;"
835f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvq %%xmm6, %%xmm8, %%xmm7",
836f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, (%%rax);"
837f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvq (%%rax), %%xmm8, %%xmm7")
838f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
839f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSLLVQ_256,
840f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%ymm6, %%ymm6;"
841f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%ymm6, %%ymm6;"
842f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvq %%ymm6, %%ymm8, %%ymm7",
843f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, (%%rax);"
844f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, 8(%%rax);"
845f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, 16(%%rax);"
846f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllvq (%%rax), %%ymm8, %%ymm7")
847f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
848f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLVD_128,
849f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $27, %%xmm6, %%xmm6;"
850f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $27, %%xmm6, %%xmm6;"
851f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvd %%xmm6, %%xmm8, %%xmm7",
852f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, (%%rax);"
853f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 4(%%rax);"
854f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 8(%%rax);"
855f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvd (%%rax), %%xmm8, %%xmm7")
856f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
857f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLVD_256,
858f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $27, %%ymm6, %%ymm6;"
859f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $27, %%ymm6, %%ymm6;"
860f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvd %%ymm6, %%ymm8, %%ymm7",
861f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, (%%rax);"
862f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 4(%%rax);"
863f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 8(%%rax);"
864f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 16(%%rax);"
865f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 20(%%rax);"
866f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 24(%%rax);"
867f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvd (%%rax), %%ymm8, %%ymm7")
868f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
869f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLVQ_128,
870f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%xmm6, %%xmm6;"
871f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%xmm6, %%xmm6;"
872f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvq %%xmm6, %%xmm8, %%xmm7",
873f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, (%%rax);"
874f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvq (%%rax), %%xmm8, %%xmm7")
875f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
876f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRLVQ_256,
877f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%ymm6, %%ymm6;"
878f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%ymm6, %%ymm6;"
879f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvq %%ymm6, %%ymm8, %%ymm7",
880f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, (%%rax);"
881f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, 8(%%rax);"
882f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $63, 16(%%rax);"
883f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlvq (%%rax), %%ymm8, %%ymm7")
884f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
885f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRAVD_128,
886f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $27, %%xmm6, %%xmm6;"
887f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $27, %%xmm6, %%xmm6;"
888f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsravd %%xmm6, %%xmm8, %%xmm7",
889f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, (%%rax);"
890f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 4(%%rax);"
891f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 8(%%rax);"
892f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsravd (%%rax), %%xmm8, %%xmm7")
893f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
894f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPSRAVD_256,
895f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $27, %%ymm6, %%ymm6;"
896f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $27, %%ymm6, %%ymm6;"
897f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsravd %%ymm6, %%ymm8, %%ymm7",
898f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, (%%rax);"
899f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 4(%%rax);"
900f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 8(%%rax);"
901f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 16(%%rax);"
902f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 20(%%rax);"
903f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "andl $31, 24(%%rax);"
904f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsravd (%%rax), %%ymm8, %%ymm7")
905f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
906f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTB_128,
907f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastb %%xmm9, %%xmm7",
908f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastb (%%rax), %%xmm7")
909f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
910f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTB_256,
911f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastb %%xmm9, %%ymm7",
912f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastb (%%rax), %%ymm7")
913f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
914f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTW_128,
915f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastw %%xmm9, %%xmm7",
916f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastw (%%rax), %%xmm7")
917f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
918f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTW_256,
919f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastw %%xmm9, %%ymm7",
920f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastw (%%rax), %%ymm7")
921f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
922f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTD_128,
923f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastd %%xmm9, %%xmm7",
924f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastd (%%rax), %%xmm7")
925f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
926f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTD_256,
927f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastd %%xmm9, %%ymm7",
928f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastd (%%rax), %%ymm7")
929f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
930f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTQ_128,
931f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm9, %%xmm7",
932f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq (%%rax), %%xmm7")
933f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
934f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_RandM(VPBROADCASTQ_256,
935f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm9, %%ymm7",
936f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq (%%rax), %%ymm7")
937f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
938f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Monly(VPMASKMOVD_128_LoadForm,
939f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovd (%%rax), %%xmm8, %%xmm7;"
940f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vxorps %%xmm6, %%xmm6, %%xmm6;"
941f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovd (%%rax,%%rax,4), %%xmm6, %%xmm9")
942f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
943f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Monly(VPMASKMOVD_256_LoadForm,
944f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovd (%%rax), %%ymm8, %%ymm7;"
945f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vxorps %%ymm6, %%ymm6, %%ymm6;"
946f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovd (%%rax,%%rax,4), %%ymm6, %%ymm9")
947f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
948f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Monly(VPMASKMOVQ_128_LoadForm,
949f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovq (%%rax), %%xmm8, %%xmm7;"
950f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vxorpd %%xmm6, %%xmm6, %%xmm6;"
951f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovq (%%rax,%%rax,4), %%xmm6, %%xmm9")
952f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
953f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Monly(VPMASKMOVQ_256_LoadForm,
954f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovq (%%rax), %%ymm8, %%ymm7;"
955f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vxorpd %%ymm6, %%ymm6, %%ymm6;"
956f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmaskmovq (%%rax,%%rax,4), %%ymm6, %%ymm9")
957f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
95844e53760bdf68e7e895306f564c7d22f6070abb8sewardjGEN_test_Monly(VPMASKMOVD_128_StoreForm,
95944e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovd %%xmm8, %%xmm7, (%%rax);"
96044e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vxorps %%xmm6, %%xmm6, %%xmm6;"
96144e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovd %%xmm9, %%xmm6, (%%rax,%%rax,4)")
96244e53760bdf68e7e895306f564c7d22f6070abb8sewardj
96344e53760bdf68e7e895306f564c7d22f6070abb8sewardjGEN_test_Monly(VPMASKMOVD_256_StoreForm,
96444e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovd %%ymm8, %%ymm7, (%%rax);"
96544e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vxorps %%ymm6, %%ymm6, %%ymm6;"
96644e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovd %%ymm9, %%ymm6, (%%rax,%%rax,4)")
96744e53760bdf68e7e895306f564c7d22f6070abb8sewardj
96844e53760bdf68e7e895306f564c7d22f6070abb8sewardjGEN_test_Monly(VPMASKMOVQ_128_StoreForm,
96944e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovq %%xmm8, %%xmm7, (%%rax);"
97044e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vxorpd %%xmm6, %%xmm6, %%xmm6;"
97144e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovq %%xmm9, %%xmm6, (%%rax,%%rax,4)")
97244e53760bdf68e7e895306f564c7d22f6070abb8sewardj
97344e53760bdf68e7e895306f564c7d22f6070abb8sewardjGEN_test_Monly(VPMASKMOVQ_256_StoreForm,
97444e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovq %%ymm8, %%ymm7, (%%rax);"
97544e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vxorpd %%ymm6, %%ymm6, %%ymm6;"
97644e53760bdf68e7e895306f564c7d22f6070abb8sewardj               "vpmaskmovq %%ymm9, %%ymm6, (%%rax,%%rax,4)")
97744e53760bdf68e7e895306f564c7d22f6070abb8sewardj
978f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERDPS_128,
979f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $25, %%xmm7, %%xmm8;"
980f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $25, %%xmm8, %%xmm8;"
981f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
9827232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
983f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherdps %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
984f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
985f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
986f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERDPS_256,
987f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $25, %%ymm7, %%ymm8;"
988f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $25, %%ymm8, %%ymm8;"
989f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
9907232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
991f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherdps %%ymm6, 3(%%r14,%%ymm8,4), %%ymm9;"
992f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
993f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
994f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPS_128_1,
995f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%xmm7, %%xmm8;"
996f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%xmm8, %%xmm8;"
997f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%xmm9;"
998f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
999f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
10007232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1001f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqps %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
1002f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1003f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1004f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPS_256_1,
1005f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%ymm7, %%ymm8;"
1006f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%ymm8, %%ymm8;"
1007f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%ymm9;"
1008f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
1009f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
10107232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1011f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqps %%xmm6, 3(%%r14,%%ymm8,4), %%xmm9;"
1012f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1013f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1014f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPS_128_2,
1015f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%xmm7, %%xmm8;"
1016f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%xmm8, %%xmm8;"
1017f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%xmm9;"
1018f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
1019f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
10207232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1021f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1022f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%xmm8, %%xmm8;"
1023f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%xmm7;"
1024f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%xmm7, %%xmm8, %%xmm8;"
1025f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqps %%xmm6, 1(,%%xmm8,1), %%xmm9;"
1026f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%xmm7, %%xmm8, %%xmm8;"
1027f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1028f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1029f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1030f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPS_256_2,
1031f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%ymm7, %%ymm8;"
1032f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%ymm8, %%ymm8;"
1033f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%ymm9;"
1034f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
1035f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
10367232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1037f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1038f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%ymm8, %%ymm8;"
1039f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%ymm7;"
1040f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%ymm7, %%ymm8, %%ymm8;"
1041f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqps %%xmm6, 1(,%%ymm8,1), %%xmm9;"
1042f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%ymm7, %%ymm8, %%ymm8;"
1043f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1044f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1045f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1046f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERDPD_128,
1047f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $26, %%xmm7, %%xmm8;"
1048f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $26, %%xmm8, %%xmm8;"
1049f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vshufps $13, %%xmm6, %%xmm6, %%xmm9;"
1050f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
1051f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
10527232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1053f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherdpd %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
1054f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1055f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1056f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERDPD_256,
1057f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $26, %%ymm7, %%ymm8;"
1058f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $26, %%ymm8, %%ymm8;"
1059f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vextracti128 $1, %%ymm6, %%xmm9;"
1060f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vshufps $221, %%ymm9, %%ymm6, %%ymm9;"
1061f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
1062f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
10637232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1064f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherdpd %%ymm6, 3(%%r14,%%xmm8,8), %%ymm9;"
1065f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1066f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1067f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPD_128_1,
1068f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%xmm7, %%xmm8;"
1069f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%xmm8, %%xmm8;"
1070f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
10717232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1072f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqpd %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
1073f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1074f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1075f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPD_256_1,
1076f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%ymm7, %%ymm8;"
1077f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%ymm8, %%ymm8;"
1078f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
10797232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1080f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqpd %%ymm6, 3(%%r14,%%ymm8,8), %%ymm9;"
1081f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1082f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1083f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPD_128_2,
1084f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%xmm7, %%xmm8;"
1085f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%xmm8, %%xmm8;"
1086f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
10877232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1088f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1089f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%xmm8, %%xmm8;"
1090f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%xmm7;"
1091f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%xmm7, %%xmm8, %%xmm8;"
1092f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqpd %%xmm6, 1(,%%xmm8,1), %%xmm9;"
1093f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%xmm7, %%xmm8, %%xmm8;"
1094f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1095f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1096f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1097f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VGATHERQPD_256_2,
1098f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%ymm7, %%ymm8;"
1099f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%ymm8, %%ymm8;"
1100f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
11017232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1102f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1103f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%ymm8, %%ymm8;"
1104f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%ymm7;"
1105f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%ymm7, %%ymm8, %%ymm8;"
1106f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vgatherqpd %%ymm6, 1(,%%ymm8,1), %%ymm9;"
1107f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%ymm7, %%ymm8, %%ymm8;"
1108f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1109f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1110f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1111f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERDD_128,
1112f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $25, %%xmm7, %%xmm8;"
1113f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $25, %%xmm8, %%xmm8;"
1114f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
11157232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1116f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherdd %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
1117f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1118f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1119f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERDD_256,
1120f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $25, %%ymm7, %%ymm8;"
1121f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $25, %%ymm8, %%ymm8;"
1122f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
11237232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1124f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherdd %%ymm6, 3(%%r14,%%ymm8,4), %%ymm9;"
1125f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1126f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1127f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQD_128_1,
1128f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%xmm7, %%xmm8;"
1129f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%xmm8, %%xmm8;"
1130f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%xmm9;"
1131f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
1132f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
11337232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1134f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqd %%xmm6, 3(%%r14,%%xmm8,4), %%xmm9;"
1135f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1136f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1137f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQD_256_1,
1138f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%ymm7, %%ymm8;"
1139f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%ymm8, %%ymm8;"
1140f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%ymm9;"
1141f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
1142f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
11437232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1144f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqd %%xmm6, 3(%%r14,%%ymm8,4), %%xmm9;"
1145f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1146f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1147f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQD_128_2,
1148f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%xmm7, %%xmm8;"
1149f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%xmm8, %%xmm8;"
1150f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%xmm9;"
1151f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
1152f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
11537232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1154f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1155f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%xmm8, %%xmm8;"
1156f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%xmm7;"
1157f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%xmm7, %%xmm8, %%xmm8;"
1158f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqd %%xmm6, 1(,%%xmm8,1), %%xmm9;"
1159f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%xmm7, %%xmm8, %%xmm8;"
1160f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1161f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1162f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1163f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQD_256_2,
1164f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $57, %%ymm7, %%ymm8;"
1165f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $57, %%ymm8, %%ymm8;"
1166f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpmovsxdq %%xmm6, %%ymm9;"
1167f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
1168f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
11697232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1170f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1171f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%ymm8, %%ymm8;"
1172f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%ymm7;"
1173f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%ymm7, %%ymm8, %%ymm8;"
1174f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqd %%xmm6, 1(,%%ymm8,1), %%xmm9;"
1175f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%ymm7, %%ymm8, %%ymm8;"
1176f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1177f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1178f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1179f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERDQ_128,
1180f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $26, %%xmm7, %%xmm8;"
1181f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $26, %%xmm8, %%xmm8;"
1182f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vshufps $13, %%xmm6, %%xmm6, %%xmm9;"
1183f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%xmm9, %%xmm8, %%xmm7, %%xmm8;"
1184f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
11857232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1186f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherdq %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
1187f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1188f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1189f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERDQ_256,
1190f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpslld $26, %%ymm7, %%ymm8;"
1191f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrld $26, %%ymm8, %%ymm8;"
1192f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vextracti128 $1, %%ymm6, %%xmm9;"
1193f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vshufps $221, %%ymm9, %%ymm6, %%ymm9;"
1194f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvps %%ymm9, %%ymm8, %%ymm7, %%ymm8;"
1195f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 96(%0), %%ymm9;"
11967232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1197f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherdq %%ymm6, 3(%%r14,%%xmm8,8), %%ymm9;"
1198f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1199f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1200f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQQ_128_1,
1201f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%xmm7, %%xmm8;"
1202f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%xmm8, %%xmm8;"
1203f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
12047232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1205f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqq %%xmm6, 3(%%r14,%%xmm8,8), %%xmm9;"
1206f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1207f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1208f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQQ_256_1,
1209f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%ymm7, %%ymm8;"
1210f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%ymm8, %%ymm8;"
1211f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
12127232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1213f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqq %%ymm6, 3(%%r14,%%ymm8,8), %%ymm9;"
1214f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1215f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1216f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQQ_128_2,
1217f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%xmm7, %%xmm8;"
1218f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%xmm8, %%xmm8;"
1219f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%xmm6, %%xmm8, %%xmm7, %%xmm8;"
12207232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1221f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1222f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%xmm8, %%xmm8;"
1223f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%xmm7;"
1224f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%xmm7, %%xmm8, %%xmm8;"
1225f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqq %%xmm6, 1(,%%xmm8,1), %%xmm9;"
1226f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%xmm7, %%xmm8, %%xmm8;"
1227f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1228f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1229f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1230f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjGEN_test_Ronly(VPGATHERQQ_256_2,
1231f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $58, %%ymm7, %%ymm8;"
1232f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsrlq $58, %%ymm8, %%ymm8;"
1233f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vblendvpd %%ymm6, %%ymm8, %%ymm7, %%ymm8;"
12347232d21715667faf36d067c75606abecbb85f17frhyskidd               "leaq _randArray(%%rip), %%r14;"
1235f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovq %%r14, %%xmm7;"
1236f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsllq $2, %%ymm8, %%ymm8;"
1237f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpbroadcastq %%xmm7, %%ymm7;"
1238f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpaddq %%ymm7, %%ymm8, %%ymm8;"
1239f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpgatherqq %%ymm6, 1(,%%ymm8,1), %%ymm9;"
1240f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vpsubq %%ymm7, %%ymm8, %%ymm8;"
1241f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "vmovdqa 0(%0), %%ymm7;"
1242f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj               "xorl %%r14d, %%r14d")
1243f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1244f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj/* Comment duplicated above, for convenient reference:
1245f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   Allowed operands in test insns:
1246f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj     Reg form:  %ymm6,  %ymm7, %ymm8, %ymm9 and %r14.
1247f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj     Mem form:  (%rax), %ymm7, %ymm8, %ymm9 and %r14.
1248f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   Imm8 etc fields are also allowed, where they make sense.
124944e53760bdf68e7e895306f564c7d22f6070abb8sewardj   Both forms may use ymm0 as scratch.  Mem form may also use
125044e53760bdf68e7e895306f564c7d22f6070abb8sewardj   ymm6 as scratch.
1251f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj*/
1252f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1253f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define N_DEFAULT_ITERS 3
1254f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1255f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj// Do the specified test some number of times
1256f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define DO_N(_iters, _testfn) \
1257f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   do { int i; for (i = 0; i < (_iters); i++) { test_##_testfn(); } } while (0)
1258f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1259f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj// Do the specified test the default number of times
1260f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj#define DO_D(_testfn) DO_N(N_DEFAULT_ITERS, _testfn)
1261f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1262f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj
1263f0145384c152263410abd29bbcf5a6f9eaa941e7sewardjint main ( void )
1264f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj{
1265f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPOR_256 );
1266f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPXOR_256 );
1267f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBB_256 );
1268f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBD_256 );
1269f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDD_256 );
1270f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVZXWD_256 );
1271f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVZXBW_256 );
1272f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDVB_256 );
1273f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMINSD_256 );
1274f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMAXSD_256 );
1275f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSHUFB_256 );
1276f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKLBW_256 );
1277f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKHBW_256 );
1278f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPABSD_256 );
1279f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPACKUSWB_256 );
1280f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVMSKB_256 );
1281f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPAND_256 );
1282f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPEQB_256 );
1283f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSHUFLW_0x39_256 );
1284f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSHUFHW_0x39_256 );
1285f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULLW_256 );
1286f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDUSW_256 );
1287f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULHUW_256 );
1288f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDUSB_256 );
1289f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKLWD_256 );
1290f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKHWD_256 );
1291f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLD_0x05_256 );
1292f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLD_0x05_256 );
1293f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRAD_0x05_256 );
1294f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBUSB_256 );
1295f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBSB_256 );
1296f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLDQ_0x05_256 );
1297f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLDQ_0x05_256 );
1298f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPANDN_256 );
1299f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKLQDQ_256 );
1300f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLW_0x05_256 );
1301f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLW_0x05_256 );
1302f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDW_256 );
1303f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPACKSSDW_256 );
1304f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKLDQ_256 );
1305f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPEQD_256 );
1306f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSHUFD_0x39_256 );
1307f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDQ_256 );
1308f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBQ_256 );
1309f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBW_256 );
1310f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPEQQ_256 );
1311f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPGTQ_256 );
1312f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLQ_0x05_256 );
1313f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULUDQ_256 );
1314f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULDQ_256 );
1315f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLQ_0x05_256 );
1316f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMAXUD_256 );
1317f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMINUD_256 );
1318f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULLD_256 );
1319f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMAXUW_256 );
1320f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMINUW_256 );
1321f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMAXSW_256 );
1322f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMINSW_256 );
1323f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMAXUB_256 );
1324f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMINUB_256 );
1325f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMAXSB_256 );
1326f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMINSB_256 );
1327f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVSXBW_256 );
1328f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBUSW_256 );
1329f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSUBSW_256 );
1330f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPEQW_256 );
1331f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDB_256 );
1332f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKHDQ_256 );
1333f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVSXDQ_256 );
1334f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVSXWD_256 );
1335f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULHW_256 );
1336f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPUNPCKHQDQ_256 );
1337f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRAW_0x05_256 );
1338f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPGTB_256 );
1339f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPGTW_256 );
1340f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPCMPGTD_256 );
1341f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVZXBD_256 );
1342f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVSXBD_256 );
1343f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPALIGNR_256_1of3 );
1344f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPALIGNR_256_2of3 );
1345f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPALIGNR_256_3of3 );
1346f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0x00 );
1347f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0xFE );
1348f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0x30 );
1349f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0x21 );
1350f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0xD7 );
1351f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0xB5 );
1352f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0x85 );
1353f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDW_256_0x29 );
1354f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLW_256 );
1355f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLW_256 );
1356f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRAW_256 );
1357f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLD_256 );
1358f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLD_256 );
1359f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRAD_256 );
1360f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLQ_256 );
1361f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLQ_256 );
1362f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMADDWD_256 );
1363f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMOVNTDQA_256 );
1364f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPACKSSWB_256 );
1365f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPAVGB_256 );
1366f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPAVGW_256 );
1367f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDSB_256 );
1368f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPADDSW_256 );
1369f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPHADDW_256 );
1370f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPHADDD_256 );
1371f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPHADDSW_256 );
1372f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMADDUBSW_256 );
1373f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPHSUBW_256 );
1374f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPHSUBD_256 );
1375f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPHSUBSW_256 );
1376f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPABSB_256 );
1377f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPABSW_256 );
1378f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVSXBQ_256 );
1379f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVSXWQ_256 );
1380f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPACKUSDW_256 );
1381f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVZXBQ_256 );
1382f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVZXWQ_256 );
1383f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMOVZXDQ_256 );
1384f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x0 );
1385f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x39 );
1386f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x32 );
1387f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x2b );
1388f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x24 );
1389f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x1d );
1390f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x16 );
1391f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VMPSADBW_256_0x0f );
1392f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSADBW_256 );
1393f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSIGNB_256 );
1394f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSIGNW_256 );
1395f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSIGND_256 );
1396f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMULHRSW_256 );
1397f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VBROADCASTI128 );
1398f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VEXTRACTI128_0x0 );
1399f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VEXTRACTI128_0x1 );
1400f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VINSERTI128_0x0 );
1401f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VINSERTI128_0x1 );
1402f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x00 );
1403f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0xFF );
1404f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x30 );
1405f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x21 );
1406f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x12 );
1407f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x03 );
1408f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x85 );
1409f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERM2I128_0x5A );
1410f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VBROADCASTSS_128 );
1411f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VBROADCASTSS_256 );
1412f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VBROADCASTSD_256 );
1413f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMD );
1414f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0x00 );
1415f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0xFE );
1416f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0x30 );
1417f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0x21 );
1418f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0xD7 );
1419f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0xB5 );
1420f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0x85 );
1421f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMQ_0x29 );
1422f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPS );
1423f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0x00 );
1424f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0xFE );
1425f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0x30 );
1426f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0x21 );
1427f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0xD7 );
1428f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0xB5 );
1429f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0x85 );
1430f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPERMPD_0x29 );
1431f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x00 );
1432f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x02 );
1433f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x04 );
1434f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x06 );
1435f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x08 );
1436f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x0A );
1437f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x0C );
1438f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_128_0x0E );
1439f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0x00 );
1440f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0xFE );
1441f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0x30 );
1442f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0x21 );
1443f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0xD7 );
1444f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0xB5 );
1445f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0x85 );
1446f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBLENDD_256_0x29 );
1447f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLVD_128 );
1448f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLVD_256 );
1449f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLVQ_128 );
1450f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSLLVQ_256 );
1451f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLVD_128 );
1452f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLVD_256 );
1453f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLVQ_128 );
1454f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRLVQ_256 );
1455f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRAVD_128 );
1456f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPSRAVD_256 );
1457f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTB_128 );
1458f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTB_256 );
1459f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTW_128 );
1460f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTW_256 );
1461f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTD_128 );
1462f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTD_256 );
1463f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTQ_128 );
1464f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPBROADCASTQ_256 );
1465f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMASKMOVD_128_LoadForm );
1466f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMASKMOVD_256_LoadForm );
1467f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMASKMOVQ_128_LoadForm );
1468f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPMASKMOVQ_256_LoadForm );
146944e53760bdf68e7e895306f564c7d22f6070abb8sewardj   DO_D( VPMASKMOVD_128_StoreForm );
147044e53760bdf68e7e895306f564c7d22f6070abb8sewardj   DO_D( VPMASKMOVD_256_StoreForm );
147144e53760bdf68e7e895306f564c7d22f6070abb8sewardj   DO_D( VPMASKMOVQ_128_StoreForm );
147244e53760bdf68e7e895306f564c7d22f6070abb8sewardj   DO_D( VPMASKMOVQ_256_StoreForm );
14737232d21715667faf36d067c75606abecbb85f17frhyskidd#if defined(VGO_darwin)
1474f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   { int i; for (i = 0; i < sizeof(randArray); i++) randArray[i] = randUChar(); }
14757232d21715667faf36d067c75606abecbb85f17frhyskidd#else
14767232d21715667faf36d067c75606abecbb85f17frhyskidd   { int i; for (i = 0; i < sizeof(_randArray); i++) _randArray[i] = randUChar(); }
14777232d21715667faf36d067c75606abecbb85f17frhyskidd#endif
1478f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERDPS_128 );
1479f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERDPS_256 );
1480f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPS_128_1 );
1481f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPS_256_1 );
1482f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPS_128_2 );
1483f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPS_256_2 );
1484f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERDPD_128 );
1485f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERDPD_256 );
1486f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPD_128_1 );
1487f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPD_256_1 );
1488f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPD_128_2 );
1489f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VGATHERQPD_256_2 );
1490f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERDD_128 );
1491f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERDD_256 );
1492f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQD_128_1 );
1493f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQD_256_1 );
1494f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQD_128_2 );
1495f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQD_256_2 );
1496f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERDQ_128 );
1497f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERDQ_256 );
1498f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQQ_128_1 );
1499f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQQ_256_1 );
1500f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQQ_128_2 );
1501f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   DO_D( VPGATHERQQ_256_2 );
1502f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj   return 0;
1503f0145384c152263410abd29bbcf5a6f9eaa941e7sewardj}
1504