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