1eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#include <stdio.h>
3eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#include <assert.h>
4eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#include <malloc.h>  // memalign
5eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#include <string.h>  // memset
6eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#include <math.h>    // isnormal
7eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
8eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  unsigned char           UChar;
9eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  unsigned short int      UShort;
10eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  unsigned int            UInt;
11eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  signed int              Int;
12eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  unsigned char           UChar;
13eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  unsigned long long int  ULong;
14eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
15eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  unsigned char           Bool;
16eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define False ((Bool)0)
17eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define True  ((Bool)1)
18eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
19eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
20eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define ITERS 1
21eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
22eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef
23eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  enum { TySF=1234, TyDF, TyB, TyH, TyS, TyD, TyNONE }
24eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  LaneTy;
25eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
26eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovunion _V128 {
27eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   UChar  u8[16];
28eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   UShort u16[8];
29eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   UInt   u32[4];
30eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ULong  u64[2];
31eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   float  f32[4];
32eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   double f64[2];
33eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov};
34eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovtypedef  union _V128   V128;
35eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
36eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstatic inline UChar randUChar ( void )
37eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
38eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   static UInt seed = 80021;
39eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   seed = 1103515245 * seed + 12345;
40eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   return (seed >> 17) & 0xFF;
41eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
42eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
43eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstatic ULong randULong ( LaneTy ty )
44eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
45eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   Int i;
46eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ULong r = 0;
47eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   for (i = 0; i < 8; i++) {
48eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      r = (r << 8) | (ULong)(0xFF & randUChar());
49eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   }
50eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   return r;
51eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
52eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
53eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Generates a random V128.  Ensures that that it contains normalised
54eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   FP numbers when viewed as either F32x4 or F64x2, so that it is
55eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   reasonable to use in FP test cases. */
56eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstatic void randV128 ( /*OUT*/V128* v, LaneTy ty )
57eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
58eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   static UInt nCalls = 0, nIters = 0;
59eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   Int i;
60eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   nCalls++;
61eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   while (1) {
62eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      nIters++;
63eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      for (i = 0; i < 16; i++) {
64eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         v->u8[i] = randUChar();
65eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      }
66eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      if (isnormal(v->f32[0]) && isnormal(v->f32[1]) && isnormal(v->f32[2])
67eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov          && isnormal(v->f32[3]) && isnormal(v->f64[0]) && isnormal(v->f64[1]))
68eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        break;
69eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   }
70eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0 == (nCalls & 0xFF))
71eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      printf("randV128: %u calls, %u iters\n", nCalls, nIters);
72eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
73eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
74eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstatic void showV128 ( V128* v )
75eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
76eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   Int i;
77eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   for (i = 15; i >= 0; i--)
78eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov      printf("%02x", (Int)v->u8[i]);
79eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
80eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
81eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov__attribute__((unused))
82eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovstatic void* memalign16(size_t szB)
83eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
84eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   void* x;
85eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   x = memalign(16, szB);
86eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   assert(x);
87eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   assert(0 == ((16-1) & (unsigned long)x));
88eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   return x;
89eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
90eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
91eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
92eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
93eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* -- Test functions                                             -- */
94eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
95eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
96eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Note this also sets the destination register to a known value (0x55..55)
97eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   since it can sometimes be an input to the instruction too. */
98eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define GEN_UNARY_TEST(INSN,SUFFIXD,SUFFIXN) \
99eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __attribute__((noinline)) \
100eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  static void test_##INSN##_##SUFFIXD##_##SUFFIXN ( LaneTy ty ) { \
101eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     Int i; \
102eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     for (i = 0; i < ITERS; i++) { \
103eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        V128 block[2]; \
104eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        memset(block, 0x55, sizeof(block)); \
105eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[0], ty); \
106eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[1], ty); \
107eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        __asm__ __volatile__( \
108eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q7, [%0, #0]   ; " \
109eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q8, [%0, #16]   ; " \
110eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           #INSN " v8." #SUFFIXD ", v7." #SUFFIXN " ; " \
111eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q8, [%0, #16] " \
112eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : : "r"(&block[0]) : "memory", "v7", "v8" \
113eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        ); \
114eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        printf(#INSN   " v8." #SUFFIXD ", v7." #SUFFIXN); \
115eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[0]); printf("  "); \
116eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[1]); printf("\n"); \
117eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     } \
118eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
119eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
120eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
121eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Note this also sets the destination register to a known value (0x55..55)
122eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   since it can sometimes be an input to the instruction too. */
123eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define GEN_BINARY_TEST(INSN,SUFFIXD,SUFFIXN,SUFFIXM)  \
124eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __attribute__((noinline)) \
125eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  static void test_##INSN##_##SUFFIXD##_##SUFFIXN##_##SUFFIXM ( LaneTy ty ) { \
126eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     Int i; \
127eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     for (i = 0; i < ITERS; i++) { \
128eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        V128 block[3]; \
129eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        memset(block, 0x55, sizeof(block)); \
130eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[0], ty); \
131eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[1], ty); \
132eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[2], ty); \
133eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        __asm__ __volatile__( \
134eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q7, [%0, #0]   ; " \
135eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q8, [%0, #16]   ; " \
136eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q9, [%0, #32]   ; " \
137eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           #INSN " v9." #SUFFIXD ", v7." #SUFFIXN ", v8." #SUFFIXM " ; " \
138eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q9, [%0, #32] " \
139eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : : "r"(&block[0]) : "memory", "v7", "v8", "v9" \
140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        ); \
141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        printf(#INSN   " v9." #SUFFIXD \
142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov               ", v7." #SUFFIXN ", v8." #SUFFIXM "  ");   \
143eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[0]); printf("  "); \
144eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[1]); printf("  "); \
145eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[2]); printf("\n"); \
146eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     } \
147eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
148eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
149eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
150eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Note this also sets the destination register to a known value (0x55..55)
151eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   since it can sometimes be an input to the instruction too. */
152eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define GEN_SHIFT_TEST(INSN,SUFFIXD,SUFFIXN,AMOUNT) \
153eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __attribute__((noinline)) \
154eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  static void test_##INSN##_##SUFFIXD##_##SUFFIXN##_##AMOUNT ( LaneTy ty ) { \
155eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     Int i; \
156eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     for (i = 0; i < ITERS; i++) { \
157eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        V128 block[2]; \
158eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        memset(block, 0x55, sizeof(block)); \
159eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[0], ty); \
160eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[1], ty); \
161eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        __asm__ __volatile__( \
162eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q7, [%0, #0]   ; " \
163eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q8, [%0, #16]   ; " \
164eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           #INSN " v8." #SUFFIXD ", v7." #SUFFIXN ", #" #AMOUNT " ; " \
165eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q8, [%0, #16] " \
166eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : : "r"(&block[0]) : "memory", "v7", "v8" \
167eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        ); \
168eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        printf(#INSN   " v8." #SUFFIXD ", v7." #SUFFIXN ", #" #AMOUNT "  "); \
169eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[0]); printf("  "); \
170eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[1]); printf("\n"); \
171eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     } \
172eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
173eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
174eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
175eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Generate a test that involves one integer reg and one vector reg,
176eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   with no bias as towards which is input or output. */
177eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define GEN_ONEINT_ONEVEC_TEST(TESTNAME,INSN,INTREGNO,VECREGNO) \
178eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __attribute__((noinline)) \
179eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  static void test_##TESTNAME ( LaneTy ty ) { \
180eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     Int i; \
181eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     for (i = 0; i < ITERS; i++) { \
182eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        V128 block[4]; \
183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        memset(block, 0x55, sizeof(block)); \
184eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[0], ty); \
185eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[1], ty); \
186eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[2], ty); \
187eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[3], ty); \
188eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        __asm__ __volatile__( \
189eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q"#VECREGNO", [%0, #0]  ; " \
190eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   x"#INTREGNO", [%0, #16] ; " \
191eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           INSN " ; " \
192eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q"#VECREGNO", [%0, #32] ; " \
193eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   x"#INTREGNO", [%0, #48] ; " \
194eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : : "r"(&block[0]) : "memory", "v"#VECREGNO, "x"#INTREGNO \
195eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        ); \
196eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        printf(INSN   "   "); \
197eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[0]); printf("  "); \
198eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[1]); printf("  "); \
199eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[2]); printf("  "); \
200eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[3]); printf("\n"); \
201eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     } \
202eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
203eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
204eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
205eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Generate a test that involves two vector regs,
206eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   with no bias as towards which is input or output.
207eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   It's OK to use x10 as scratch.*/
208eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define GEN_TWOVEC_TEST(TESTNAME,INSN,VECREG1NO,VECREG2NO) \
209eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __attribute__((noinline)) \
210eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  static void test_##TESTNAME ( LaneTy ty ) { \
211eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     Int i; \
212eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     for (i = 0; i < ITERS; i++) { \
213eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        V128 block[4]; \
214eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        memset(block, 0x55, sizeof(block)); \
215eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[0], ty); \
216eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[1], ty); \
217eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[2], ty); \
218eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[3], ty); \
219eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        __asm__ __volatile__( \
220eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q"#VECREG1NO", [%0, #0]  ; " \
221eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q"#VECREG2NO", [%0, #16] ; " \
222eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           INSN " ; " \
223eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q"#VECREG1NO", [%0, #32] ; " \
224eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q"#VECREG2NO", [%0, #48] ; " \
225eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : : "r"(&block[0]) \
226eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov             : "memory", "v"#VECREG1NO, "v"#VECREG2NO, "x10" \
227eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        ); \
228eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        printf(INSN   "   "); \
229eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[0]); printf("  "); \
230eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[1]); printf("  "); \
231eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[2]); printf("  "); \
232eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[3]); printf("\n"); \
233eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     } \
234eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
235eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
237eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* Generate a test that involves three vector regs,
238eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   with no bias as towards which is input or output.  It's also OK
239eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   to use v16, v17, v18 as scratch. */
240eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov#define GEN_THREEVEC_TEST(TESTNAME,INSN,VECREG1NO,VECREG2NO,VECREG3NO)  \
241eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __attribute__((noinline)) \
242eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  static void test_##TESTNAME ( LaneTy ty ) { \
243eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     Int i; \
244eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     for (i = 0; i < ITERS; i++) { \
245eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        V128 block[6]; \
246eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        memset(block, 0x55, sizeof(block)); \
247eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[0], ty); \
248eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[1], ty); \
249eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[2], ty); \
250eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[3], ty); \
251eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[4], ty); \
252eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        randV128(&block[5], ty); \
253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        __asm__ __volatile__( \
254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q"#VECREG1NO", [%0, #0]  ; " \
255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q"#VECREG2NO", [%0, #16] ; " \
256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "ldr   q"#VECREG3NO", [%0, #32] ; " \
257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           INSN " ; " \
258eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q"#VECREG1NO", [%0, #48] ; " \
259eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q"#VECREG2NO", [%0, #64] ; " \
260eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           "str   q"#VECREG3NO", [%0, #80] ; " \
261eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : : "r"(&block[0]) \
262eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov           : "memory", "v"#VECREG1NO, "v"#VECREG2NO, "v"#VECREG3NO, \
263eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov             "v16", "v17", "v18" \
264eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        ); \
265eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        printf(INSN   "   "); \
266eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[0]); printf("  "); \
267eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[1]); printf("  "); \
268eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[2]); printf("  "); \
269eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[3]); printf("  "); \
270eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[4]); printf("  "); \
271eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        showV128(&block[5]); printf("\n"); \
272eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     } \
273eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
274eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
275eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
276eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovvoid test_UMINV ( void )
277eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
278eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  int i;
279eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  V128 block[2];
280eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
281eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4s -- */
282eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
283eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
284eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
285eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyS);
286eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyS);
287eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
288eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
289eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "uminv s8, v7.4s   ; "
290eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
291eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
292eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
293eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMINV v8, v7.4s  ");
294eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
295eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
296eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
297eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
298eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8h -- */
299eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
300eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
301eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
304eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
305eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
306eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "uminv h8, v7.8h   ; "
307eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
308eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
309eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
310eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMINV h8, v7.8h  ");
311eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
312eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
313eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
314eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
315eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4h -- */
316eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
317eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
318eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
319eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
320eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
321eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
322eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
323eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "uminv h8, v7.4h   ; "
324eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
325eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
326eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
327eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMINV h8, v7.4h  ");
328eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
329eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
330eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 16b -- */
333eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
334eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
335eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
336eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
337eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
338eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
339eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "uminv b8, v7.16b   ; "
341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
342eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
343eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
344eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMINV b8, v7.16b  ");
345eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
346eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
347eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
348eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
349eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8b -- */
350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
351eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
352eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
353eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
354eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
355eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
356eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
357eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "uminv b8, v7.8b   ; "
358eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
359eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
360eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
361eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMINV b8, v7.8b  ");
362eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
363eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
364eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
365eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
366eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
367eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
368eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
369eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovvoid test_UMAXV ( void )
370eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
371eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  int i;
372eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  V128 block[2];
373eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
374eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4s -- */
375eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
376eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
377eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
378eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyS);
379eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyS);
380eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
381eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
382eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "umaxv s8, v7.4s   ; "
383eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
384eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
385eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
386eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMAXV v8, v7.4s  ");
387eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
388eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
389eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
390eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
391eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8h -- */
392eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
396eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
397eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
398eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
399eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "umaxv h8, v7.8h   ; "
400eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
401eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
402eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
403eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMAXV h8, v7.8h  ");
404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
407eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
408eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4h -- */
409eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
410eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
411eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
412eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
413eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
414eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
415eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
416eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "umaxv h8, v7.4h   ; "
417eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
418eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
419eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
420eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMAXV h8, v7.4h  ");
421eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
422eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
423eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
424eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 16b -- */
426eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
427eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
428eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
429eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
430eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
431eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
432eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
433eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "umaxv b8, v7.16b   ; "
434eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
435eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
436eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
437eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMAXV b8, v7.16b  ");
438eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
439eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
440eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
441eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
442eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8b -- */
443eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
444eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
445eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
446eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
447eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
448eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
449eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
450eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "umaxv b8, v7.8b   ; "
451eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
452eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
453eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
454eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("UMAXV b8, v7.8b  ");
455eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
456eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
457eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
458eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
459eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
460eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
461eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
462eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovvoid test_INS_general ( void )
463eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
464eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  V128 block[3];
465eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
466eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- D[0..1] -- */
467eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
468eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
469eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyD);
470eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
471eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
472eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
473eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.d[0], x19   ; "
474eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
475eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
476eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
477eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.u64[0],x19  ");
478eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
479eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
480eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
481eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
482eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyD);
483eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
484eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
485eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
486eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.d[1], x19   ; "
487eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
488eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
489eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
490eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.d[1],x19  ");
491eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
492eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
493eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
494eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- S[0..3] -- */
495eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
496eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
497eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyS);
498eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
499eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
500eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
501eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.s[0], w19   ; "
502eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
503eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
504eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
505eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.s[0],x19  ");
506eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
507eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
508eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
509eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
510eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyS);
511eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
512eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
513eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
514eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.s[1], w19   ; "
515eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
516eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
517eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
518eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.s[1],x19  ");
519eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
520eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
521eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
522eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
523eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyS);
524eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
525eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
526eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
527eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.s[2], w19   ; "
528eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
529eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
530eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
531eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.s[2],x19  ");
532eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
533eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
534eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
535eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
536eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyS);
537eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
538eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
539eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
540eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.s[3], w19   ; "
541eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
542eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
543eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
544eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.s[3],x19  ");
545eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
546eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
547eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
548eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- H[0..7] -- */
549eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
550eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
551eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
552eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
553eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
554eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
555eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[0], w19   ; "
556eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
557eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
558eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
559eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[0],x19  ");
560eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
561eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
562eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
563eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
564eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
565eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
566eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
567eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
568eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[1], w19   ; "
569eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
570eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
571eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
572eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[1],x19  ");
573eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
574eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
575eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
576eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
577eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
578eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
579eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
580eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
581eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[2], w19   ; "
582eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
583eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
584eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
585eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[2],x19  ");
586eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
587eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
588eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
589eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
590eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
591eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
592eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
593eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
594eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[3], w19   ; "
595eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
596eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
597eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
598eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[3],x19  ");
599eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
600eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
601eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
602eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
603eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
604eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
605eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
606eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
607eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[4], w19   ; "
608eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
609eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
610eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
611eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[4],x19  ");
612eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
613eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
614eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
615eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
616eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
617eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
618eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
619eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
620eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[5], w19   ; "
621eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
622eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
623eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
624eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[5],x19  ");
625eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
626eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
627eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
628eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
629eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
630eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
631eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
632eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
633eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[6], w19   ; "
634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
636eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
637eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[6],x19  ");
638eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
639eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
640eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
641eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
642eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyH);
643eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
644eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
645eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
646eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.h[7], w19   ; "
647eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
648eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
649eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
650eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.h[7],x19  ");
651eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
652eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
653eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
654eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- B[0,15] -- */
655eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
656eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
657eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyB);
658eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
659eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
660eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
661eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.b[0], w19   ; "
662eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
663eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
664eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
665eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.b[0],x19  ");
666eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
667eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
668eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
669eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  memset(&block, 0x55, sizeof(block));
670eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  block[1].u64[0] = randULong(TyB);
671eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  __asm__ __volatile__(
672eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr q7, [%0, #0]   ; "
673eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ldr x19, [%0, #16] ; "
674eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "ins v7.b[15], w19   ; "
675eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     "str q7, [%0, #32] "
676eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov     : : "r"(&block[0]) : "memory", "x19", "v7"
677eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  );
678eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  printf("INS v7.b[15],x19 ");
679eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[0]); printf("  %016llx  ", block[1].u64[0]);
680eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  showV128(&block[2]); printf("\n");
681eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
682eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
683eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
684eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
685eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovvoid test_SMINV ( void )
686eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
687eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  int i;
688eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  V128 block[2];
689eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
690eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4s -- */
691eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
692eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
693eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
694eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyS);
695eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyS);
696eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
697eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
698eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "sminv s8, v7.4s   ; "
699eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
700eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
701eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
702eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMINV v8, v7.4s  ");
703eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
704eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
705eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
706eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
707eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8h -- */
708eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
709eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
710eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
711eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
712eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
713eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
714eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
715eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "sminv h8, v7.8h   ; "
716eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
717eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
718eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
719eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMINV h8, v7.8h  ");
720eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
721eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
722eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
723eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
724eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4h -- */
725eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
726eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
727eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
728eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
729eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
730eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
731eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
732eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "sminv h8, v7.4h   ; "
733eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
734eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
735eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
736eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMINV h8, v7.4h  ");
737eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
738eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
739eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
740eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
741eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 16b -- */
742eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
743eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
744eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
745eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
746eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
747eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
748eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
749eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "sminv b8, v7.16b   ; "
750eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
751eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
752eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
753eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMINV b8, v7.16b  ");
754eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
755eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
756eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
757eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
758eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8b -- */
759eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
760eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
761eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
762eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
763eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
764eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
765eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
766eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "sminv b8, v7.8b   ; "
767eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
768eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
769eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
770eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMINV b8, v7.8b  ");
771eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
772eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
773eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
774eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
775eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
776eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
777eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
778eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovvoid test_SMAXV ( void )
779eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
780eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  int i;
781eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  V128 block[2];
782eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
783eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4s -- */
784eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
785eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
786eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
787eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyS);
788eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyS);
789eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
790eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
791eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "smaxv s8, v7.4s   ; "
792eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
793eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
794eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
795eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMAXV v8, v7.4s  ");
796eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
797eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
798eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
799eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
800eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8h -- */
801eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
802eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
803eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
804eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
805eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
806eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
807eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
808eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "smaxv h8, v7.8h   ; "
809eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
810eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
811eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
812eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMAXV h8, v7.8h  ");
813eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
814eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
815eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
816eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
817eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 4h -- */
818eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
819eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
820eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
821eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyH);
822eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyH);
823eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
824eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
825eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "smaxv h8, v7.4h   ; "
826eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
827eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
828eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
829eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMAXV h8, v7.4h  ");
830eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
831eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
832eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
833eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
834eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 16b -- */
835eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
836eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
837eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
838eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
839eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
840eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
841eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
842eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "smaxv b8, v7.16b   ; "
843eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
844eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
845eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
846eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMAXV b8, v7.16b  ");
847eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
848eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
849eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
850eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
851eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  /* -- 8b -- */
852eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
853eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  for (i = 0; i < 10; i++) {
854eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    memset(&block, 0x55, sizeof(block));
855eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[0], TyB);
856eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    randV128(&block[1], TyB);
857eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    __asm__ __volatile__(
858eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "ldr   q7, [%0, #0]   ; "
859eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "smaxv b8, v7.8b   ; "
860eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       "str   q8, [%0, #16] "
861eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov       : : "r"(&block[0]) : "memory", "v7", "v8"
862eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                         );
863eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    printf("SMAXV b8, v7.8b  ");
864eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[0]); printf("  ");
865eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov    showV128(&block[1]); printf("\n");
866eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov  }
867eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
868eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
869eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
870eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
871eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umax, 4s, 4s, 4s)
872eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umax, 2s, 2s, 2s)
873eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umax, 8h, 8h, 8h)
874eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umax, 4h, 4h, 4h)
875eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umax, 16b, 16b, 16b)
876eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umax, 8b, 8b, 8b)
877eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
878eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umin, 4s, 4s, 4s)
879eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umin, 2s, 2s, 2s)
880eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umin, 8h, 8h, 8h)
881eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umin, 4h, 4h, 4h)
882eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umin, 16b, 16b, 16b)
883eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umin, 8b, 8b, 8b)
884eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
885eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smax, 4s, 4s, 4s)
886eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smax, 2s, 2s, 2s)
887eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smax, 8h, 8h, 8h)
888eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smax, 4h, 4h, 4h)
889eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smax, 16b, 16b, 16b)
890eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smax, 8b, 8b, 8b)
891eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
892eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smin, 4s, 4s, 4s)
893eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smin, 2s, 2s, 2s)
894eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smin, 8h, 8h, 8h)
895eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smin, 4h, 4h, 4h)
896eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smin, 16b, 16b, 16b)
897eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smin, 8b, 8b, 8b)
898eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
899eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 2d, 2d, 2d)
900eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 4s, 4s, 4s)
901eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 2s, 2s, 2s)
902eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 8h, 8h, 8h)
903eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 4h, 4h, 4h)
904eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 16b, 16b, 16b)
905eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(add, 8b, 8b, 8b)
906eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
907eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 2d, 2d, 2d)
908eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 4s, 4s, 4s)
909eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 2s, 2s, 2s)
910eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 8h, 8h, 8h)
911eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 4h, 4h, 4h)
912eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 16b, 16b, 16b)
913eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sub, 8b, 8b, 8b)
914eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
915eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mul, 4s, 4s, 4s)
916eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mul, 2s, 2s, 2s)
917eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mul, 8h, 8h, 8h)
918eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mul, 4h, 4h, 4h)
919eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mul, 16b, 16b, 16b)
920eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mul, 8b, 8b, 8b)
921eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
922eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mla, 4s, 4s, 4s)
923eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mla, 2s, 2s, 2s)
924eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mla, 8h, 8h, 8h)
925eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mla, 4h, 4h, 4h)
926eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mla, 16b, 16b, 16b)
927eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mla, 8b, 8b, 8b)
928eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
929eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mls, 4s, 4s, 4s)
930eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mls, 2s, 2s, 2s)
931eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mls, 8h, 8h, 8h)
932eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mls, 4h, 4h, 4h)
933eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mls, 16b, 16b, 16b)
934eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(mls, 8b, 8b, 8b)
935eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
936eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(and, 16b, 16b, 16b)
937eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(and, 8b, 8b, 8b)
938eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
939eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bic, 16b, 16b, 16b)
940eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bic, 8b, 8b, 8b)
941eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
942eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(orr, 16b, 16b, 16b)
943eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(orr, 8b, 8b, 8b)
944eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
945eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(orn, 16b, 16b, 16b)
946eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(orn, 8b, 8b, 8b)
947eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
948eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(eor, 16b, 16b, 16b)
949eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(eor, 8b, 8b, 8b)
950eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
951eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bsl, 16b, 16b, 16b)
952eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bsl, 8b, 8b, 8b)
953eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
954eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bit, 16b, 16b, 16b)
955eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bit, 8b, 8b, 8b)
956eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
957eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bif, 16b, 16b, 16b)
958eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(bif, 8b, 8b, 8b)
959eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
960eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 2d, 2d, 2d)
961eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 4s, 4s, 4s)
962eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 2s, 2s, 2s)
963eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 8h, 8h, 8h)
964eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 4h, 4h, 4h)
965eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 16b, 16b, 16b)
966eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmeq, 8b, 8b, 8b)
967eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
968eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 2d, 2d, 2d)
969eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 4s, 4s, 4s)
970eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 2s, 2s, 2s)
971eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 8h, 8h, 8h)
972eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 4h, 4h, 4h)
973eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 16b, 16b, 16b)
974eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmtst, 8b, 8b, 8b)
975eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
976eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 2d, 2d, 2d)
977eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 4s, 4s, 4s)
978eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 2s, 2s, 2s)
979eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 8h, 8h, 8h)
980eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 4h, 4h, 4h)
981eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 16b, 16b, 16b)
982eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhi, 8b, 8b, 8b)
983eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
984eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 2d, 2d, 2d)
985eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 4s, 4s, 4s)
986eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 2s, 2s, 2s)
987eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 8h, 8h, 8h)
988eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 4h, 4h, 4h)
989eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 16b, 16b, 16b)
990eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmgt, 8b, 8b, 8b)
991eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
992eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 2d, 2d, 2d)
993eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 4s, 4s, 4s)
994eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 2s, 2s, 2s)
995eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 8h, 8h, 8h)
996eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 4h, 4h, 4h)
997eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 16b, 16b, 16b)
998eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmhs, 8b, 8b, 8b)
999eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1000eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 2d, 2d, 2d)
1001eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 4s, 4s, 4s)
1002eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 2s, 2s, 2s)
1003eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 8h, 8h, 8h)
1004eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 4h, 4h, 4h)
1005eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 16b, 16b, 16b)
1006eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(cmge, 8b, 8b, 8b)
1007eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1008eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 2d, 2d, 1)
1009eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 2d, 2d, 13)
1010eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 2d, 2d, 64)
1011eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 2d, 2d, 1)
1012eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 2d, 2d, 13)
1013eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 2d, 2d, 64)
1014eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  2d, 2d, 0)
1015eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  2d, 2d, 13)
1016eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  2d, 2d, 63)
1017eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1018eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 4s, 4s, 1)
1019eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 4s, 4s, 13)
1020eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 4s, 4s, 32)
1021eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 4s, 4s, 1)
1022eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 4s, 4s, 13)
1023eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 4s, 4s, 32)
1024eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  4s, 4s, 0)
1025eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  4s, 4s, 13)
1026eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  4s, 4s, 31)
1027eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1028eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 2s, 2s, 1)
1029eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 2s, 2s, 13)
1030eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 2s, 2s, 32)
1031eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 2s, 2s, 1)
1032eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 2s, 2s, 13)
1033eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 2s, 2s, 32)
1034eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  2s, 2s, 0)
1035eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  2s, 2s, 13)
1036eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  2s, 2s, 31)
1037eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1038eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 8h, 8h, 1)
1039eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 8h, 8h, 13)
1040eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 8h, 8h, 16)
1041eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 8h, 8h, 1)
1042eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 8h, 8h, 13)
1043eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 8h, 8h, 16)
1044eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  8h, 8h, 0)
1045eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  8h, 8h, 13)
1046eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  8h, 8h, 15)
1047eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1048eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 4h, 4h, 1)
1049eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 4h, 4h, 13)
1050eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 4h, 4h, 16)
1051eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 4h, 4h, 1)
1052eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 4h, 4h, 13)
1053eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 4h, 4h, 16)
1054eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  4h, 4h, 0)
1055eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  4h, 4h, 13)
1056eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  4h, 4h, 15)
1057eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1058eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 16b, 16b, 1)
1059eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 16b, 16b, 8)
1060eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 16b, 16b, 1)
1061eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 16b, 16b, 8)
1062eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  16b, 16b, 0)
1063eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  16b, 16b, 7)
1064eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1065eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 8b, 8b, 1)
1066eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushr, 8b, 8b, 8)
1067eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 8b, 8b, 1)
1068eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshr, 8b, 8b, 8)
1069eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  8b, 8b, 0)
1070eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(shl,  8b, 8b, 7)
1071eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1072eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  2d, 2s, 0)
1073eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  2d, 2s, 15)
1074eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  2d, 2s, 31)
1075eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 2d, 4s, 0)
1076eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 2d, 4s, 15)
1077eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 2d, 4s, 31)
1078eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  4s, 4h,  0)
1079eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  4s, 4h,  7)
1080eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  4s, 4h,  15)
1081eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 4s, 8h,  0)
1082eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 4s, 8h,  7)
1083eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 4s, 8h,  15)
1084eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  8h, 8b,  0)
1085eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  8h, 8b,  3)
1086eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll,  8h, 8b,  7)
1087eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 8h, 16b, 0)
1088eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 8h, 16b, 3)
1089eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(ushll2, 8h, 16b, 7)
1090eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1091eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  2d, 2s,  0)
1092eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  2d, 2s,  15)
1093eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  2d, 2s,  31)
1094eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 2d, 4s,  0)
1095eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 2d, 4s,  15)
1096eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 2d, 4s,  31)
1097eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  4s, 4h,  0)
1098eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  4s, 4h,  7)
1099eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  4s, 4h,  15)
1100eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 4s, 8h,  0)
1101eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 4s, 8h,  7)
1102eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 4s, 8h,  15)
1103eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  8h, 8b,  0)
1104eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  8h, 8b,  3)
1105eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll,  8h, 8b,  7)
1106eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 8h, 16b, 0)
1107eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 8h, 16b, 3)
1108eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_SHIFT_TEST(sshll2, 8h, 16b, 7)
1109eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1110eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1111eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(xtn,  2s, 2d)
1112eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(xtn2, 4s, 2d)
1113eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(xtn,  4h, 4s)
1114eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(xtn2, 8h, 4s)
1115eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(xtn,  8b, 8h)
1116eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(xtn2, 16b, 8h)
1117eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1118eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_x_d0,  "umov x9, v10.d[0]", 9, 10)
1119eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_x_d1,  "umov x9, v10.d[1]", 9, 10)
1120eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_w_s0,  "umov w9, v10.s[0]", 9, 10)
1121eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_w_s3,  "umov w9, v10.s[3]", 9, 10)
1122eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_w_h0,  "umov w9, v10.h[0]", 9, 10)
1123eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_w_h7,  "umov w9, v10.h[7]", 9, 10)
1124eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_w_b0,  "umov w9, v10.b[0]", 9, 10)
1125eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(umov_w_b15, "umov w9, v10.b[15]", 9, 10)
1126eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1127eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_x_s0,  "smov x9, v10.s[0]", 9, 10)
1128eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_x_s3,  "smov x9, v10.s[3]", 9, 10)
1129eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_x_h0,  "smov x9, v10.h[0]", 9, 10)
1130eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_x_h7,  "smov x9, v10.h[7]", 9, 10)
1131eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_w_h0,  "smov w9, v10.h[0]", 9, 10)
1132eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_w_h7,  "smov w9, v10.h[7]", 9, 10)
1133eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_x_b0,  "smov x9, v10.b[0]", 9, 10)
1134eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_x_b15, "smov x9, v10.b[15]", 9, 10)
1135eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_w_b0,  "smov w9, v10.b[0]", 9, 10)
1136eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(smov_w_b15, "smov w9, v10.b[15]", 9, 10)
1137eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1138eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fcvtn_2s_2d, "fcvtn  v22.2s, v23.2d", 22, 23)
1139eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fcvtn_4s_2d, "fcvtn2 v22.4s, v23.2d", 22, 23)
1140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 2d, 2d)
1142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 4s, 4s)
1143eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 2s, 2s)
1144eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 8h, 8h)
1145eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 4h, 4h)
1146eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 16b, 16b)
1147eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(neg, 8b,  8b)
1148eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1149eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fadd, 2d, 2d, 2d)
1150eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fadd, 4s, 4s, 4s)
1151eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fadd, 2s, 2s, 2s)
1152eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fsub, 2d, 2d, 2d)
1153eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fsub, 4s, 4s, 4s)
1154eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fsub, 2s, 2s, 2s)
1155eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmul, 2d, 2d, 2d)
1156eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmul, 4s, 4s, 4s)
1157eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmul, 2s, 2s, 2s)
1158eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fdiv, 2d, 2d, 2d)
1159eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fdiv, 4s, 4s, 4s)
1160eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fdiv, 2s, 2s, 2s)
1161eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmla, 2d, 2d, 2d)
1162eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmla, 4s, 4s, 4s)
1163eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmla, 2s, 2s, 2s)
1164eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmls, 2d, 2d, 2d)
1165eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmls, 4s, 4s, 4s)
1166eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fmls, 2s, 2s, 2s)
1167eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fabd, 2d, 2d, 2d)
1168eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fabd, 4s, 4s, 4s)
1169eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fabd, 2s, 2s, 2s)
1170eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1171eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(add_d_d_d, "add d21, d22, d23", 21, 22, 23)
1172eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sub_d_d_d, "sub d21, d22, d23", 21, 22, 23)
1173eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1174eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* overkill -- don't need two vecs, only one */
1175eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_d_imm_01, "fmov d22, #0.125", 22, 23)
1176eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_d_imm_02, "fmov d22, #-4.0",  22, 23)
1177eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_d_imm_03, "fmov d22, #1.0",   22, 23)
1178eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_s_imm_01, "fmov s22, #0.125", 22, 23)
1179eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_s_imm_02, "fmov s22, #-4.0",  22, 23)
1180eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_s_imm_03, "fmov s22, #-1.0",   22, 23)
1181eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1182eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(fmov_s_w,  "fmov s7,      w15", 15, 7)
1183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(fmov_d_x,  "fmov d7,      x15", 15, 7)
1184eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(fmov_d1_x, "fmov v7.d[1], x15", 15, 7)
1185eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(fmov_w_s,  "fmov w15,      s7", 15, 7)
1186eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(fmov_x_d,  "fmov x15,      d7", 15, 7)
1187eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(fmov_x_d1, "fmov x15, v7.d[1]", 15, 7)
1188eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1189eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_2d_imm_01, "fmov v22.2d, #0.125", 22, 23)
1190eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_2d_imm_02, "fmov v22.2d, #-4.0",  22, 23)
1191eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_2d_imm_03, "fmov v22.2d, #1.0",   22, 23)
1192eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_4s_imm_01, "fmov v22.4s, #0.125", 22, 23)
1193eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_4s_imm_02, "fmov v22.4s, #-4.0",  22, 23)
1194eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_4s_imm_03, "fmov v22.4s, #1.0",   22, 23)
1195eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_2s_imm_01, "fmov v22.2s, #0.125", 22, 23)
1196eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_2s_imm_02, "fmov v22.2s, #-4.0",  22, 23)
1197eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_2s_imm_03, "fmov v22.2s, #1.0",   22, 23)
1198eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
119942af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy IvanovGEN_TWOVEC_TEST(scvtf_s_s, "scvtf s7, s8", 7, 8)
120042af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy IvanovGEN_TWOVEC_TEST(scvtf_d_d, "scvtf d7, d8", 7, 8)
120142af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy IvanovGEN_TWOVEC_TEST(ucvtf_s_s, "ucvtf s7, s8", 7, 8)
120242af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy IvanovGEN_TWOVEC_TEST(ucvtf_d_d, "ucvtf d7, d8", 7, 8)
120342af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy Ivanov
1204eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(scvtf_s_w, "scvtf s7, w15", 15, 7)
1205eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(scvtf_d_w, "scvtf d7, w15", 15, 7)
1206eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(scvtf_s_x, "scvtf s7, x15", 15, 7)
1207eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(scvtf_d_x, "scvtf d7, x15", 15, 7)
1208eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(ucvtf_s_w, "ucvtf s7, w15", 15, 7)
1209eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(ucvtf_d_w, "ucvtf d7, w15", 15, 7)
1210eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(ucvtf_s_x, "ucvtf s7, x15", 15, 7)
1211eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_ONEINT_ONEVEC_TEST(ucvtf_d_x, "ucvtf d7, x15", 15, 7)
1212eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1213eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fadd_d_d_d,  "fadd d2, d11, d29", 2, 11, 29)
1214eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fadd_s_s_s,  "fadd s2, s11, s29", 2, 11, 29)
1215eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fsub_d_d_d,  "fsub d2, d11, d29", 2, 11, 29)
1216eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fsub_s_s_s,  "fsub s2, s11, s29", 2, 11, 29)
1217eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fmul_d_d_d,  "fmul d2, d11, d29", 2, 11, 29)
1218eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fmul_s_s_s,  "fmul s2, s11, s29", 2, 11, 29)
1219eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fdiv_d_d_d,  "fdiv d2, d11, d29", 2, 11, 29)
1220eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fdiv_s_s_s,  "fdiv s2, s11, s29", 2, 11, 29)
1221eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fnmul_d_d_d, "fnmul d2, d11, d29", 2, 11, 29)
1222eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fnmul_s_s_s, "fnmul s2, s11, s29", 2, 11, 29)
1223eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1224eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fabd_d_d_d,  "fabd d2, d11, d29", 2, 11, 29)
1225eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(fabd_s_s_s,  "fabd s2, s11, s29", 2, 11, 29)
1226eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1227eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_d_d,  "fmov d22, d23",   22, 23)
1228eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fmov_s_s,  "fmov s22, s23",   22, 23)
1229eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fabs_d_d,  "fabs d22, d23",   22, 23)
1230eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fabs_s_s,  "fabs s22, s23",   22, 23)
1231eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fneg_d_d,  "fneg d22, d23",   22, 23)
1232eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fneg_s_s,  "fneg s22, s23",   22, 23)
1233eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fsqrt_d_d, "fsqrt d22, d23",   22, 23)
1234eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(fsqrt_s_s, "fsqrt s22, s23",   22, 23)
1235eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(fneg, 2d, 2d)
1237eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(fneg, 4s, 4s)
1238eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(fneg, 2s, 2s)
1239eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(fabs, 2d, 2d)
1240eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(fabs, 4s, 4s)
1241eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(fabs, 2s, 2s)
1242eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1243eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmeq, 2d, 2d, 2d)
1244eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmeq, 4s, 4s, 4s)
1245eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmeq, 2s, 2s, 2s)
1246eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmge, 2d, 2d, 2d)
1247eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmge, 4s, 4s, 4s)
1248eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmge, 2s, 2s, 2s)
1249eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmgt, 2d, 2d, 2d)
1250eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmgt, 4s, 4s, 4s)
1251eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(fcmgt, 2s, 2s, 2s)
1252eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(facge, 2d, 2d, 2d)
1253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(facge, 4s, 4s, 4s)
1254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(facge, 2s, 2s, 2s)
1255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(facgt, 2d, 2d, 2d)
1256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(facgt, 4s, 4s, 4s)
1257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(facgt, 2s, 2s, 2s)
1258eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1259eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// Uses v15 as the first table entry
1260eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1261eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_16b_1reg, "tbl v21.16b, {v15.16b}, v23.16b", 21, 15, 23)
1262eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// and v15 ^ v21 as the second table entry
1263eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1264eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_16b_2reg, "eor v16.16b, v15.16b, v21.16b ; "
1265eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "tbl v21.16b, {v15.16b, v16.16b}, v23.16b", 21, 15, 23)
1266eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// and v15 ^ v23 as the third table entry
1267eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1268eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_16b_3reg, "eor v16.16b, v15.16b, v21.16b ; "
1269eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "eor v17.16b, v15.16b, v23.16b ; "
1270eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "tbl v21.16b, {v15.16b, v16.16b, v17.16b}, v23.16b",
1271eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 21, 15, 23)
1272eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// and v21 ^ v23 as the fourth table entry
1273eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1274eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_16b_4reg, "eor v16.16b, v15.16b, v21.16b ; "
1275eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "eor v17.16b, v15.16b, v23.16b ; "
1276eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "eor v18.16b, v21.16b, v23.16b ; "
1277eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "tbl v21.16b, {v15.16b, v16.16b, v17.16b, v18.16b}, v23.16b",
1278eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 21, 15, 23)
1279eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1280eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// Same register scheme for tbl .8b, tbx .16b, tbx.8b
1281eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1282eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_8b_1reg, "tbl v21.8b, {v15.16b}, v23.8b", 21, 15, 23)
1283eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1284eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_8b_2reg, "eor v16.16b, v15.16b, v21.16b ; "
1285eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "tbl v21.8b, {v15.16b, v16.16b}, v23.8b", 21, 15, 23)
1286eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1287eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_8b_3reg, "eor v16.16b, v15.16b, v21.16b ; "
1288eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "eor v17.16b, v15.16b, v23.16b ; "
1289eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "tbl v21.8b, {v15.16b, v16.16b, v17.16b}, v23.8b",
1290eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                21, 15, 23)
1291eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1292eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl_8b_4reg, "eor v16.16b, v15.16b, v21.16b ; "
1293eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "eor v17.16b, v15.16b, v23.16b ; "
1294eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "eor v18.16b, v21.16b, v23.16b ; "
1295eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "tbl v21.8b, {v15.16b, v16.16b, v17.16b, v18.16b}, v23.8b",
1296eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                21, 15, 23)
1297eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1298eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1299eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_16b_1reg, "tbx v21.16b, {v15.16b}, v23.16b", 21, 15, 23)
1300eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1301eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_16b_2reg, "eor v16.16b, v15.16b, v21.16b ; "
1302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "tbx v21.16b, {v15.16b, v16.16b}, v23.16b", 21, 15, 23)
1303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1304eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_16b_3reg, "eor v16.16b, v15.16b, v21.16b ; "
1305eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "eor v17.16b, v15.16b, v23.16b ; "
1306eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "tbx v21.16b, {v15.16b, v16.16b, v17.16b}, v23.16b",
1307eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 21, 15, 23)
1308eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1309eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_16b_4reg, "eor v16.16b, v15.16b, v21.16b ; "
1310eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "eor v17.16b, v15.16b, v23.16b ; "
1311eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "eor v18.16b, v21.16b, v23.16b ; "
1312eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 "tbx v21.16b, {v15.16b, v16.16b, v17.16b, v18.16b}, v23.16b",
1313eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                 21, 15, 23)
1314eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1315eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// Same register scheme for tbx .8b, tbx .16b, tbx.8b
1316eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1317eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_8b_1reg, "tbx v21.8b, {v15.16b}, v23.8b", 21, 15, 23)
1318eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1319eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_8b_2reg, "eor v16.16b, v15.16b, v21.16b ; "
1320eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "tbx v21.8b, {v15.16b, v16.16b}, v23.8b", 21, 15, 23)
1321eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1322eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_8b_3reg, "eor v16.16b, v15.16b, v21.16b ; "
1323eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "eor v17.16b, v15.16b, v23.16b ; "
1324eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "tbx v21.8b, {v15.16b, v16.16b, v17.16b}, v23.8b",
1325eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                21, 15, 23)
1326eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(
1327eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx_8b_4reg, "eor v16.16b, v15.16b, v21.16b ; "
1328eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "eor v17.16b, v15.16b, v23.16b ; "
1329eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "eor v18.16b, v21.16b, v23.16b ; "
1330eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                "tbx v21.8b, {v15.16b, v16.16b, v17.16b, v18.16b}, v23.8b",
1331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                21, 15, 23)
1332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1333eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_2d_2d,   "cmge v5.2d,  v22.2d,  #0", 5, 22)
1334eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_4s_4s,   "cmge v5.4s,  v22.4s,  #0", 5, 22)
1335eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_2s_2s,   "cmge v5.2s,  v22.2s,  #0", 5, 22)
1336eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_8h_8h,   "cmge v5.8h,  v22.8h,  #0", 5, 22)
1337eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_4h_4h,   "cmge v5.4h,  v22.4h,  #0", 5, 22)
1338eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_16b_16b, "cmge v5.16b, v22.16b, #0", 5, 22)
1339eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_8b_8b,   "cmge v5.8b,  v22.8b,  #0", 5, 22)
1340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_2d_2d,   "cmgt v5.2d,  v22.2d,  #0", 5, 22)
1342eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_4s_4s,   "cmgt v5.4s,  v22.4s,  #0", 5, 22)
1343eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_2s_2s,   "cmgt v5.2s,  v22.2s,  #0", 5, 22)
1344eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_8h_8h,   "cmgt v5.8h,  v22.8h,  #0", 5, 22)
1345eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_4h_4h,   "cmgt v5.4h,  v22.4h,  #0", 5, 22)
1346eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_16b_16b, "cmgt v5.16b, v22.16b, #0", 5, 22)
1347eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_8b_8b,   "cmgt v5.8b,  v22.8b,  #0", 5, 22)
1348eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1349eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_2d_2d,   "cmle v5.2d,  v22.2d,  #0", 5, 22)
1350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_4s_4s,   "cmle v5.4s,  v22.4s,  #0", 5, 22)
1351eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_2s_2s,   "cmle v5.2s,  v22.2s,  #0", 5, 22)
1352eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_8h_8h,   "cmle v5.8h,  v22.8h,  #0", 5, 22)
1353eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_4h_4h,   "cmle v5.4h,  v22.4h,  #0", 5, 22)
1354eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_16b_16b, "cmle v5.16b, v22.16b, #0", 5, 22)
1355eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_8b_8b,   "cmle v5.8b,  v22.8b,  #0", 5, 22)
1356eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1357eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_2d_2d,   "cmeq v5.2d,  v22.2d,  #0", 5, 22)
1358eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_4s_4s,   "cmeq v5.4s,  v22.4s,  #0", 5, 22)
1359eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_2s_2s,   "cmeq v5.2s,  v22.2s,  #0", 5, 22)
1360eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_8h_8h,   "cmeq v5.8h,  v22.8h,  #0", 5, 22)
1361eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_4h_4h,   "cmeq v5.4h,  v22.4h,  #0", 5, 22)
1362eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_16b_16b, "cmeq v5.16b, v22.16b, #0", 5, 22)
1363eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_8b_8b,   "cmeq v5.8b,  v22.8b,  #0", 5, 22)
1364eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1365eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_2d_2d,   "cmlt v5.2d,  v22.2d,  #0", 5, 22)
1366eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_4s_4s,   "cmlt v5.4s,  v22.4s,  #0", 5, 22)
1367eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_2s_2s,   "cmlt v5.2s,  v22.2s,  #0", 5, 22)
1368eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_8h_8h,   "cmlt v5.8h,  v22.8h,  #0", 5, 22)
1369eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_4h_4h,   "cmlt v5.4h,  v22.4h,  #0", 5, 22)
1370eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_16b_16b, "cmlt v5.16b, v22.16b, #0", 5, 22)
1371eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_8b_8b,   "cmlt v5.8b,  v22.8b,  #0", 5, 22)
1372eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1373eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(abs_d_d,  "abs d22, d23",   22, 23)
1374eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(neg_d_d,  "neg d22, d23",   22, 23)
1375eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1376eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 2d, 2d)
1377eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 4s, 4s)
1378eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 2s, 2s)
1379eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 8h, 8h)
1380eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 4h, 4h)
1381eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 16b, 16b)
1382eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(abs, 8b, 8b)
1383eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1384eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addhn,   2s, 2d, 2d)
1385eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addhn2,  4s, 2d, 2d)
1386eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addhn,   4h, 4s, 4s)
1387eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addhn2,  8h, 4s, 4s)
1388eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addhn,   8b, 8h, 8h)
1389eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addhn2,  16b, 8h, 8h)
1390eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(subhn,   2s, 2d, 2d)
1391eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(subhn2,  4s, 2d, 2d)
1392eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(subhn,   4h, 4s, 4s)
1393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(subhn2,  8h, 4s, 4s)
1394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(subhn,   8b, 8h, 8h)
1395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(subhn2,  16b, 8h, 8h)
1396eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(raddhn,  2s, 2d, 2d)
1397eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(raddhn2, 4s, 2d, 2d)
1398eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(raddhn,  4h, 4s, 4s)
1399eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(raddhn2, 8h, 4s, 4s)
1400eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(raddhn,  8b, 8h, 8h)
1401eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(raddhn2, 16b, 8h, 8h)
1402eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(rsubhn,  2s, 2d, 2d)
1403eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(rsubhn2, 4s, 2d, 2d)
1404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(rsubhn,  4h, 4s, 4s)
1405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(rsubhn2, 8h, 4s, 4s)
1406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(rsubhn,  8b, 8h, 8h)
1407eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(rsubhn2, 16b, 8h, 8h)
1408eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1409eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(addp_d_2d,  "addp d22, v23.2d",   22, 23)
1410eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1411eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 2d, 2d, 2d)
1412eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 4s, 4s, 4s)
1413eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 2s, 2s, 2s)
1414eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 8h, 8h, 8h)
1415eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 4h, 4h, 4h)
1416eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 16b, 16b, 16b)
1417eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(addp, 8b, 8b, 8b)
1418eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1419eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(addv_s_4s,  "addv s22, v23.4s",  22, 23)
1420eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(addv_h_8h,  "addv h22, v23.8h",  22, 23)
1421eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(addv_h_4h,  "addv h22, v23.4h",  22, 23)
1422eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(addv_b_16b, "addv b22, v23.16b", 22, 23)
1423eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(addv_b_8b,  "addv b22, v23.8b",  22, 23)
1424eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* overkill -- don't need two vecs, only one */
1426eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_8h_0x5A_lsl0, "orr v22.8h, #0x5A, LSL #0", 22, 23)
1427eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_8h_0xA5_lsl8, "orr v22.8h, #0xA5, LSL #8", 22, 23)
1428eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_4h_0x5A_lsl0, "orr v22.4h, #0x5A, LSL #0", 22, 23)
1429eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_4h_0xA5_lsl8, "orr v22.4h, #0xA5, LSL #8", 22, 23)
1430eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_4s_0x5A_lsl0,  "orr v22.4s, #0x5A, LSL #0",  22, 23)
1431eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_4s_0x6B_lsl8,  "orr v22.4s, #0x6B, LSL #8",  22, 23)
1432eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_4s_0x49_lsl16, "orr v22.4s, #0x49, LSL #16", 22, 23)
1433eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_4s_0x3D_lsl24, "orr v22.4s, #0x3D, LSL #24", 22, 23)
1434eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_2s_0x5A_lsl0,  "orr v22.2s, #0x5A, LSL #0",  22, 23)
1435eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_2s_0x6B_lsl8,  "orr v22.2s, #0x6B, LSL #8",  22, 23)
1436eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_2s_0x49_lsl16, "orr v22.2s, #0x49, LSL #16", 22, 23)
1437eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(orr_2s_0x3D_lsl24, "orr v22.2s, #0x3D, LSL #24", 22, 23)
1438eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_8h_0x5A_lsl0, "bic v22.8h, #0x5A, LSL #0", 22, 23)
1439eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_8h_0xA5_lsl8, "bic v22.8h, #0xA5, LSL #8", 22, 23)
1440eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_4h_0x5A_lsl0, "bic v22.4h, #0x5A, LSL #0", 22, 23)
1441eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_4h_0xA5_lsl8, "bic v22.4h, #0xA5, LSL #8", 22, 23)
1442eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_4s_0x5A_lsl0,  "bic v22.4s, #0x5A, LSL #0",  22, 23)
1443eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_4s_0x6B_lsl8,  "bic v22.4s, #0x6B, LSL #8",  22, 23)
1444eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_4s_0x49_lsl16, "bic v22.4s, #0x49, LSL #16", 22, 23)
1445eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_4s_0x3D_lsl24, "bic v22.4s, #0x3D, LSL #24", 22, 23)
1446eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_2s_0x5A_lsl0,  "bic v22.2s, #0x5A, LSL #0",  22, 23)
1447eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_2s_0x6B_lsl8,  "bic v22.2s, #0x6B, LSL #8",  22, 23)
1448eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_2s_0x49_lsl16, "bic v22.2s, #0x49, LSL #16", 22, 23)
1449eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(bic_2s_0x3D_lsl24, "bic v22.2s, #0x3D, LSL #24", 22, 23)
1450eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1451eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cls, 4s, 4s)
1452eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cls, 2s, 2s)
1453eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cls, 8h, 8h)
1454eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cls, 4h, 4h)
1455eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cls, 16b, 16b)
1456eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cls, 8b, 8b)
1457eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1458eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(clz, 4s, 4s)
1459eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(clz, 2s, 2s)
1460eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(clz, 8h, 8h)
1461eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(clz, 4h, 4h)
1462eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(clz, 16b, 16b)
1463eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(clz, 8b, 8b)
1464eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1465eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(cmeq_d_d_d,  "cmeq  d2, d11, d29", 2, 11, 29)
1466eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(cmge_d_d_d,  "cmge  d2, d11, d29", 2, 11, 29)
1467eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(cmgt_d_d_d,  "cmgt  d2, d11, d29", 2, 11, 29)
1468eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(cmhi_d_d_d,  "cmhi  d2, d11, d29", 2, 11, 29)
1469eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(cmhs_d_d_d,  "cmhs  d2, d11, d29", 2, 11, 29)
1470eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(cmtst_d_d_d, "cmtst d2, d11, d29", 2, 11, 29)
1471eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1472eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmeq_zero_d_d,  "cmeq  d2, d11, #0", 2, 11)
1473eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmge_zero_d_d,  "cmge  d2, d11, #0", 2, 11)
1474eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmgt_zero_d_d,  "cmgt  d2, d11, #0", 2, 11)
1475eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmle_zero_d_d,  "cmle  d2, d11, #0", 2, 11)
1476eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(cmlt_zero_d_d,  "cmlt  d2, d11, #0", 2, 11)
1477eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1478eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cnt, 16b, 16b)
1479eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(cnt, 8b, 8b)
1480eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1481eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_d_d0,  "dup d22, v23.d[0]", 22, 23)
1482eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_d_d1,  "dup d22, v23.d[1]", 22, 23)
1483eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_s_s0,  "dup s22, v23.s[0]", 22, 23)
1484eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_s_s3,  "dup s22, v23.s[3]", 22, 23)
1485eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_h_h0,  "dup h22, v23.h[0]", 22, 23)
1486eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_h_h6,  "dup h22, v23.h[6]", 22, 23)
1487eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_b_b0,  "dup b0,  v23.b[0]",  22, 23)
1488eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_b_b13, "dup b13, v23.b[13]", 22, 23)
1489eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1490eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_2d_d0,  "dup v9.2d, v17.d[0]", 9, 17)
1491eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_2d_d1,  "dup v9.2d, v17.d[1]", 9, 17)
1492eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_4s_s0,  "dup v9.4s, v17.s[0]", 9, 17)
1493eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_4s_s3,  "dup v9.4s, v17.s[3]", 9, 17)
1494eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_2s_s0,  "dup v9.2s, v17.s[0]", 9, 17)
1495eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_2s_s2,  "dup v9.2s, v17.s[2]", 9, 17)
1496eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_8h_h0,  "dup v9.8h, v17.h[0]", 9, 17)
1497eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_8h_h6,  "dup v9.8h, v17.h[6]", 9, 17)
1498eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_4h_h1,  "dup v9.4h, v17.h[1]", 9, 17)
1499eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_4h_h5,  "dup v9.4h, v17.h[5]", 9, 17)
1500eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_16b_b2,  "dup v9.16b, v17.b[2]", 9, 17)
1501eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_16b_b12, "dup v9.16b, v17.b[12]", 9, 17)
1502eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_8b_b3,  "dup v9.8b, v17.b[3]", 9, 17)
1503eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_8b_b13, "dup v9.8b, v17.b[13]", 9, 17)
1504eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1505eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_2d_x,  "mov x10, v17.d[0];  dup v9.2d,  x10", 9, 17)
1506eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_4s_w,  "mov x10, v17.d[0];  dup v9.4s,  w10", 9, 17)
1507eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_2s_w,  "mov x10, v17.d[0];  dup v9.2s,  w10", 9, 17)
1508eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_8h_w,  "mov x10, v17.d[0];  dup v9.8h,  w10",  9, 17)
1509eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_4h_w,  "mov x10, v17.d[0];  dup v9.4h,  w10",  9, 17)
1510eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_16b_w, "mov x10, v17.d[0];  dup v9.16b, w10", 9, 17)
1511eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(dup_8b_w,  "mov x10, v17.d[0];  dup v9.8b,  w10",  9, 17)
1512eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1513eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_16b_16b_16b_0x0,
1514eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.16b, v11.16b, v29.16b, #0", 2, 11, 29)
1515eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_16b_16b_16b_0x7,
1516eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.16b, v11.16b, v29.16b, #7", 2, 11, 29)
1517eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_16b_16b_16b_0x8,
1518eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.16b, v11.16b, v29.16b, #8", 2, 11, 29)
1519eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_16b_16b_16b_0x9,
1520eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.16b, v11.16b, v29.16b, #9", 2, 11, 29)
1521eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_16b_16b_16b_0xF,
1522eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.16b, v11.16b, v29.16b, #15", 2, 11, 29)
1523eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1524eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_8b_8b_8b_0x0,
1525eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.8b, v11.8b, v29.8b, #0", 2, 11, 29)
1526eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_8b_8b_8b_0x1,
1527eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.8b, v11.8b, v29.8b, #1", 2, 11, 29)
1528eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_8b_8b_8b_0x6,
1529eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.8b, v11.8b, v29.8b, #6", 2, 11, 29)
1530eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ext_8b_8b_8b_0x7,
1531eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                  "ext  v2.8b, v11.8b, v29.8b, #7", 2, 11, 29)
1532eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1533eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1534eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_d0_d0, "ins v3.d[0], v24.d[0]", 3, 24)
1535eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_d0_d1, "ins v3.d[0], v24.d[1]", 3, 24)
1536eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_d1_d0, "ins v3.d[1], v24.d[0]", 3, 24)
1537eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_d1_d1, "ins v3.d[1], v24.d[1]", 3, 24)
1538eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1539eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_s0_s2, "ins v3.s[0], v24.s[2]", 3, 24)
1540eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_s3_s0, "ins v3.s[3], v24.s[0]", 3, 24)
1541eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_s2_s1, "ins v3.s[2], v24.s[1]", 3, 24)
1542eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_s1_s3, "ins v3.s[1], v24.s[3]", 3, 24)
1543eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1544eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_h0_h6, "ins v3.h[0], v24.h[6]", 3, 24)
1545eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_h7_h0, "ins v3.h[7], v24.h[0]", 3, 24)
1546eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_h6_h1, "ins v3.h[6], v24.h[1]", 3, 24)
1547eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_h1_h7, "ins v3.h[1], v24.h[7]", 3, 24)
1548eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1549eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_b0_b14, "ins v3.b[0],  v24.b[14]", 3, 24)
1550eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_b15_b8, "ins v3.b[15], v24.b[8]",  3, 24)
1551eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_b13_b9, "ins v3.b[13], v24.b[9]",  3, 24)
1552eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ins_b5_b12, "ins v3.b[5],  v24.b[12]", 3, 24)
1553eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1554eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_4s_4s_s0, "mla v2.4s, v11.4s, v29.s[0]", 2, 11, 29)
1555eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_4s_4s_s3, "mla v2.4s, v11.4s, v29.s[3]", 2, 11, 29)
1556eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_2s_2s_s0, "mla v2.2s, v11.2s, v29.s[0]", 2, 11, 29)
1557eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_2s_2s_s3, "mla v2.2s, v11.2s, v29.s[3]", 2, 11, 29)
1558eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// For the 'h' version of these, Rm can only be <= 15 (!)
1559eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_8h_8h_h1, "mla v2.8h, v11.8h, v2.h[1]", 2, 11, 9)
1560eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_8h_8h_h5, "mla v2.8h, v11.8h, v2.h[5]", 2, 11, 9)
1561eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_4h_4h_h2, "mla v2.4h, v11.4h, v2.h[2]", 2, 11, 9)
1562eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mla_4h_4h_h7, "mla v2.4h, v11.4h, v2.h[7]", 2, 11, 9)
1563eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1564eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_4s_4s_s0, "mls v2.4s, v11.4s, v29.s[0]", 2, 11, 29)
1565eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_4s_4s_s3, "mls v2.4s, v11.4s, v29.s[3]", 2, 11, 29)
1566eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_2s_2s_s0, "mls v2.2s, v11.2s, v29.s[0]", 2, 11, 29)
1567eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_2s_2s_s3, "mls v2.2s, v11.2s, v29.s[3]", 2, 11, 29)
1568eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// For the 'h' version of these, Rm can only be <= 15 (!)
1569eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_8h_8h_h1, "mls v2.8h, v11.8h, v2.h[1]", 2, 11, 9)
1570eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_8h_8h_h5, "mls v2.8h, v11.8h, v2.h[5]", 2, 11, 9)
1571eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_4h_4h_h2, "mls v2.4h, v11.4h, v2.h[2]", 2, 11, 9)
1572eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mls_4h_4h_h7, "mls v2.4h, v11.4h, v2.h[7]", 2, 11, 9)
1573eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1574eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_4s_4s_s0, "mul v2.4s, v11.4s, v29.s[0]", 2, 11, 29)
1575eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_4s_4s_s3, "mul v2.4s, v11.4s, v29.s[3]", 2, 11, 29)
1576eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_2s_2s_s0, "mul v2.2s, v11.2s, v29.s[0]", 2, 11, 29)
1577eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_2s_2s_s3, "mul v2.2s, v11.2s, v29.s[3]", 2, 11, 29)
1578eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov// For the 'h' version of these, Rm can only be <= 15 (!)
1579eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_8h_8h_h1, "mul v2.8h, v11.8h, v2.h[1]", 2, 11, 9)
1580eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_8h_8h_h5, "mul v2.8h, v11.8h, v2.h[5]", 2, 11, 9)
1581eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_4h_4h_h2, "mul v2.4h, v11.4h, v2.h[2]", 2, 11, 9)
1582eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(mul_4h_4h_h7, "mul v2.4h, v11.4h, v2.h[7]", 2, 11, 9)
1583eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1584eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* overkill -- don't need two vecs, only one */
1585eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_16b_0x9C_lsl0, "movi v22.16b, #0x9C, LSL #0", 22, 23)
1586eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_8b_0x8B_lsl0,  "movi v22.8b,  #0x8B, LSL #0", 22, 23)
1587eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_8h_0x5A_lsl0,  "movi v22.8h,  #0x5A, LSL #0", 22, 23)
1588eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_8h_0xA5_lsl8,  "movi v22.8h,  #0xA5, LSL #8", 22, 23)
1589eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4h_0x5A_lsl0,  "movi v22.4h,  #0x5A, LSL #0", 22, 23)
1590eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4h_0xA5_lsl8,  "movi v22.4h,  #0xA5, LSL #8", 22, 23)
1591eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4s_0x5A_lsl0,  "movi v22.4s,  #0x5A, LSL #0",  22, 23)
1592eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4s_0x6B_lsl8,  "movi v22.4s,  #0x6B, LSL #8",  22, 23)
1593eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4s_0x49_lsl16, "movi v22.4s,  #0x49, LSL #16", 22, 23)
1594eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4s_0x3D_lsl24, "movi v22.4s,  #0x3D, LSL #24", 22, 23)
1595eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2s_0x5A_lsl0,  "movi v22.2s,  #0x5A, LSL #0",  22, 23)
1596eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2s_0x6B_lsl8,  "movi v22.2s,  #0x6B, LSL #8",  22, 23)
1597eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2s_0x49_lsl16, "movi v22.2s,  #0x49, LSL #16", 22, 23)
1598eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2s_0x3D_lsl24, "movi v22.2s,  #0x3D, LSL #24", 22, 23)
1599eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4s_0x6B_msl8,  "movi v22.4s,  #0x6B, MSL #8", 22, 23)
1600eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_4s_0x94_msl16, "movi v22.4s,  #0x94, MSL #16", 22, 23)
1601eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2s_0x7A_msl8,  "movi v22.2s,  #0x7A, MSL #8", 22, 23)
1602eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2s_0xA5_msl16, "movi v22.2s,  #0xA5, MSL #16", 22, 23)
1603eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1604eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_d_0xA5,  "movi d22,    #0xFF00FF0000FF00FF", 22, 23)
1605eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(movi_2d_0xB4, "movi v22.2d, #0xFF00FFFF00FF0000", 22, 23)
1606eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1607eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* overkill -- don't need two vecs, only one */
1608eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_8h_0x5A_lsl0,  "mvni v22.8h,  #0x5A, LSL #0", 22, 23)
1609eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_8h_0xA5_lsl8,  "mvni v22.8h,  #0xA5, LSL #8", 22, 23)
1610eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4h_0x5A_lsl0,  "mvni v22.4h,  #0x5A, LSL #0", 22, 23)
1611eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4h_0xA5_lsl8,  "mvni v22.4h,  #0xA5, LSL #8", 22, 23)
1612eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4s_0x5A_lsl0,  "mvni v22.4s,  #0x5A, LSL #0",  22, 23)
1613eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4s_0x6B_lsl8,  "mvni v22.4s,  #0x6B, LSL #8",  22, 23)
1614eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4s_0x49_lsl16, "mvni v22.4s,  #0x49, LSL #16", 22, 23)
1615eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4s_0x3D_lsl24, "mvni v22.4s,  #0x3D, LSL #24", 22, 23)
1616eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_2s_0x5A_lsl0,  "mvni v22.2s,  #0x5A, LSL #0",  22, 23)
1617eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_2s_0x6B_lsl8,  "mvni v22.2s,  #0x6B, LSL #8",  22, 23)
1618eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_2s_0x49_lsl16, "mvni v22.2s,  #0x49, LSL #16", 22, 23)
1619eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_2s_0x3D_lsl24, "mvni v22.2s,  #0x3D, LSL #24", 22, 23)
1620eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4s_0x6B_msl8,  "mvni v22.4s,  #0x6B, MSL #8", 22, 23)
1621eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_4s_0x94_msl16, "mvni v22.4s,  #0x94, MSL #16", 22, 23)
1622eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_2s_0x7A_msl8,  "mvni v22.2s,  #0x7A, MSL #8", 22, 23)
1623eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(mvni_2s_0xA5_msl16, "mvni v22.2s,  #0xA5, MSL #16", 22, 23)
1624eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1625eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(not, 16b, 16b)
1626eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(not, 8b,  8b)
1627eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1628eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(pmul, 16b, 16b, 16b)
1629eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(pmul, 8b, 8b, 8b)
1630eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1631eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(pmull,  8h, 8b,  8b)
1632eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(pmull2, 8h, 16b, 16b)
1633eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov//GEN_BINARY_TEST(pmull,  1q, 1d,  1d)
1634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov//GEN_BINARY_TEST(pmull,  1q, 2d,  2d)
1635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1636eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rbit, 16b, 16b)
1637eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rbit, 8b, 8b)
1638eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev16, 16b, 16b)
1639eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev16, 8b, 8b)
1640eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev32, 16b, 16b)
1641eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev32, 8b, 8b)
1642eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev32, 8h, 8h)
1643eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev32, 4h, 4h)
1644eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev64, 16b, 16b)
1645eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev64, 8b, 8b)
1646eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev64, 8h, 8h)
1647eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev64, 4h, 4h)
1648eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev64, 4s, 4s)
1649eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(rev64, 2s, 2s)
1650eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1651eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(saba, 4s, 4s, 4s)
1652eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(saba, 2s, 2s, 2s)
1653eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(saba, 8h, 8h, 8h)
1654eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(saba, 4h, 4h, 4h)
1655eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(saba, 16b, 16b, 16b)
1656eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(saba, 8b, 8b, 8b)
1657eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1658eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uaba, 4s, 4s, 4s)
1659eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uaba, 2s, 2s, 2s)
1660eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uaba, 8h, 8h, 8h)
1661eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uaba, 4h, 4h, 4h)
1662eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uaba, 16b, 16b, 16b)
1663eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uaba, 8b, 8b, 8b)
1664eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1665eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabal_2d_2s_2s,  "sabal  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1666eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabal2_2d_4s_4s, "sabal2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1667eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1668eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabal_4s_4h_4h,  "sabal  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1669eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabal2_4s_8h_8h, "sabal2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1670eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1671eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabal_8h_8b_8b,  "sabal  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1672eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabal2_8h_16b_16b,
1673eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "sabal2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1674eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1675eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabal_2d_2s_2s,  "uabal  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1676eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabal2_2d_4s_4s, "uabal2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1677eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1678eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabal_4s_4h_4h,  "uabal  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1679eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabal2_4s_8h_8h, "uabal2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1680eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1681eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabal_8h_8b_8b,  "uabal  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1682eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabal2_8h_16b_16b,
1683eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "uabal2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1684eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1685eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabd_4s_4s_4s,    "sabd v2.4s, v11.4s, v29.4s", 2, 11, 29)
1686eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabd_2s_2s_2s,    "sabd v2.2s, v11.2s, v29.2s", 2, 11, 29)
1687eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabd_8h_8h_8h,    "sabd v2.8h, v11.8h, v29.8h", 2, 11, 29)
1688eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabd_4h_4h_4h,    "sabd v2.4h, v11.4h, v29.4h", 2, 11, 29)
1689eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabd_16b_16b_16b, "sabd v2.16b, v11.16b, v29.16b", 2, 11, 29)
1690eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabd_8b_8b_8b,    "sabd v2.8b, v11.8b, v29.8b", 2, 11, 29)
1691eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1692eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabd_4s_4s_4s,    "uabd v2.4s, v11.4s, v29.4s", 2, 11, 29)
1693eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabd_2s_2s_2s,    "uabd v2.2s, v11.2s, v29.2s", 2, 11, 29)
1694eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabd_8h_8h_8h,    "uabd v2.8h, v11.8h, v29.8h", 2, 11, 29)
1695eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabd_4h_4h_4h,    "uabd v2.4h, v11.4h, v29.4h", 2, 11, 29)
1696eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabd_16b_16b_16b, "uabd v2.16b, v11.16b, v29.16b", 2, 11, 29)
1697eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabd_8b_8b_8b,    "uabd v2.8b, v11.8b, v29.8b", 2, 11, 29)
1698eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1699eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabdl_2d_2s_2s,  "sabdl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1700eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabdl2_2d_4s_4s, "sabdl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1701eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1702eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabdl_4s_4h_4h,  "sabdl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1703eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabdl2_4s_8h_8h, "sabdl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1704eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1705eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabdl_8h_8b_8b,  "sabdl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1706eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sabdl2_8h_16b_16b,
1707eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "sabdl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1708eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1709eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabdl_2d_2s_2s,  "uabdl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1710eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabdl2_2d_4s_4s, "uabdl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1711eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1712eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabdl_4s_4h_4h,  "uabdl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1713eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabdl2_4s_8h_8h, "uabdl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1714eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1715eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabdl_8h_8b_8b,  "uabdl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1716eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uabdl2_8h_16b_16b,
1717eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "uabdl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1718eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1719eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sadalp_4h_8b,  "sadalp v3.4h, v19.8b",  3, 19)
1720eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sadalp_8h_16b, "sadalp v3.8h, v19.16b", 3, 19)
1721eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sadalp_2s_4h,  "sadalp v3.2s, v19.4h",  3, 19)
1722eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sadalp_4s_8h,  "sadalp v3.4s, v19.8h",  3, 19)
1723eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sadalp_1d_2s,  "sadalp v3.1d, v19.2s",  3, 19)
1724eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sadalp_2d_4s,  "sadalp v3.2d, v19.4s",  3, 19)
1725eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1726eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uadalp_4h_8b,  "uadalp v3.4h, v19.8b",  3, 19)
1727eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uadalp_8h_16b, "uadalp v3.8h, v19.16b", 3, 19)
1728eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uadalp_2s_4h,  "uadalp v3.2s, v19.4h",  3, 19)
1729eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uadalp_4s_8h,  "uadalp v3.4s, v19.8h",  3, 19)
1730eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uadalp_1d_2s,  "uadalp v3.1d, v19.2s",  3, 19)
1731eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uadalp_2d_4s,  "uadalp v3.2d, v19.4s",  3, 19)
1732eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1733eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddl_2d_2s_2s,  "saddl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1734eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddl2_2d_4s_4s, "saddl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1735eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1736eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddl_4s_4h_4h,  "saddl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1737eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddl2_4s_8h_8h, "saddl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1738eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1739eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddl_8h_8b_8b,  "saddl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1740eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddl2_8h_16b_16b,
1741eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "saddl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1742eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1743eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddl_2d_2s_2s,  "uaddl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1744eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddl2_2d_4s_4s, "uaddl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1745eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1746eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddl_4s_4h_4h,  "uaddl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1747eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddl2_4s_8h_8h, "uaddl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1748eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1749eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddl_8h_8b_8b,  "uaddl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1750eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddl2_8h_16b_16b,
1751eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "uaddl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1752eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1753eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubl_2d_2s_2s,  "ssubl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1754eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubl2_2d_4s_4s, "ssubl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1755eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1756eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubl_4s_4h_4h,  "ssubl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1757eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubl2_4s_8h_8h, "ssubl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1758eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1759eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubl_8h_8b_8b,  "ssubl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1760eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubl2_8h_16b_16b,
1761eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "ssubl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1762eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1763eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubl_2d_2s_2s,  "usubl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
1764eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubl2_2d_4s_4s, "usubl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
1765eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1766eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubl_4s_4h_4h,  "usubl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
1767eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubl2_4s_8h_8h, "usubl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
1768eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1769eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubl_8h_8b_8b,  "usubl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
1770eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubl2_8h_16b_16b,
1771eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "usubl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
1772eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1773eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlp_4h_8b,  "saddlp v3.4h, v19.8b",  3, 19)
1774eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlp_8h_16b, "saddlp v3.8h, v19.16b", 3, 19)
1775eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlp_2s_4h,  "saddlp v3.2s, v19.4h",  3, 19)
1776eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlp_4s_8h,  "saddlp v3.4s, v19.8h",  3, 19)
1777eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlp_1d_2s,  "saddlp v3.1d, v19.2s",  3, 19)
1778eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlp_2d_4s,  "saddlp v3.2d, v19.4s",  3, 19)
1779eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1780eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlp_4h_8b,  "uaddlp v3.4h, v19.8b",  3, 19)
1781eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlp_8h_16b, "uaddlp v3.8h, v19.16b", 3, 19)
1782eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlp_2s_4h,  "uaddlp v3.2s, v19.4h",  3, 19)
1783eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlp_4s_8h,  "uaddlp v3.4s, v19.8h",  3, 19)
1784eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlp_1d_2s,  "uaddlp v3.1d, v19.2s",  3, 19)
1785eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlp_2d_4s,  "uaddlp v3.2d, v19.4s",  3, 19)
1786eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1787eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlv_h_16b, "saddlv h3, v19.16b",  3, 19)
1788eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlv_h_8b,  "saddlv h3, v19.8b",   3, 19)
1789eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlv_s_8h,  "saddlv s3, v19.8h",   3, 19)
1790eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlv_s_4h,  "saddlv s3, v19.4h",   3, 19)
1791eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(saddlv_d_4s,  "saddlv d3, v19.4s",   3, 19)
1792eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1793eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlv_h_16b, "uaddlv h3, v19.16b",  3, 19)
1794eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlv_h_8b,  "uaddlv h3, v19.8b",   3, 19)
1795eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlv_s_8h,  "uaddlv s3, v19.8h",   3, 19)
1796eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlv_s_4h,  "uaddlv s3, v19.4h",   3, 19)
1797eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uaddlv_d_4s,  "uaddlv d3, v19.4s",   3, 19)
1798eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1799eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddw2_8h_8h_16b, "saddw2 v5.8h, v13.8h, v31.16b", 5, 13, 31)
1800eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddw_8h_8h_8b,   "saddw  v5.8h, v13.8h, v31.8b",  5, 13, 31)
1801eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddw2_4s_4s_8h,  "saddw2 v5.4s, v13.4s, v31.8h",  5, 13, 31)
1802eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddw_4s_4s_4h,   "saddw  v5.4s, v13.4s, v31.4h",  5, 13, 31)
1803eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddw2_2d_2d_4s,  "saddw2 v5.2d, v13.2d, v31.4s",  5, 13, 31)
1804eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(saddw_2d_2d_2s,   "saddw  v5.2d, v13.2d, v31.2s",  5, 13, 31)
1805eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1806eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddw2_8h_8h_16b, "uaddw2 v5.8h, v13.8h, v31.16b", 5, 13, 31)
1807eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddw_8h_8h_8b,   "uaddw  v5.8h, v13.8h, v31.8b",  5, 13, 31)
1808eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddw2_4s_4s_8h,  "uaddw2 v5.4s, v13.4s, v31.8h",  5, 13, 31)
1809eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddw_4s_4s_4h,   "uaddw  v5.4s, v13.4s, v31.4h",  5, 13, 31)
1810eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddw2_2d_2d_4s,  "uaddw2 v5.2d, v13.2d, v31.4s",  5, 13, 31)
1811eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uaddw_2d_2d_2s,   "uaddw  v5.2d, v13.2d, v31.2s",  5, 13, 31)
1812eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1813eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubw2_8h_8h_16b, "ssubw2 v5.8h, v13.8h, v31.16b", 5, 13, 31)
1814eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubw_8h_8h_8b,   "ssubw  v5.8h, v13.8h, v31.8b",  5, 13, 31)
1815eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubw2_4s_4s_8h,  "ssubw2 v5.4s, v13.4s, v31.8h",  5, 13, 31)
1816eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubw_4s_4s_4h,   "ssubw  v5.4s, v13.4s, v31.4h",  5, 13, 31)
1817eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubw2_2d_2d_4s,  "ssubw2 v5.2d, v13.2d, v31.4s",  5, 13, 31)
1818eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ssubw_2d_2d_2s,   "ssubw  v5.2d, v13.2d, v31.2s",  5, 13, 31)
1819eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1820eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubw2_8h_8h_16b, "usubw2 v5.8h, v13.8h, v31.16b", 5, 13, 31)
1821eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubw_8h_8h_8b,   "usubw  v5.8h, v13.8h, v31.8b",  5, 13, 31)
1822eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubw2_4s_4s_8h,  "usubw2 v5.4s, v13.4s, v31.8h",  5, 13, 31)
1823eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubw_4s_4s_4h,   "usubw  v5.4s, v13.4s, v31.4h",  5, 13, 31)
1824eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubw2_2d_2d_4s,  "usubw2 v5.2d, v13.2d, v31.4s",  5, 13, 31)
1825eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(usubw_2d_2d_2s,   "usubw  v5.2d, v13.2d, v31.2s",  5, 13, 31)
1826eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1827eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shadd_4s_4s_4s,   "shadd v2.4s,  v11.4s,  v29.4s", 2, 11, 29)
1828eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shadd_2s_2s_2s,   "shadd v2.2s,  v11.2s,  v29.2s", 2, 11, 29)
1829eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shadd_8h_8h_8h,   "shadd v2.8h,  v11.8h,  v29.8h", 2, 11, 29)
1830eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shadd_4h_4h_4h,   "shadd v2.4h,  v11.4h,  v29.4h", 2, 11, 29)
1831eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shadd_16b_16b_16b,"shadd v2.16b, v11.16b, v29.16b", 2, 11, 29)
1832eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shadd_8b_8b_8b,   "shadd v2.8b,  v11.8b,  v29.8b", 2, 11, 29)
1833eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1834eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhadd_4s_4s_4s,   "uhadd v2.4s,  v11.4s,  v29.4s", 2, 11, 29)
1835eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhadd_2s_2s_2s,   "uhadd v2.2s,  v11.2s,  v29.2s", 2, 11, 29)
1836eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhadd_8h_8h_8h,   "uhadd v2.8h,  v11.8h,  v29.8h", 2, 11, 29)
1837eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhadd_4h_4h_4h,   "uhadd v2.4h,  v11.4h,  v29.4h", 2, 11, 29)
1838eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhadd_16b_16b_16b,"uhadd v2.16b, v11.16b, v29.16b", 2, 11, 29)
1839eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhadd_8b_8b_8b,   "uhadd v2.8b,  v11.8b,  v29.8b", 2, 11, 29)
1840eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1841eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shsub_4s_4s_4s,   "shsub v2.4s,  v11.4s,  v29.4s", 2, 11, 29)
1842eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shsub_2s_2s_2s,   "shsub v2.2s,  v11.2s,  v29.2s", 2, 11, 29)
1843eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shsub_8h_8h_8h,   "shsub v2.8h,  v11.8h,  v29.8h", 2, 11, 29)
1844eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shsub_4h_4h_4h,   "shsub v2.4h,  v11.4h,  v29.4h", 2, 11, 29)
1845eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shsub_16b_16b_16b,"shsub v2.16b, v11.16b, v29.16b", 2, 11, 29)
1846eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(shsub_8b_8b_8b,   "shsub v2.8b,  v11.8b,  v29.8b", 2, 11, 29)
1847eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1848eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhsub_4s_4s_4s,   "uhsub v2.4s,  v11.4s,  v29.4s", 2, 11, 29)
1849eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhsub_2s_2s_2s,   "uhsub v2.2s,  v11.2s,  v29.2s", 2, 11, 29)
1850eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhsub_8h_8h_8h,   "uhsub v2.8h,  v11.8h,  v29.8h", 2, 11, 29)
1851eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhsub_4h_4h_4h,   "uhsub v2.4h,  v11.4h,  v29.4h", 2, 11, 29)
1852eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhsub_16b_16b_16b,"uhsub v2.16b, v11.16b, v29.16b", 2, 11, 29)
1853eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uhsub_8b_8b_8b,   "uhsub v2.8b,  v11.8b,  v29.8b", 2, 11, 29)
1854eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1855eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shll_8h_8b_8,   "shll  v3.8h, v24.8b,  #8", 3, 24)
1856eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shll2_8h_16b_8, "shll2 v3.8h, v24.16b, #8", 3, 24)
1857eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shll_4s_4h_16,  "shll  v3.4s, v24.4h, #16", 3, 24)
1858eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shll2_4s_8h_16, "shll2 v3.4s, v24.8h, #16", 3, 24)
1859eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shll_2d_2s_32,  "shll  v3.2d, v24.2s, #32", 3, 24)
1860eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shll2_2d_4s_32, "shll2 v3.2d, v24.4s, #32", 3, 24)
1861eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1862eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn_2s_2d_1,   "shrn  v4.2s,  v29.2d, #1",  4, 29)
1863eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn_2s_2d_32,  "shrn  v4.2s,  v29.2d, #32", 4, 29)
1864eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn2_4s_2d_1,  "shrn2 v4.4s,  v29.2d, #1",  4, 29)
1865eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn2_4s_2d_32, "shrn2 v4.4s,  v29.2d, #32", 4, 29)
1866eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn_4h_4s_1,   "shrn  v4.4h,  v29.4s, #1",  4, 29)
1867eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn_4h_4s_16,  "shrn  v4.4h,  v29.4s, #16", 4, 29)
1868eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn2_8h_4s_1,  "shrn2 v4.8h,  v29.4s, #1",  4, 29)
1869eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn2_8h_4s_16, "shrn2 v4.8h,  v29.4s, #16", 4, 29)
1870eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn_8b_8h_1,   "shrn  v4.8b,  v29.8h, #1",  4, 29)
1871eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn_8b_8h_8,   "shrn  v4.8b,  v29.8h, #8",  4, 29)
1872eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn2_16b_8h_1, "shrn2 v4.16b, v29.8h, #1",  4, 29)
1873eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shrn2_16b_8h_8, "shrn2 v4.16b, v29.8h, #8",  4, 29)
1874eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1875eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn_2s_2d_1,   "rshrn  v4.2s,  v29.2d, #1",  4, 29)
1876eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn_2s_2d_32,  "rshrn  v4.2s,  v29.2d, #32", 4, 29)
1877eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn2_4s_2d_1,  "rshrn2 v4.4s,  v29.2d, #1",  4, 29)
1878eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn2_4s_2d_32, "rshrn2 v4.4s,  v29.2d, #32", 4, 29)
1879eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn_4h_4s_1,   "rshrn  v4.4h,  v29.4s, #1",  4, 29)
1880eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn_4h_4s_16,  "rshrn  v4.4h,  v29.4s, #16", 4, 29)
1881eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn2_8h_4s_1,  "rshrn2 v4.8h,  v29.4s, #1",  4, 29)
1882eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn2_8h_4s_16, "rshrn2 v4.8h,  v29.4s, #16", 4, 29)
1883eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn_8b_8h_1,   "rshrn  v4.8b,  v29.8h, #1",  4, 29)
1884eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn_8b_8h_8,   "rshrn  v4.8b,  v29.8h, #8",  4, 29)
1885eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn2_16b_8h_1, "rshrn2 v4.16b, v29.8h, #1",  4, 29)
1886eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(rshrn2_16b_8h_8, "rshrn2 v4.16b, v29.8h, #8",  4, 29)
1887eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1888eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_d_d_0,  "sli d5, d28, #0",  5, 28)
1889eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_d_d_32, "sli d5, d28, #32", 5, 28)
1890eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_d_d_63, "sli d5, d28, #63", 5, 28)
1891eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_d_d_1,  "sri d5, d28, #1",  5, 28)
1892eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_d_d_33, "sri d5, d28, #33", 5, 28)
1893eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_d_d_64, "sri d5, d28, #64", 5, 28)
1894eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1895eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_2d_2d_0,   "sli v6.2d,  v27.2d, #0",  6, 27)
1896eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_2d_2d_32,  "sli v6.2d,  v27.2d, #32", 6, 27)
1897eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_2d_2d_63,  "sli v6.2d,  v27.2d, #63", 6, 27)
1898eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_4s_4s_0,   "sli v6.4s,  v27.4s, #0",  6, 27)
1899eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_4s_4s_16,  "sli v6.4s,  v27.4s, #16", 6, 27)
1900eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_4s_4s_31,  "sli v6.4s,  v27.4s, #31", 6, 27)
1901eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_2s_2s_0,   "sli v6.2s,  v27.2s, #0",  6, 27)
1902eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_2s_2s_16,  "sli v6.2s,  v27.2s, #16", 6, 27)
1903eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_2s_2s_31,  "sli v6.2s,  v27.2s, #31", 6, 27)
1904eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_8h_8h_0,   "sli v6.8h,  v27.8h, #0",  6, 27)
1905eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_8h_8h_8,   "sli v6.8h,  v27.8h, #8",  6, 27)
1906eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_8h_8h_15,  "sli v6.8h,  v27.8h, #15", 6, 27)
1907eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_4h_4h_0,   "sli v6.4h,  v27.4h, #0",  6, 27)
1908eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_4h_4h_8,   "sli v6.4h,  v27.4h, #8",  6, 27)
1909eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_4h_4h_15,  "sli v6.4h,  v27.4h, #15", 6, 27)
1910eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_16b_16b_0, "sli v6.16b, v27.16b, #0", 6, 27)
1911eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_16b_16b_3, "sli v6.16b, v27.16b, #3", 6, 27)
1912eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_16b_16b_7, "sli v6.16b, v27.16b, #7", 6, 27)
1913eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_8b_8b_0,   "sli v6.8b,  v27.8b, #0",  6, 27)
1914eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_8b_8b_3,   "sli v6.8b,  v27.8b, #3",  6, 27)
1915eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sli_8b_8b_7,   "sli v6.8b,  v27.8b, #7",  6, 27)
1916eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1917eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_2d_2d_1,   "sri v6.2d,  v27.2d,  #1",  6, 27)
1918eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_2d_2d_33,  "sri v6.2d,  v27.2d,  #33", 6, 27)
1919eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_2d_2d_64,  "sri v6.2d,  v27.2d,  #64", 6, 27)
1920eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_4s_4s_1,   "sri v6.4s,  v27.4s,  #1",  6, 27)
1921eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_4s_4s_17,  "sri v6.4s,  v27.4s,  #17", 6, 27)
1922eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_4s_4s_32,  "sri v6.4s,  v27.4s,  #32", 6, 27)
1923eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_2s_2s_1,   "sri v6.2s,  v27.2s,  #1",  6, 27)
1924eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_2s_2s_17,  "sri v6.2s,  v27.2s,  #17", 6, 27)
1925eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_2s_2s_32,  "sri v6.2s,  v27.2s,  #32", 6, 27)
1926eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_8h_8h_1,   "sri v6.8h,  v27.8h,  #1",  6, 27)
1927eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_8h_8h_8,   "sri v6.8h,  v27.8h,  #8",  6, 27)
1928eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_8h_8h_16,  "sri v6.8h,  v27.8h,  #16", 6, 27)
1929eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_4h_4h_1,   "sri v6.4h,  v27.4h,  #1",  6, 27)
1930eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_4h_4h_8,   "sri v6.4h,  v27.4h,  #8",  6, 27)
1931eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_4h_4h_16,  "sri v6.4h,  v27.4h,  #16", 6, 27)
1932eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_16b_16b_1, "sri v6.16b, v27.16b, #1", 6, 27)
1933eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_16b_16b_4, "sri v6.16b, v27.16b, #4", 6, 27)
1934eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_16b_16b_8, "sri v6.16b, v27.16b, #8", 6, 27)
1935eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_8b_8b_1,   "sri v6.8b,  v27.8b,  #1",  6, 27)
1936eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_8b_8b_4,   "sri v6.8b,  v27.8b,  #4",  6, 27)
1937eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sri_8b_8b_8,   "sri v6.8b,  v27.8b,  #8",  6, 27)
1938eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1939eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smaxp, 4s, 4s, 4s)
1940eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smaxp, 2s, 2s, 2s)
1941eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smaxp, 8h, 8h, 8h)
1942eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smaxp, 4h, 4h, 4h)
1943eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smaxp, 16b, 16b, 16b)
1944eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(smaxp, 8b, 8b, 8b)
1945eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1946eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umaxp, 4s, 4s, 4s)
1947eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umaxp, 2s, 2s, 2s)
1948eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umaxp, 8h, 8h, 8h)
1949eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umaxp, 4h, 4h, 4h)
1950eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umaxp, 16b, 16b, 16b)
1951eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(umaxp, 8b, 8b, 8b)
1952eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1953eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sminp, 4s, 4s, 4s)
1954eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sminp, 2s, 2s, 2s)
1955eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sminp, 8h, 8h, 8h)
1956eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sminp, 4h, 4h, 4h)
1957eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sminp, 16b, 16b, 16b)
1958eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(sminp, 8b, 8b, 8b)
1959eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1960eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uminp, 4s, 4s, 4s)
1961eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uminp, 2s, 2s, 2s)
1962eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uminp, 8h, 8h, 8h)
1963eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uminp, 4h, 4h, 4h)
1964eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uminp, 16b, 16b, 16b)
1965eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_BINARY_TEST(uminp, 8b, 8b, 8b)
1966eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1967eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_2d_2s_s0,  "smlal  v29.2d, v20.2s, v3.s[0]", 29, 20, 3)
1968eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_2d_2s_s3,  "smlal  v29.2d, v20.2s, v3.s[3]", 29, 20, 3)
1969eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_2d_4s_s1, "smlal2 v29.2d, v20.4s, v3.s[1]", 29, 20, 3)
1970eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_2d_4s_s2, "smlal2 v29.2d, v20.4s, v3.s[2]", 29, 20, 3)
1971eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_4s_4h_h0,  "smlal  v29.4s, v20.4h, v3.h[0]", 29, 20, 3)
1972eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_4s_4h_h7,  "smlal  v29.4s, v20.4h, v3.h[7]", 29, 20, 3)
1973eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_4s_8h_h1, "smlal2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
1974eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_4s_8h_h4, "smlal2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
1975eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1976eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_2d_2s_s0,  "umlal  v29.2d, v20.2s, v3.s[0]", 29, 20, 3)
1977eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_2d_2s_s3,  "umlal  v29.2d, v20.2s, v3.s[3]", 29, 20, 3)
1978eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_2d_4s_s1, "umlal2 v29.2d, v20.4s, v3.s[1]", 29, 20, 3)
1979eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_2d_4s_s2, "umlal2 v29.2d, v20.4s, v3.s[2]", 29, 20, 3)
1980eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_4s_4h_h0,  "umlal  v29.4s, v20.4h, v3.h[0]", 29, 20, 3)
1981eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_4s_4h_h7,  "umlal  v29.4s, v20.4h, v3.h[7]", 29, 20, 3)
1982eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_4s_8h_h1, "umlal2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
1983eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_4s_8h_h4, "umlal2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
1984eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1985eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_2d_2s_s0,  "smlsl  v29.2d, v20.2s, v3.s[0]", 29, 20, 3)
1986eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_2d_2s_s3,  "smlsl  v29.2d, v20.2s, v3.s[3]", 29, 20, 3)
1987eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_2d_4s_s1, "smlsl2 v29.2d, v20.4s, v3.s[1]", 29, 20, 3)
1988eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_2d_4s_s2, "smlsl2 v29.2d, v20.4s, v3.s[2]", 29, 20, 3)
1989eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_4s_4h_h0,  "smlsl  v29.4s, v20.4h, v3.h[0]", 29, 20, 3)
1990eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_4s_4h_h7,  "smlsl  v29.4s, v20.4h, v3.h[7]", 29, 20, 3)
1991eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_4s_8h_h1, "smlsl2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
1992eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_4s_8h_h4, "smlsl2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
1993eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
1994eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_2d_2s_s0,  "umlsl  v29.2d, v20.2s, v3.s[0]", 29, 20, 3)
1995eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_2d_2s_s3,  "umlsl  v29.2d, v20.2s, v3.s[3]", 29, 20, 3)
1996eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_2d_4s_s1, "umlsl2 v29.2d, v20.4s, v3.s[1]", 29, 20, 3)
1997eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_2d_4s_s2, "umlsl2 v29.2d, v20.4s, v3.s[2]", 29, 20, 3)
1998eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_4s_4h_h0,  "umlsl  v29.4s, v20.4h, v3.h[0]", 29, 20, 3)
1999eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_4s_4h_h7,  "umlsl  v29.4s, v20.4h, v3.h[7]", 29, 20, 3)
2000eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_4s_8h_h1, "umlsl2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
2001eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_4s_8h_h4, "umlsl2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
2002eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2003eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_2d_2s_s0,  "smull  v29.2d, v20.2s, v3.s[0]", 29, 20, 3)
2004eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_2d_2s_s3,  "smull  v29.2d, v20.2s, v3.s[3]", 29, 20, 3)
2005eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_2d_4s_s1, "smull2 v29.2d, v20.4s, v3.s[1]", 29, 20, 3)
2006eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_2d_4s_s2, "smull2 v29.2d, v20.4s, v3.s[2]", 29, 20, 3)
2007eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_4s_4h_h0,  "smull  v29.4s, v20.4h, v3.h[0]", 29, 20, 3)
2008eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_4s_4h_h7,  "smull  v29.4s, v20.4h, v3.h[7]", 29, 20, 3)
2009eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_4s_8h_h1, "smull2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
2010eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_4s_8h_h4, "smull2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
2011eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2012eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_2d_2s_s0,  "umull  v29.2d, v20.2s, v3.s[0]", 29, 20, 3)
2013eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_2d_2s_s3,  "umull  v29.2d, v20.2s, v3.s[3]", 29, 20, 3)
2014eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_2d_4s_s1, "umull2 v29.2d, v20.4s, v3.s[1]", 29, 20, 3)
2015eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_2d_4s_s2, "umull2 v29.2d, v20.4s, v3.s[2]", 29, 20, 3)
2016eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_4s_4h_h0,  "umull  v29.4s, v20.4h, v3.h[0]", 29, 20, 3)
2017eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_4s_4h_h7,  "umull  v29.4s, v20.4h, v3.h[7]", 29, 20, 3)
2018eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_4s_8h_h1, "umull2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
2019eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_4s_8h_h4, "umull2 v29.4s, v20.8h, v3.h[1]", 29, 20, 3)
2020eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2021eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_2d_2s_2s,  "smlal  v2.2d, v11.2s, v29.2s", 2, 11, 29)
2022eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_2d_4s_4s, "smlal2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
2023eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2024eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_4s_4h_4h,  "smlal  v2.4s, v11.4h, v29.4h", 2, 11, 29)
2025eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_4s_8h_8h, "smlal2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
2026eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2027eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal_8h_8b_8b,  "smlal  v2.8h, v11.8b, v29.8b", 2, 11, 29)
2028eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlal2_8h_16b_16b,
2029eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "smlal2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
2030eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2031eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_2d_2s_2s,  "umlal  v2.2d, v11.2s, v29.2s", 2, 11, 29)
2032eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_2d_4s_4s, "umlal2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
2033eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2034eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_4s_4h_4h,  "umlal  v2.4s, v11.4h, v29.4h", 2, 11, 29)
2035eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_4s_8h_8h, "umlal2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
2036eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2037eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal_8h_8b_8b,  "umlal  v2.8h, v11.8b, v29.8b", 2, 11, 29)
2038eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlal2_8h_16b_16b,
2039eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "umlal2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
2040eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2041eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_2d_2s_2s,  "smlsl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
2042eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_2d_4s_4s, "smlsl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
2043eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2044eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_4s_4h_4h,  "smlsl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
2045eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_4s_8h_8h, "smlsl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
2046eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2047eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl_8h_8b_8b,  "smlsl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
2048eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smlsl2_8h_16b_16b,
2049eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "smlsl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
2050eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2051eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_2d_2s_2s,  "umlsl  v2.2d, v11.2s, v29.2s", 2, 11, 29)
2052eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_2d_4s_4s, "umlsl2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
2053eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2054eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_4s_4h_4h,  "umlsl  v2.4s, v11.4h, v29.4h", 2, 11, 29)
2055eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_4s_8h_8h, "umlsl2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
2056eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2057eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl_8h_8b_8b,  "umlsl  v2.8h, v11.8b, v29.8b", 2, 11, 29)
2058eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umlsl2_8h_16b_16b,
2059eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "umlsl2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
2060eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2061eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_2d_2s_2s,  "smull  v2.2d, v11.2s, v29.2s", 2, 11, 29)
2062eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_2d_4s_4s, "smull2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
2063eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2064eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_4s_4h_4h,  "smull  v2.4s, v11.4h, v29.4h", 2, 11, 29)
2065eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_4s_8h_8h, "smull2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
2066eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2067eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull_8h_8b_8b,  "smull  v2.8h, v11.8b, v29.8b", 2, 11, 29)
2068eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(smull2_8h_16b_16b,
2069eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "smull2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
2070eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2071eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_2d_2s_2s,  "umull  v2.2d, v11.2s, v29.2s", 2, 11, 29)
2072eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_2d_4s_4s, "umull2 v2.2d, v11.4s, v29.4s", 2, 11, 29)
2073eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2074eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_4s_4h_4h,  "umull  v2.4s, v11.4h, v29.4h", 2, 11, 29)
2075eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_4s_8h_8h, "umull2 v2.4s, v11.8h, v29.8h", 2, 11, 29)
2076eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2077eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull_8h_8b_8b,  "umull  v2.8h, v11.8b, v29.8b", 2, 11, 29)
2078eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(umull2_8h_16b_16b,
2079eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                   "umull2 v2.8h, v11.16b, v29.16b", 2, 11, 29)
2080eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2081eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqabs_d_d, "sqabs d7, d30", 7, 30)
2082eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqabs_s_s, "sqabs s7, s30", 7, 30)
2083eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqabs_h_h, "sqabs h7, h30", 7, 30)
2084eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqabs_b_b, "sqabs b7, b30", 7, 30)
2085eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2086eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqneg_d_d, "sqneg d7, d30", 7, 30)
2087eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqneg_s_s, "sqneg s7, s30", 7, 30)
2088eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqneg_h_h, "sqneg h7, h30", 7, 30)
2089eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqneg_b_b, "sqneg b7, b30", 7, 30)
2090eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2091eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 2d, 2d)
2092eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 4s, 4s)
2093eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 2s, 2s)
2094eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 8h, 8h)
2095eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 4h, 4h)
2096eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 16b, 16b)
2097eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqabs, 8b, 8b)
2098eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2099eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 2d, 2d)
2100eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 4s, 4s)
2101eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 2s, 2s)
2102eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 8h, 8h)
2103eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 4h, 4h)
2104eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 16b, 16b)
2105eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqneg, 8b, 8b)
2106eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2107eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_d_d_d, "sqadd d1, d2, d4", 1, 2, 4)
2108eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_s_s_s, "sqadd s1, s2, s4", 1, 2, 4)
2109eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_h_h_h, "sqadd h1, h2, h4", 1, 2, 4)
2110eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_b_b_b, "sqadd b1, b2, b4", 1, 2, 4)
2111eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_2d_2d_2d,    "sqadd v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2112eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_4s_4s_4s,    "sqadd v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2113eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_2s_2s_2s,    "sqadd v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2114eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_8h_8h_8h,    "sqadd v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2115eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_4h_4h_4h,    "sqadd v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2116eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_16b_16b_16b, "sqadd v1.16b, v2.16b, v4.16b", 1, 2, 4)
2117eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqadd_8b_8b_8b,    "sqadd v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2118eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2119eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_d_d_d, "uqadd d1, d2, d4", 1, 2, 4)
2120eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_s_s_s, "uqadd s1, s2, s4", 1, 2, 4)
2121eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_h_h_h, "uqadd h1, h2, h4", 1, 2, 4)
2122eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_b_b_b, "uqadd b1, b2, b4", 1, 2, 4)
2123eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_2d_2d_2d,    "uqadd v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2124eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_4s_4s_4s,    "uqadd v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2125eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_2s_2s_2s,    "uqadd v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2126eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_8h_8h_8h,    "uqadd v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2127eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_4h_4h_4h,    "uqadd v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2128eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_16b_16b_16b, "uqadd v1.16b, v2.16b, v4.16b", 1, 2, 4)
2129eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqadd_8b_8b_8b,    "uqadd v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2130eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2131eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_d_d_d, "sqsub d1, d2, d4", 1, 2, 4)
2132eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_s_s_s, "sqsub s1, s2, s4", 1, 2, 4)
2133eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_h_h_h, "sqsub h1, h2, h4", 1, 2, 4)
2134eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_b_b_b, "sqsub b1, b2, b4", 1, 2, 4)
2135eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_2d_2d_2d,    "sqsub v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2136eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_4s_4s_4s,    "sqsub v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2137eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_2s_2s_2s,    "sqsub v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2138eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_8h_8h_8h,    "sqsub v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2139eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_4h_4h_4h,    "sqsub v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_16b_16b_16b, "sqsub v1.16b, v2.16b, v4.16b", 1, 2, 4)
2141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqsub_8b_8b_8b,    "sqsub v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2143eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_d_d_d, "uqsub d1, d2, d4", 1, 2, 4)
2144eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_s_s_s, "uqsub s1, s2, s4", 1, 2, 4)
2145eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_h_h_h, "uqsub h1, h2, h4", 1, 2, 4)
2146eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_b_b_b, "uqsub b1, b2, b4", 1, 2, 4)
2147eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_2d_2d_2d,    "uqsub v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2148eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_4s_4s_4s,    "uqsub v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2149eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_2s_2s_2s,    "uqsub v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2150eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_8h_8h_8h,    "uqsub v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2151eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_4h_4h_4h,    "uqsub v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2152eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_16b_16b_16b, "uqsub v1.16b, v2.16b, v4.16b", 1, 2, 4)
2153eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqsub_8b_8b_8b,    "uqsub v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2154eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2155eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_d_s_s0, "sqdmlal d31, s30, v29.s[0]", 31,30,29)
2156eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_d_s_s3, "sqdmlal d31, s30, v29.s[3]", 31,30,29)
2157eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_s_h_h1, "sqdmlal s31, h30, v13.h[1]", 31,30,13)
2158eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_s_h_h5, "sqdmlal s31, h30, v13.h[5]", 31,30,13)
2159eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2160eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_d_s_s0, "sqdmlsl d31, s30, v29.s[0]", 31,30,29)
2161eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_d_s_s3, "sqdmlsl d31, s30, v29.s[3]", 31,30,29)
2162eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_s_h_h1, "sqdmlsl s31, h30, v13.h[1]", 31,30,13)
2163eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_s_h_h5, "sqdmlsl s31, h30, v13.h[5]", 31,30,13)
2164eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2165eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_d_s_s0, "sqdmull d31, s30, v29.s[0]", 31,30,29)
2166eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_d_s_s3, "sqdmull d31, s30, v29.s[3]", 31,30,29)
2167eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_s_h_h1, "sqdmull s31, h30, v13.h[1]", 31,30,13)
2168eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_s_h_h5, "sqdmull s31, h30, v13.h[5]", 31,30,13)
2169eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2170eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_2d_2s_s0, "sqdmlal  v29.2d, v20.2s, v3.s[0]",29,20,3)
2171eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_2d_2s_s3, "sqdmlal  v29.2d, v20.2s, v3.s[3]",29,20,3)
2172eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal2_2d_4s_s1,"sqdmlal2 v29.2d, v20.4s, v3.s[1]",29,20,3)
2173eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal2_2d_4s_s2,"sqdmlal2 v29.2d, v20.4s, v3.s[2]",29,20,3)
2174eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_4s_4h_h0, "sqdmlal  v29.4s, v20.4h, v3.h[0]",29,20,3)
2175eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_4s_4h_h7, "sqdmlal  v29.4s, v20.4h, v3.h[7]",29,20,3)
2176eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal2_4s_8h_h1,"sqdmlal2 v29.4s, v20.8h, v3.h[1]",29,20,3)
2177eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal2_4s_8h_h4,"sqdmlal2 v29.4s, v20.8h, v3.h[1]",29,20,3)
2178eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2179eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_2d_2s_s0, "sqdmlsl  v29.2d, v20.2s, v3.s[0]",29,20,3)
2180eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_2d_2s_s3, "sqdmlsl  v29.2d, v20.2s, v3.s[3]",29,20,3)
2181eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl2_2d_4s_s1,"sqdmlsl2 v29.2d, v20.4s, v3.s[1]",29,20,3)
2182eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl2_2d_4s_s2,"sqdmlsl2 v29.2d, v20.4s, v3.s[2]",29,20,3)
2183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_4s_4h_h0, "sqdmlsl  v29.4s, v20.4h, v3.h[0]",29,20,3)
2184eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_4s_4h_h7, "sqdmlsl  v29.4s, v20.4h, v3.h[7]",29,20,3)
2185eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl2_4s_8h_h1,"sqdmlsl2 v29.4s, v20.8h, v3.h[1]",29,20,3)
2186eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl2_4s_8h_h4,"sqdmlsl2 v29.4s, v20.8h, v3.h[1]",29,20,3)
2187eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2188eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_2d_2s_s0, "sqdmull  v29.2d, v20.2s, v3.s[0]",29,20,3)
2189eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_2d_2s_s3, "sqdmull  v29.2d, v20.2s, v3.s[3]",29,20,3)
2190eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull2_2d_4s_s1,"sqdmull2 v29.2d, v20.4s, v3.s[1]",29,20,3)
2191eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull2_2d_4s_s2,"sqdmull2 v29.2d, v20.4s, v3.s[2]",29,20,3)
2192eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_4s_4h_h0, "sqdmull  v29.4s, v20.4h, v3.h[0]",29,20,3)
2193eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_4s_4h_h7, "sqdmull  v29.4s, v20.4h, v3.h[7]",29,20,3)
2194eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull2_4s_8h_h1,"sqdmull2 v29.4s, v20.8h, v3.h[1]",29,20,3)
2195eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull2_4s_8h_h4,"sqdmull2 v29.4s, v20.8h, v3.h[1]",29,20,3)
2196eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2197eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_d_s_s, "sqdmlal d0, s8, s16", 0, 8, 16)
2198eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_s_h_h, "sqdmlal s0, h8, h16", 0, 8, 16)
2199eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_d_s_s, "sqdmlsl d0, s8, s16", 0, 8, 16)
2200eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_s_h_h, "sqdmlsl s0, h8, h16", 0, 8, 16)
2201eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_d_s_s, "sqdmull d0, s8, s16", 0, 8, 16)
2202eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_s_h_h, "sqdmull s0, h8, h16", 0, 8, 16)
2203eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2204eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_2d_2s_2s,  "sqdmlal  v2.2d, v11.2s, v29.2s", 2,11,29)
2205eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal2_2d_4s_4s, "sqdmlal2 v2.2d, v11.4s, v29.4s", 2,11,29)
2206eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal_4s_4h_4h,  "sqdmlal  v2.4s, v11.4h, v29.4h", 2,11,29)
2207eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlal2_4s_8h_8h, "sqdmlal2 v2.4s, v11.8h, v29.8h", 2,11,29)
2208eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2209eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_2d_2s_2s,  "sqdmlsl  v2.2d, v11.2s, v29.2s", 2,11,29)
2210eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl2_2d_4s_4s, "sqdmlsl2 v2.2d, v11.4s, v29.4s", 2,11,29)
2211eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl_4s_4h_4h,  "sqdmlsl  v2.4s, v11.4h, v29.4h", 2,11,29)
2212eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmlsl2_4s_8h_8h, "sqdmlsl2 v2.4s, v11.8h, v29.8h", 2,11,29)
2213eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2214eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_2d_2s_2s,  "sqdmull  v2.2d, v11.2s, v29.2s", 2,11,29)
2215eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull2_2d_4s_4s, "sqdmull2 v2.2d, v11.4s, v29.4s", 2,11,29)
2216eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull_4s_4h_4h,  "sqdmull  v2.4s, v11.4h, v29.4h", 2,11,29)
2217eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmull2_4s_8h_8h, "sqdmull2 v2.4s, v11.8h, v29.8h", 2,11,29)
2218eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2219eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_s_s_s1, "sqdmulh s0, s1, v2.s[1]", 0,1,2)
2220eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_s_s_s3, "sqdmulh s0, s1, v2.s[3]", 0,1,2)
2221eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_h_h_h2, "sqdmulh h0, h1, v2.h[2]", 0,1,2)
2222eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_h_h_h7, "sqdmulh h0, h1, v2.h[7]", 0,1,2)
2223eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2224eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_s_s_s1, "sqrdmulh s0, s1, v2.s[1]", 0,1,2)
2225eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_s_s_s3, "sqrdmulh s0, s1, v2.s[3]", 0,1,2)
2226eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_h_h_h2, "sqrdmulh h0, h1, v2.h[2]", 0,1,2)
2227eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_h_h_h7, "sqrdmulh h0, h1, v2.h[7]", 0,1,2)
2228eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2229eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_4s_4s_s1, "sqdmulh v0.4s, v1.4s, v2.s[1]", 0,1,2)
2230eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_4s_4s_s3, "sqdmulh v0.4s, v1.4s, v2.s[3]", 0,1,2)
2231eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_2s_2s_s1, "sqdmulh v0.2s, v1.2s, v2.s[1]", 0,1,2)
2232eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_2s_2s_s3, "sqdmulh v0.2s, v1.2s, v2.s[3]", 0,1,2)
2233eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_8h_8h_h2, "sqdmulh v0.8h, v1.8h, v2.h[2]", 0,1,2)
2234eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_8h_8h_h7, "sqdmulh v0.8h, v1.8h, v2.h[7]", 0,1,2)
2235eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_4h_4h_h2, "sqdmulh v0.4h, v1.4h, v2.h[2]", 0,1,2)
2236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_4h_4h_h7, "sqdmulh v0.4h, v1.4h, v2.h[7]", 0,1,2)
2237eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2238eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_4s_4s_s1, "sqrdmulh v0.4s, v1.4s, v2.s[1]", 0,1,2)
2239eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_4s_4s_s3, "sqrdmulh v0.4s, v1.4s, v2.s[3]", 0,1,2)
2240eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_2s_2s_s1, "sqrdmulh v0.2s, v1.2s, v2.s[1]", 0,1,2)
2241eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_2s_2s_s3, "sqrdmulh v0.2s, v1.2s, v2.s[3]", 0,1,2)
2242eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_8h_8h_h2, "sqrdmulh v0.8h, v1.8h, v2.h[2]", 0,1,2)
2243eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_8h_8h_h7, "sqrdmulh v0.8h, v1.8h, v2.h[7]", 0,1,2)
2244eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_4h_4h_h2, "sqrdmulh v0.4h, v1.4h, v2.h[2]", 0,1,2)
2245eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_4h_4h_h7, "sqrdmulh v0.4h, v1.4h, v2.h[7]", 0,1,2)
2246eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2247eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_s_s_s,  "sqdmulh  s1, s2, s4", 1, 2, 4)
2248eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_h_h_h,  "sqdmulh  h1, h2, h4", 1, 2, 4)
2249eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_s_s_s, "sqrdmulh s1, s2, s4", 1, 2, 4)
2250eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_h_h_h, "sqrdmulh h1, h2, h4", 1, 2, 4)
2251eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2252eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_4s_4s_4s, "sqdmulh v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_2s_2s_2s, "sqdmulh v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_8h_8h_8h, "sqdmulh v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqdmulh_4h_4h_4h, "sqdmulh v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_4s_4s_4s, "sqrdmulh v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_2s_2s_2s, "sqrdmulh v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2258eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_8h_8h_8h, "sqrdmulh v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2259eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrdmulh_4h_4h_4h, "sqrdmulh v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2260eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2261eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_d_d_d, "sqshl d1, d2, d4", 1, 2, 4)
2262eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_s_s_s, "sqshl s1, s2, s4", 1, 2, 4)
2263eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_h_h_h, "sqshl h1, h2, h4", 1, 2, 4)
2264eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_b_b_b, "sqshl b1, b2, b4", 1, 2, 4)
2265eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_2d_2d_2d,    "sqshl v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2266eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_4s_4s_4s,    "sqshl v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2267eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_2s_2s_2s,    "sqshl v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2268eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_8h_8h_8h,    "sqshl v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2269eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_4h_4h_4h,    "sqshl v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2270eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_16b_16b_16b, "sqshl v1.16b, v2.16b, v4.16b", 1, 2, 4)
2271eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqshl_8b_8b_8b,    "sqshl v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2272eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2273eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_d_d_d, "uqshl d1, d2, d4", 1, 2, 4)
2274eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_s_s_s, "uqshl s1, s2, s4", 1, 2, 4)
2275eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_h_h_h, "uqshl h1, h2, h4", 1, 2, 4)
2276eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_b_b_b, "uqshl b1, b2, b4", 1, 2, 4)
2277eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_2d_2d_2d,    "uqshl v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2278eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_4s_4s_4s,    "uqshl v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2279eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_2s_2s_2s,    "uqshl v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2280eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_8h_8h_8h,    "uqshl v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2281eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_4h_4h_4h,    "uqshl v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2282eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_16b_16b_16b, "uqshl v1.16b, v2.16b, v4.16b", 1, 2, 4)
2283eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqshl_8b_8b_8b,    "uqshl v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2284eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2285eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_d_d_d, "sqrshl d1, d2, d4", 1, 2, 4)
2286eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_s_s_s, "sqrshl s1, s2, s4", 1, 2, 4)
2287eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_h_h_h, "sqrshl h1, h2, h4", 1, 2, 4)
2288eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_b_b_b, "sqrshl b1, b2, b4", 1, 2, 4)
2289eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_2d_2d_2d,    "sqrshl v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2290eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_4s_4s_4s,    "sqrshl v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2291eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_2s_2s_2s,    "sqrshl v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2292eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_8h_8h_8h,    "sqrshl v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2293eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_4h_4h_4h,    "sqrshl v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2294eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_16b_16b_16b, "sqrshl v1.16b, v2.16b, v4.16b", 1, 2, 4)
2295eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sqrshl_8b_8b_8b,    "sqrshl v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2296eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2297eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_d_d_d, "uqrshl d1, d2, d4", 1, 2, 4)
2298eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_s_s_s, "uqrshl s1, s2, s4", 1, 2, 4)
2299eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_h_h_h, "uqrshl h1, h2, h4", 1, 2, 4)
2300eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_b_b_b, "uqrshl b1, b2, b4", 1, 2, 4)
2301eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_2d_2d_2d,    "uqrshl v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_4s_4s_4s,    "uqrshl v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_2s_2s_2s,    "uqrshl v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2304eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_8h_8h_8h,    "uqrshl v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2305eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_4h_4h_4h,    "uqrshl v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2306eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_16b_16b_16b, "uqrshl v1.16b, v2.16b, v4.16b", 1, 2, 4)
2307eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uqrshl_8b_8b_8b,    "uqrshl v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2308eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2309eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_s_d_1,  "sqrshrn s2, d5, #1",  2, 5)
2310eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_s_d_17, "sqrshrn s2, d5, #17", 2, 5)
2311eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_s_d_32, "sqrshrn s2, d5, #32", 2, 5)
2312eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_h_s_1,  "sqrshrn h2, s5, #1",  2, 5)
2313eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_h_s_9,  "sqrshrn h2, s5, #9",  2, 5)
2314eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_h_s_16, "sqrshrn h2, s5, #16", 2, 5)
2315eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_b_h_1,  "sqrshrn b2, h5, #1",  2, 5)
2316eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_b_h_4,  "sqrshrn b2, h5, #4",  2, 5)
2317eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_b_h_8,  "sqrshrn b2, h5, #8",  2, 5)
2318eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2319eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_s_d_1,  "uqrshrn s2, d5, #1",  2, 5)
2320eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_s_d_17, "uqrshrn s2, d5, #17", 2, 5)
2321eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_s_d_32, "uqrshrn s2, d5, #32", 2, 5)
2322eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_h_s_1,  "uqrshrn h2, s5, #1",  2, 5)
2323eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_h_s_9,  "uqrshrn h2, s5, #9",  2, 5)
2324eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_h_s_16, "uqrshrn h2, s5, #16", 2, 5)
2325eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_b_h_1,  "uqrshrn b2, h5, #1",  2, 5)
2326eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_b_h_4,  "uqrshrn b2, h5, #4",  2, 5)
2327eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_b_h_8,  "uqrshrn b2, h5, #8",  2, 5)
2328eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2329eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_s_d_1,  "sqshrn s2, d5, #1",  2, 5)
2330eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_s_d_17, "sqshrn s2, d5, #17", 2, 5)
2331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_s_d_32, "sqshrn s2, d5, #32", 2, 5)
2332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_h_s_1,  "sqshrn h2, s5, #1",  2, 5)
2333eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_h_s_9,  "sqshrn h2, s5, #9",  2, 5)
2334eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_h_s_16, "sqshrn h2, s5, #16", 2, 5)
2335eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_b_h_1,  "sqshrn b2, h5, #1",  2, 5)
2336eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_b_h_4,  "sqshrn b2, h5, #4",  2, 5)
2337eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_b_h_8,  "sqshrn b2, h5, #8",  2, 5)
2338eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2339eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_s_d_1,  "uqshrn s2, d5, #1",  2, 5)
2340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_s_d_17, "uqshrn s2, d5, #17", 2, 5)
2341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_s_d_32, "uqshrn s2, d5, #32", 2, 5)
2342eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_h_s_1,  "uqshrn h2, s5, #1",  2, 5)
2343eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_h_s_9,  "uqshrn h2, s5, #9",  2, 5)
2344eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_h_s_16, "uqshrn h2, s5, #16", 2, 5)
2345eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_b_h_1,  "uqshrn b2, h5, #1",  2, 5)
2346eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_b_h_4,  "uqshrn b2, h5, #4",  2, 5)
2347eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_b_h_8,  "uqshrn b2, h5, #8",  2, 5)
2348eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2349eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_s_d_1,  "sqrshrun s2, d5, #1",  2, 5)
2350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_s_d_17, "sqrshrun s2, d5, #17", 2, 5)
2351eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_s_d_32, "sqrshrun s2, d5, #32", 2, 5)
2352eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_h_s_1,  "sqrshrun h2, s5, #1",  2, 5)
2353eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_h_s_9,  "sqrshrun h2, s5, #9",  2, 5)
2354eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_h_s_16, "sqrshrun h2, s5, #16", 2, 5)
2355eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_b_h_1,  "sqrshrun b2, h5, #1",  2, 5)
2356eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_b_h_4,  "sqrshrun b2, h5, #4",  2, 5)
2357eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_b_h_8,  "sqrshrun b2, h5, #8",  2, 5)
2358eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2359eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_s_d_1,  "sqshrun s2, d5, #1",  2, 5)
2360eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_s_d_17, "sqshrun s2, d5, #17", 2, 5)
2361eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_s_d_32, "sqshrun s2, d5, #32", 2, 5)
2362eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_h_s_1,  "sqshrun h2, s5, #1",  2, 5)
2363eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_h_s_9,  "sqshrun h2, s5, #9",  2, 5)
2364eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_h_s_16, "sqshrun h2, s5, #16", 2, 5)
2365eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_b_h_1,  "sqshrun b2, h5, #1",  2, 5)
2366eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_b_h_4,  "sqshrun b2, h5, #4",  2, 5)
2367eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_b_h_8,  "sqshrun b2, h5, #8",  2, 5)
2368eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2369eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_2s_2d_1,   "sqrshrn  v4.2s,  v29.2d, #1",  4, 29)
2370eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_2s_2d_17,  "sqrshrn  v4.2s,  v29.2d, #17", 4, 29)
2371eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_2s_2d_32,  "sqrshrn  v4.2s,  v29.2d, #32", 4, 29)
2372eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_4s_2d_1,  "sqrshrn2 v4.4s,  v29.2d, #1",  4, 29)
2373eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_4s_2d_17, "sqrshrn2 v4.4s,  v29.2d, #17", 4, 29)
2374eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_4s_2d_32, "sqrshrn2 v4.4s,  v29.2d, #32", 4, 29)
2375eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_4h_4s_1,   "sqrshrn  v4.4h,  v29.4s, #1",  4, 29)
2376eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_4h_4s_9,   "sqrshrn  v4.4h,  v29.4s, #9",  4, 29)
2377eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_4h_4s_16,  "sqrshrn  v4.4h,  v29.4s, #16", 4, 29)
2378eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_8h_4s_1,  "sqrshrn2 v4.8h,  v29.4s, #1",  4, 29)
2379eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_8h_4s_9,  "sqrshrn2 v4.8h,  v29.4s, #9",  4, 29)
2380eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_8h_4s_16, "sqrshrn2 v4.8h,  v29.4s, #16", 4, 29)
2381eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_8b_8h_1,   "sqrshrn  v4.8b,  v29.8h, #1",  4, 29)
2382eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_8b_8h_4,   "sqrshrn  v4.8b,  v29.8h, #4",  4, 29)
2383eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn_8b_8h_8,   "sqrshrn  v4.8b,  v29.8h, #8",  4, 29)
2384eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_16b_8h_1, "sqrshrn2 v4.16b, v29.8h, #1",  4, 29)
2385eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_16b_8h_4, "sqrshrn2 v4.16b, v29.8h, #4",  4, 29)
2386eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrn2_16b_8h_8, "sqrshrn2 v4.16b, v29.8h, #8",  4, 29)
2387eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2388eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_2s_2d_1,   "uqrshrn  v4.2s,  v29.2d, #1",  4, 29)
2389eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_2s_2d_17,  "uqrshrn  v4.2s,  v29.2d, #17", 4, 29)
2390eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_2s_2d_32,  "uqrshrn  v4.2s,  v29.2d, #32", 4, 29)
2391eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_4s_2d_1,  "uqrshrn2 v4.4s,  v29.2d, #1",  4, 29)
2392eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_4s_2d_17, "uqrshrn2 v4.4s,  v29.2d, #17", 4, 29)
2393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_4s_2d_32, "uqrshrn2 v4.4s,  v29.2d, #32", 4, 29)
2394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_4h_4s_1,   "uqrshrn  v4.4h,  v29.4s, #1",  4, 29)
2395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_4h_4s_9,   "uqrshrn  v4.4h,  v29.4s, #9",  4, 29)
2396eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_4h_4s_16,  "uqrshrn  v4.4h,  v29.4s, #16", 4, 29)
2397eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_8h_4s_1,  "uqrshrn2 v4.8h,  v29.4s, #1",  4, 29)
2398eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_8h_4s_9,  "uqrshrn2 v4.8h,  v29.4s, #9",  4, 29)
2399eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_8h_4s_16, "uqrshrn2 v4.8h,  v29.4s, #16", 4, 29)
2400eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_8b_8h_1,   "uqrshrn  v4.8b,  v29.8h, #1",  4, 29)
2401eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_8b_8h_4,   "uqrshrn  v4.8b,  v29.8h, #4",  4, 29)
2402eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn_8b_8h_8,   "uqrshrn  v4.8b,  v29.8h, #8",  4, 29)
2403eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_16b_8h_1, "uqrshrn2 v4.16b, v29.8h, #1",  4, 29)
2404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_16b_8h_4, "uqrshrn2 v4.16b, v29.8h, #4",  4, 29)
2405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqrshrn2_16b_8h_8, "uqrshrn2 v4.16b, v29.8h, #8",  4, 29)
2406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2407eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_2s_2d_1,   "sqshrn  v4.2s,  v29.2d, #1",  4, 29)
2408eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_2s_2d_17,  "sqshrn  v4.2s,  v29.2d, #17", 4, 29)
2409eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_2s_2d_32,  "sqshrn  v4.2s,  v29.2d, #32", 4, 29)
2410eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_4s_2d_1,  "sqshrn2 v4.4s,  v29.2d, #1",  4, 29)
2411eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_4s_2d_17, "sqshrn2 v4.4s,  v29.2d, #17", 4, 29)
2412eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_4s_2d_32, "sqshrn2 v4.4s,  v29.2d, #32", 4, 29)
2413eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_4h_4s_1,   "sqshrn  v4.4h,  v29.4s, #1",  4, 29)
2414eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_4h_4s_9,   "sqshrn  v4.4h,  v29.4s, #9",  4, 29)
2415eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_4h_4s_16,  "sqshrn  v4.4h,  v29.4s, #16", 4, 29)
2416eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_8h_4s_1,  "sqshrn2 v4.8h,  v29.4s, #1",  4, 29)
2417eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_8h_4s_9,  "sqshrn2 v4.8h,  v29.4s, #9",  4, 29)
2418eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_8h_4s_16, "sqshrn2 v4.8h,  v29.4s, #16", 4, 29)
2419eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_8b_8h_1,   "sqshrn  v4.8b,  v29.8h, #1",  4, 29)
2420eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_8b_8h_4,   "sqshrn  v4.8b,  v29.8h, #4",  4, 29)
2421eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn_8b_8h_8,   "sqshrn  v4.8b,  v29.8h, #8",  4, 29)
2422eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_16b_8h_1, "sqshrn2 v4.16b, v29.8h, #1",  4, 29)
2423eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_16b_8h_4, "sqshrn2 v4.16b, v29.8h, #4",  4, 29)
2424eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrn2_16b_8h_8, "sqshrn2 v4.16b, v29.8h, #8",  4, 29)
2425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2426eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_2s_2d_1,   "uqshrn  v4.2s,  v29.2d, #1",  4, 29)
2427eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_2s_2d_17,  "uqshrn  v4.2s,  v29.2d, #17", 4, 29)
2428eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_2s_2d_32,  "uqshrn  v4.2s,  v29.2d, #32", 4, 29)
2429eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_4s_2d_1,  "uqshrn2 v4.4s,  v29.2d, #1",  4, 29)
2430eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_4s_2d_17, "uqshrn2 v4.4s,  v29.2d, #17", 4, 29)
2431eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_4s_2d_32, "uqshrn2 v4.4s,  v29.2d, #32", 4, 29)
2432eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_4h_4s_1,   "uqshrn  v4.4h,  v29.4s, #1",  4, 29)
2433eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_4h_4s_9,   "uqshrn  v4.4h,  v29.4s, #9",  4, 29)
2434eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_4h_4s_16,  "uqshrn  v4.4h,  v29.4s, #16", 4, 29)
2435eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_8h_4s_1,  "uqshrn2 v4.8h,  v29.4s, #1",  4, 29)
2436eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_8h_4s_9,  "uqshrn2 v4.8h,  v29.4s, #9",  4, 29)
2437eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_8h_4s_16, "uqshrn2 v4.8h,  v29.4s, #16", 4, 29)
2438eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_8b_8h_1,   "uqshrn  v4.8b,  v29.8h, #1",  4, 29)
2439eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_8b_8h_4,   "uqshrn  v4.8b,  v29.8h, #4",  4, 29)
2440eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn_8b_8h_8,   "uqshrn  v4.8b,  v29.8h, #8",  4, 29)
2441eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_16b_8h_1, "uqshrn2 v4.16b, v29.8h, #1",  4, 29)
2442eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_16b_8h_4, "uqshrn2 v4.16b, v29.8h, #4",  4, 29)
2443eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshrn2_16b_8h_8, "uqshrn2 v4.16b, v29.8h, #8",  4, 29)
2444eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2445eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_2s_2d_1,   "sqrshrun  v4.2s,  v29.2d, #1",  4, 29)
2446eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_2s_2d_17,  "sqrshrun  v4.2s,  v29.2d, #17", 4, 29)
2447eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_2s_2d_32,  "sqrshrun  v4.2s,  v29.2d, #32", 4, 29)
2448eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_4s_2d_1,  "sqrshrun2 v4.4s,  v29.2d, #1",  4, 29)
2449eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_4s_2d_17, "sqrshrun2 v4.4s,  v29.2d, #17", 4, 29)
2450eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_4s_2d_32, "sqrshrun2 v4.4s,  v29.2d, #32", 4, 29)
2451eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_4h_4s_1,   "sqrshrun  v4.4h,  v29.4s, #1",  4, 29)
2452eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_4h_4s_9,   "sqrshrun  v4.4h,  v29.4s, #9",  4, 29)
2453eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_4h_4s_16,  "sqrshrun  v4.4h,  v29.4s, #16", 4, 29)
2454eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_8h_4s_1,  "sqrshrun2 v4.8h,  v29.4s, #1",  4, 29)
2455eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_8h_4s_9,  "sqrshrun2 v4.8h,  v29.4s, #9",  4, 29)
2456eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_8h_4s_16, "sqrshrun2 v4.8h,  v29.4s, #16", 4, 29)
2457eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_8b_8h_1,   "sqrshrun  v4.8b,  v29.8h, #1",  4, 29)
2458eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_8b_8h_4,   "sqrshrun  v4.8b,  v29.8h, #4",  4, 29)
2459eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun_8b_8h_8,   "sqrshrun  v4.8b,  v29.8h, #8",  4, 29)
2460eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_16b_8h_1, "sqrshrun2 v4.16b, v29.8h, #1",  4, 29)
2461eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_16b_8h_4, "sqrshrun2 v4.16b, v29.8h, #4",  4, 29)
2462eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqrshrun2_16b_8h_8, "sqrshrun2 v4.16b, v29.8h, #8",  4, 29)
2463eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2464eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_2s_2d_1,   "sqshrun  v4.2s,  v29.2d, #1",  4, 29)
2465eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_2s_2d_17,  "sqshrun  v4.2s,  v29.2d, #17", 4, 29)
2466eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_2s_2d_32,  "sqshrun  v4.2s,  v29.2d, #32", 4, 29)
2467eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_4s_2d_1,  "sqshrun2 v4.4s,  v29.2d, #1",  4, 29)
2468eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_4s_2d_17, "sqshrun2 v4.4s,  v29.2d, #17", 4, 29)
2469eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_4s_2d_32, "sqshrun2 v4.4s,  v29.2d, #32", 4, 29)
2470eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_4h_4s_1,   "sqshrun  v4.4h,  v29.4s, #1",  4, 29)
2471eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_4h_4s_9,   "sqshrun  v4.4h,  v29.4s, #9",  4, 29)
2472eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_4h_4s_16,  "sqshrun  v4.4h,  v29.4s, #16", 4, 29)
2473eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_8h_4s_1,  "sqshrun2 v4.8h,  v29.4s, #1",  4, 29)
2474eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_8h_4s_9,  "sqshrun2 v4.8h,  v29.4s, #9",  4, 29)
2475eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_8h_4s_16, "sqshrun2 v4.8h,  v29.4s, #16", 4, 29)
2476eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_8b_8h_1,   "sqshrun  v4.8b,  v29.8h, #1",  4, 29)
2477eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_8b_8h_4,   "sqshrun  v4.8b,  v29.8h, #4",  4, 29)
2478eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun_8b_8h_8,   "sqshrun  v4.8b,  v29.8h, #8",  4, 29)
2479eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_16b_8h_1, "sqshrun2 v4.16b, v29.8h, #1",  4, 29)
2480eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_16b_8h_4, "sqshrun2 v4.16b, v29.8h, #4",  4, 29)
2481eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshrun2_16b_8h_8, "sqshrun2 v4.16b, v29.8h, #8",  4, 29)
2482eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2483eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_d_d_0,  "sqshl d5, d28, #0",  5, 28)
2484eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_d_d_32, "sqshl d5, d28, #32", 5, 28)
2485eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_d_d_63, "sqshl d5, d28, #63", 5, 28)
2486eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_s_s_0,  "sqshl s5, s28, #0",  5, 28)
2487eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_s_s_16, "sqshl s5, s28, #16", 5, 28)
2488eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_s_s_31, "sqshl s5, s28, #31", 5, 28)
2489eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_h_h_0,  "sqshl h5, h28, #0",  5, 28)
2490eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_h_h_8,  "sqshl h5, h28, #8",  5, 28)
2491eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_h_h_15, "sqshl h5, h28, #15", 5, 28)
2492eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_b_b_0,  "sqshl b5, b28, #0",  5, 28)
2493eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_b_b_4,  "sqshl b5, b28, #4",  5, 28)
2494eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_b_b_7,  "sqshl b5, b28, #7",  5, 28)
2495eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2496eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_d_d_0,  "uqshl d5, d28, #0",  5, 28)
2497eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_d_d_32, "uqshl d5, d28, #32", 5, 28)
2498eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_d_d_63, "uqshl d5, d28, #63", 5, 28)
2499eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_s_s_0,  "uqshl s5, s28, #0",  5, 28)
2500eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_s_s_16, "uqshl s5, s28, #16", 5, 28)
2501eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_s_s_31, "uqshl s5, s28, #31", 5, 28)
2502eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_h_h_0,  "uqshl h5, h28, #0",  5, 28)
2503eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_h_h_8,  "uqshl h5, h28, #8",  5, 28)
2504eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_h_h_15, "uqshl h5, h28, #15", 5, 28)
2505eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_b_b_0,  "uqshl b5, b28, #0",  5, 28)
2506eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_b_b_4,  "uqshl b5, b28, #4",  5, 28)
2507eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_b_b_7,  "uqshl b5, b28, #7",  5, 28)
2508eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2509eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_d_d_0,  "sqshlu d5, d28, #0",  5, 28)
2510eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_d_d_32, "sqshlu d5, d28, #32", 5, 28)
2511eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_d_d_63, "sqshlu d5, d28, #63", 5, 28)
2512eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_s_s_0,  "sqshlu s5, s28, #0",  5, 28)
2513eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_s_s_16, "sqshlu s5, s28, #16", 5, 28)
2514eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_s_s_31, "sqshlu s5, s28, #31", 5, 28)
2515eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_h_h_0,  "sqshlu h5, h28, #0",  5, 28)
2516eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_h_h_8,  "sqshlu h5, h28, #8",  5, 28)
2517eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_h_h_15, "sqshlu h5, h28, #15", 5, 28)
2518eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_b_b_0,  "sqshlu b5, b28, #0",  5, 28)
2519eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_b_b_4,  "sqshlu b5, b28, #4",  5, 28)
2520eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_b_b_7,  "sqshlu b5, b28, #7",  5, 28)
2521eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2522eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_2d_2d_0,   "sqshl v6.2d,  v27.2d, #0",  6, 27)
2523eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_2d_2d_32,  "sqshl v6.2d,  v27.2d, #32", 6, 27)
2524eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_2d_2d_63,  "sqshl v6.2d,  v27.2d, #63", 6, 27)
2525eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_4s_4s_0,   "sqshl v6.4s,  v27.4s, #0",  6, 27)
2526eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_4s_4s_16,  "sqshl v6.4s,  v27.4s, #16", 6, 27)
2527eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_4s_4s_31,  "sqshl v6.4s,  v27.4s, #31", 6, 27)
2528eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_2s_2s_0,   "sqshl v6.2s,  v27.2s, #0",  6, 27)
2529eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_2s_2s_16,  "sqshl v6.2s,  v27.2s, #16", 6, 27)
2530eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_2s_2s_31,  "sqshl v6.2s,  v27.2s, #31", 6, 27)
2531eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_8h_8h_0,   "sqshl v6.8h,  v27.8h, #0",  6, 27)
2532eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_8h_8h_8,   "sqshl v6.8h,  v27.8h, #8",  6, 27)
2533eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_8h_8h_15,  "sqshl v6.8h,  v27.8h, #15", 6, 27)
2534eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_4h_4h_0,   "sqshl v6.4h,  v27.4h, #0",  6, 27)
2535eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_4h_4h_8,   "sqshl v6.4h,  v27.4h, #8",  6, 27)
2536eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_4h_4h_15,  "sqshl v6.4h,  v27.4h, #15", 6, 27)
2537eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_16b_16b_0, "sqshl v6.16b, v27.16b, #0", 6, 27)
2538eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_16b_16b_3, "sqshl v6.16b, v27.16b, #3", 6, 27)
2539eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_16b_16b_7, "sqshl v6.16b, v27.16b, #7", 6, 27)
2540eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_8b_8b_0,   "sqshl v6.8b,  v27.8b, #0",  6, 27)
2541eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_8b_8b_3,   "sqshl v6.8b,  v27.8b, #3",  6, 27)
2542eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshl_8b_8b_7,   "sqshl v6.8b,  v27.8b, #7",  6, 27)
2543eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2544eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_2d_2d_0,   "uqshl v6.2d,  v27.2d, #0",  6, 27)
2545eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_2d_2d_32,  "uqshl v6.2d,  v27.2d, #32", 6, 27)
2546eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_2d_2d_63,  "uqshl v6.2d,  v27.2d, #63", 6, 27)
2547eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_4s_4s_0,   "uqshl v6.4s,  v27.4s, #0",  6, 27)
2548eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_4s_4s_16,  "uqshl v6.4s,  v27.4s, #16", 6, 27)
2549eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_4s_4s_31,  "uqshl v6.4s,  v27.4s, #31", 6, 27)
2550eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_2s_2s_0,   "uqshl v6.2s,  v27.2s, #0",  6, 27)
2551eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_2s_2s_16,  "uqshl v6.2s,  v27.2s, #16", 6, 27)
2552eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_2s_2s_31,  "uqshl v6.2s,  v27.2s, #31", 6, 27)
2553eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_8h_8h_0,   "uqshl v6.8h,  v27.8h, #0",  6, 27)
2554eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_8h_8h_8,   "uqshl v6.8h,  v27.8h, #8",  6, 27)
2555eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_8h_8h_15,  "uqshl v6.8h,  v27.8h, #15", 6, 27)
2556eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_4h_4h_0,   "uqshl v6.4h,  v27.4h, #0",  6, 27)
2557eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_4h_4h_8,   "uqshl v6.4h,  v27.4h, #8",  6, 27)
2558eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_4h_4h_15,  "uqshl v6.4h,  v27.4h, #15", 6, 27)
2559eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_16b_16b_0, "uqshl v6.16b, v27.16b, #0", 6, 27)
2560eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_16b_16b_3, "uqshl v6.16b, v27.16b, #3", 6, 27)
2561eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_16b_16b_7, "uqshl v6.16b, v27.16b, #7", 6, 27)
2562eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_8b_8b_0,   "uqshl v6.8b,  v27.8b, #0",  6, 27)
2563eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_8b_8b_3,   "uqshl v6.8b,  v27.8b, #3",  6, 27)
2564eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqshl_8b_8b_7,   "uqshl v6.8b,  v27.8b, #7",  6, 27)
2565eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2566eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_2d_2d_0,   "sqshlu v6.2d,  v27.2d, #0",  6, 27)
2567eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_2d_2d_32,  "sqshlu v6.2d,  v27.2d, #32", 6, 27)
2568eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_2d_2d_63,  "sqshlu v6.2d,  v27.2d, #63", 6, 27)
2569eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_4s_4s_0,   "sqshlu v6.4s,  v27.4s, #0",  6, 27)
2570eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_4s_4s_16,  "sqshlu v6.4s,  v27.4s, #16", 6, 27)
2571eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_4s_4s_31,  "sqshlu v6.4s,  v27.4s, #31", 6, 27)
2572eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_2s_2s_0,   "sqshlu v6.2s,  v27.2s, #0",  6, 27)
2573eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_2s_2s_16,  "sqshlu v6.2s,  v27.2s, #16", 6, 27)
2574eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_2s_2s_31,  "sqshlu v6.2s,  v27.2s, #31", 6, 27)
2575eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_8h_8h_0,   "sqshlu v6.8h,  v27.8h, #0",  6, 27)
2576eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_8h_8h_8,   "sqshlu v6.8h,  v27.8h, #8",  6, 27)
2577eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_8h_8h_15,  "sqshlu v6.8h,  v27.8h, #15", 6, 27)
2578eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_4h_4h_0,   "sqshlu v6.4h,  v27.4h, #0",  6, 27)
2579eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_4h_4h_8,   "sqshlu v6.4h,  v27.4h, #8",  6, 27)
2580eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_4h_4h_15,  "sqshlu v6.4h,  v27.4h, #15", 6, 27)
2581eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_16b_16b_0, "sqshlu v6.16b, v27.16b, #0", 6, 27)
2582eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_16b_16b_3, "sqshlu v6.16b, v27.16b, #3", 6, 27)
2583eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_16b_16b_7, "sqshlu v6.16b, v27.16b, #7", 6, 27)
2584eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_8b_8b_0,   "sqshlu v6.8b,  v27.8b, #0",  6, 27)
2585eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_8b_8b_3,   "sqshlu v6.8b,  v27.8b, #3",  6, 27)
2586eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqshlu_8b_8b_7,   "sqshlu v6.8b,  v27.8b, #7",  6, 27)
2587eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2588eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqxtn_s_d,  "sqxtn s31,  d0", 31, 0)
2589eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqxtn_h_s,  "sqxtn h31,  s0", 31, 0)
2590eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqxtn_b_h,  "sqxtn b31,  h0", 31, 0)
2591eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqxtn_s_d,  "uqxtn s31,  d0", 31, 0)
2592eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqxtn_h_s,  "uqxtn h31,  s0", 31, 0)
2593eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(uqxtn_b_h,  "uqxtn b31,  h0", 31, 0)
2594eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqxtun_s_d, "sqxtun s31, d0", 31, 0)
2595eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqxtun_h_s, "sqxtun h31, s0", 31, 0)
2596eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sqxtun_b_h, "sqxtun b31, h0", 31, 0)
2597eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2598eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtn,   2s, 2d)
2599eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtn2,  4s, 2d)
2600eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtn,   4h, 4s)
2601eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtn2,  8h, 4s)
2602eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtn,   8b, 8h)
2603eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtn2, 16b, 8h)
2604eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2605eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(uqxtn,   2s, 2d)
2606eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(uqxtn2,  4s, 2d)
2607eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(uqxtn,   4h, 4s)
2608eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(uqxtn2,  8h, 4s)
2609eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(uqxtn,   8b, 8h)
2610eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(uqxtn2, 16b, 8h)
2611eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2612eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtun,   2s, 2d)
2613eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtun2,  4s, 2d)
2614eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtun,   4h, 4s)
2615eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtun2,  8h, 4s)
2616eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtun,   8b, 8h)
2617eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_UNARY_TEST(sqxtun2, 16b, 8h)
2618eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2619eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srhadd_4s_4s_4s,"srhadd v2.4s,  v11.4s,  v29.4s", 2, 11, 29)
2620eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srhadd_2s_2s_2s,"srhadd v2.2s,  v11.2s,  v29.2s", 2, 11, 29)
2621eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srhadd_8h_8h_8h,"srhadd v2.8h,  v11.8h,  v29.8h", 2, 11, 29)
2622eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srhadd_4h_4h_4h,"srhadd v2.4h,  v11.4h,  v29.4h", 2, 11, 29)
2623eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srhadd_16b_16b_16b,
2624eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                  "srhadd v2.16b, v11.16b, v29.16b", 2, 11, 29)
2625eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srhadd_8b_8b_8b,"srhadd v2.8b,  v11.8b,  v29.8b", 2, 11, 29)
2626eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2627eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urhadd_4s_4s_4s,"urhadd v2.4s,  v11.4s,  v29.4s", 2, 11, 29)
2628eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urhadd_2s_2s_2s,"urhadd v2.2s,  v11.2s,  v29.2s", 2, 11, 29)
2629eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urhadd_8h_8h_8h,"urhadd v2.8h,  v11.8h,  v29.8h", 2, 11, 29)
2630eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urhadd_4h_4h_4h,"urhadd v2.4h,  v11.4h,  v29.4h", 2, 11, 29)
2631eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urhadd_16b_16b_16b,
2632eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov                                  "urhadd v2.16b, v11.16b, v29.16b", 2, 11, 29)
2633eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urhadd_8b_8b_8b,"urhadd v2.8b,  v11.8b,  v29.8b", 2, 11, 29)
2634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_d_d_d, "sshl d29, d28, d27", 29, 28, 27)
2636eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_d_d_d, "ushl d29, d28, d27", 29, 28, 27)
2637eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2638eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_2d_2d_2d,    "sshl v29.2d, v28.2d, v27.2d", 29,28,27)
2639eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_4s_4s_4s,    "sshl v29.4s, v28.4s, v27.4s", 29,28,27)
2640eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_2s_2s_2s,    "sshl v29.2s, v28.2s, v27.2s", 29,28,27)
2641eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_8h_8h_8h,    "sshl v29.8h, v28.8h, v27.8h", 29,28,27)
2642eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_4h_4h_4h,    "sshl v29.4h, v28.4h, v27.4h", 29,28,27)
2643eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_16b_16b_16b, "sshl v29.16b, v28.16b, v27.16b", 29,28,27)
2644eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(sshl_8b_8b_8b,    "sshl v29.8b, v28.8b, v27.8b", 29,28,27)
2645eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2646eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_2d_2d_2d,    "ushl v29.2d, v28.2d, v27.2d", 29,28,27)
2647eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_4s_4s_4s,    "ushl v29.4s, v28.4s, v27.4s", 29,28,27)
2648eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_2s_2s_2s,    "ushl v29.2s, v28.2s, v27.2s", 29,28,27)
2649eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_8h_8h_8h,    "ushl v29.8h, v28.8h, v27.8h", 29,28,27)
2650eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_4h_4h_4h,    "ushl v29.4h, v28.4h, v27.4h", 29,28,27)
2651eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_16b_16b_16b, "ushl v29.16b, v28.16b, v27.16b", 29,28,27)
2652eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(ushl_8b_8b_8b,    "ushl v29.8b, v28.8b, v27.8b", 29,28,27)
2653eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2654eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shl_d_d_0,  "shl d5, d28, #0",  5, 28)
2655eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shl_d_d_32, "shl d5, d28, #32", 5, 28)
2656eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(shl_d_d_63, "shl d5, d28, #63", 5, 28)
2657eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2658eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sshr_d_d_1,  "sshr d5, d28, #1",  5, 28)
2659eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sshr_d_d_32, "sshr d5, d28, #32", 5, 28)
2660eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(sshr_d_d_64, "sshr d5, d28, #64", 5, 28)
2661eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2662eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ushr_d_d_1,  "ushr d5, d28, #1",  5, 28)
2663eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ushr_d_d_32, "ushr d5, d28, #32", 5, 28)
2664eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ushr_d_d_64, "ushr d5, d28, #64", 5, 28)
2665eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2666eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_d_d_1,  "ssra d5, d28, #1",  5, 28)
2667eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_d_d_32, "ssra d5, d28, #32", 5, 28)
2668eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_d_d_64, "ssra d5, d28, #64", 5, 28)
2669eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2670eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_d_d_1,  "usra d5, d28, #1",  5, 28)
2671eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_d_d_32, "usra d5, d28, #32", 5, 28)
2672eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_d_d_64, "usra d5, d28, #64", 5, 28)
2673eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2674eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_2d_2d_1,   "ssra v6.2d,  v27.2d, #1",  6, 27)
2675eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_2d_2d_32,  "ssra v6.2d,  v27.2d, #32", 6, 27)
2676eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_2d_2d_64,  "ssra v6.2d,  v27.2d, #64", 6, 27)
2677eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_4s_4s_1,   "ssra v6.4s,  v27.4s, #1",  6, 27)
2678eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_4s_4s_16,  "ssra v6.4s,  v27.4s, #16", 6, 27)
2679eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_4s_4s_32,  "ssra v6.4s,  v27.4s, #32", 6, 27)
2680eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_2s_2s_1,   "ssra v6.2s,  v27.2s, #1",  6, 27)
2681eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_2s_2s_16,  "ssra v6.2s,  v27.2s, #16", 6, 27)
2682eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_2s_2s_32,  "ssra v6.2s,  v27.2s, #32", 6, 27)
2683eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_8h_8h_1,   "ssra v6.8h,  v27.8h, #1",  6, 27)
2684eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_8h_8h_8,   "ssra v6.8h,  v27.8h, #8",  6, 27)
2685eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_8h_8h_16,  "ssra v6.8h,  v27.8h, #16", 6, 27)
2686eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_4h_4h_1,   "ssra v6.4h,  v27.4h, #1",  6, 27)
2687eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_4h_4h_8,   "ssra v6.4h,  v27.4h, #8",  6, 27)
2688eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_4h_4h_16,  "ssra v6.4h,  v27.4h, #16", 6, 27)
2689eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_16b_16b_1, "ssra v6.16b, v27.16b, #1", 6, 27)
2690eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_16b_16b_3, "ssra v6.16b, v27.16b, #3", 6, 27)
2691eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_16b_16b_8, "ssra v6.16b, v27.16b, #8", 6, 27)
2692eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_8b_8b_1,   "ssra v6.8b,  v27.8b, #1",  6, 27)
2693eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_8b_8b_3,   "ssra v6.8b,  v27.8b, #3",  6, 27)
2694eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ssra_8b_8b_8,   "ssra v6.8b,  v27.8b, #8",  6, 27)
2695eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2696eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_2d_2d_1,   "usra v6.2d,  v27.2d, #1",  6, 27)
2697eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_2d_2d_32,  "usra v6.2d,  v27.2d, #32", 6, 27)
2698eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_2d_2d_64,  "usra v6.2d,  v27.2d, #64", 6, 27)
2699eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_4s_4s_1,   "usra v6.4s,  v27.4s, #1",  6, 27)
2700eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_4s_4s_16,  "usra v6.4s,  v27.4s, #16", 6, 27)
2701eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_4s_4s_32,  "usra v6.4s,  v27.4s, #32", 6, 27)
2702eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_2s_2s_1,   "usra v6.2s,  v27.2s, #1",  6, 27)
2703eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_2s_2s_16,  "usra v6.2s,  v27.2s, #16", 6, 27)
2704eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_2s_2s_32,  "usra v6.2s,  v27.2s, #32", 6, 27)
2705eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_8h_8h_1,   "usra v6.8h,  v27.8h, #1",  6, 27)
2706eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_8h_8h_8,   "usra v6.8h,  v27.8h, #8",  6, 27)
2707eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_8h_8h_16,  "usra v6.8h,  v27.8h, #16", 6, 27)
2708eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_4h_4h_1,   "usra v6.4h,  v27.4h, #1",  6, 27)
2709eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_4h_4h_8,   "usra v6.4h,  v27.4h, #8",  6, 27)
2710eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_4h_4h_16,  "usra v6.4h,  v27.4h, #16", 6, 27)
2711eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_16b_16b_1, "usra v6.16b, v27.16b, #1", 6, 27)
2712eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_16b_16b_3, "usra v6.16b, v27.16b, #3", 6, 27)
2713eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_16b_16b_8, "usra v6.16b, v27.16b, #8", 6, 27)
2714eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_8b_8b_1,   "usra v6.8b,  v27.8b, #1",  6, 27)
2715eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_8b_8b_3,   "usra v6.8b,  v27.8b, #3",  6, 27)
2716eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usra_8b_8b_8,   "usra v6.8b,  v27.8b, #8",  6, 27)
2717eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2718eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_d_d_d, "srshl d29, d28, d27", 29, 28, 27)
2719eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_d_d_d, "urshl d29, d28, d27", 29, 28, 27)
2720eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2721eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_2d_2d_2d,   "srshl v29.2d, v28.2d, v27.2d", 29,28,27)
2722eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_4s_4s_4s,   "srshl v29.4s, v28.4s, v27.4s", 29,28,27)
2723eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_2s_2s_2s,   "srshl v29.2s, v28.2s, v27.2s", 29,28,27)
2724eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_8h_8h_8h,   "srshl v29.8h, v28.8h, v27.8h", 29,28,27)
2725eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_4h_4h_4h,   "srshl v29.4h, v28.4h, v27.4h", 29,28,27)
2726eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_16b_16b_16b,"srshl v29.16b, v28.16b, v27.16b", 29,28,27)
2727eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(srshl_8b_8b_8b,   "srshl v29.8b, v28.8b, v27.8b", 29,28,27)
2728eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2729eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_2d_2d_2d,   "urshl v29.2d, v28.2d, v27.2d", 29,28,27)
2730eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_4s_4s_4s,   "urshl v29.4s, v28.4s, v27.4s", 29,28,27)
2731eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_2s_2s_2s,   "urshl v29.2s, v28.2s, v27.2s", 29,28,27)
2732eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_8h_8h_8h,   "urshl v29.8h, v28.8h, v27.8h", 29,28,27)
2733eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_4h_4h_4h,   "urshl v29.4h, v28.4h, v27.4h", 29,28,27)
2734eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_16b_16b_16b,"urshl v29.16b, v28.16b, v27.16b", 29,28,27)
2735eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(urshl_8b_8b_8b,   "urshl v29.8b, v28.8b, v27.8b", 29,28,27)
2736eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2737eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_d_d_1,  "srshr d5, d28, #1",  5, 28)
2738eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_d_d_32, "srshr d5, d28, #32", 5, 28)
2739eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_d_d_64, "srshr d5, d28, #64", 5, 28)
2740eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2741eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_d_d_1,  "urshr d5, d28, #1",  5, 28)
2742eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_d_d_32, "urshr d5, d28, #32", 5, 28)
2743eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_d_d_64, "urshr d5, d28, #64", 5, 28)
2744eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2745eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_2d_2d_1,   "srshr v6.2d,  v27.2d, #1",  6, 27)
2746eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_2d_2d_32,  "srshr v6.2d,  v27.2d, #32", 6, 27)
2747eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_2d_2d_64,  "srshr v6.2d,  v27.2d, #64", 6, 27)
2748eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_4s_4s_1,   "srshr v6.4s,  v27.4s, #1",  6, 27)
2749eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_4s_4s_16,  "srshr v6.4s,  v27.4s, #16", 6, 27)
2750eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_4s_4s_32,  "srshr v6.4s,  v27.4s, #32", 6, 27)
2751eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_2s_2s_1,   "srshr v6.2s,  v27.2s, #1",  6, 27)
2752eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_2s_2s_16,  "srshr v6.2s,  v27.2s, #16", 6, 27)
2753eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_2s_2s_32,  "srshr v6.2s,  v27.2s, #32", 6, 27)
2754eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_8h_8h_1,   "srshr v6.8h,  v27.8h, #1",  6, 27)
2755eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_8h_8h_8,   "srshr v6.8h,  v27.8h, #8",  6, 27)
2756eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_8h_8h_16,  "srshr v6.8h,  v27.8h, #16", 6, 27)
2757eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_4h_4h_1,   "srshr v6.4h,  v27.4h, #1",  6, 27)
2758eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_4h_4h_8,   "srshr v6.4h,  v27.4h, #8",  6, 27)
2759eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_4h_4h_16,  "srshr v6.4h,  v27.4h, #16", 6, 27)
2760eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_16b_16b_1, "srshr v6.16b, v27.16b, #1", 6, 27)
2761eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_16b_16b_3, "srshr v6.16b, v27.16b, #3", 6, 27)
2762eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_16b_16b_8, "srshr v6.16b, v27.16b, #8", 6, 27)
2763eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_8b_8b_1,   "srshr v6.8b,  v27.8b, #1",  6, 27)
2764eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_8b_8b_3,   "srshr v6.8b,  v27.8b, #3",  6, 27)
2765eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srshr_8b_8b_8,   "srshr v6.8b,  v27.8b, #8",  6, 27)
2766eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2767eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_2d_2d_1,   "urshr v6.2d,  v27.2d, #1",  6, 27)
2768eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_2d_2d_32,  "urshr v6.2d,  v27.2d, #32", 6, 27)
2769eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_2d_2d_64,  "urshr v6.2d,  v27.2d, #64", 6, 27)
2770eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_4s_4s_1,   "urshr v6.4s,  v27.4s, #1",  6, 27)
2771eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_4s_4s_16,  "urshr v6.4s,  v27.4s, #16", 6, 27)
2772eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_4s_4s_32,  "urshr v6.4s,  v27.4s, #32", 6, 27)
2773eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_2s_2s_1,   "urshr v6.2s,  v27.2s, #1",  6, 27)
2774eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_2s_2s_16,  "urshr v6.2s,  v27.2s, #16", 6, 27)
2775eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_2s_2s_32,  "urshr v6.2s,  v27.2s, #32", 6, 27)
2776eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_8h_8h_1,   "urshr v6.8h,  v27.8h, #1",  6, 27)
2777eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_8h_8h_8,   "urshr v6.8h,  v27.8h, #8",  6, 27)
2778eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_8h_8h_16,  "urshr v6.8h,  v27.8h, #16", 6, 27)
2779eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_4h_4h_1,   "urshr v6.4h,  v27.4h, #1",  6, 27)
2780eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_4h_4h_8,   "urshr v6.4h,  v27.4h, #8",  6, 27)
2781eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_4h_4h_16,  "urshr v6.4h,  v27.4h, #16", 6, 27)
2782eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_16b_16b_1, "urshr v6.16b, v27.16b, #1", 6, 27)
2783eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_16b_16b_3, "urshr v6.16b, v27.16b, #3", 6, 27)
2784eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_16b_16b_8, "urshr v6.16b, v27.16b, #8", 6, 27)
2785eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_8b_8b_1,   "urshr v6.8b,  v27.8b, #1",  6, 27)
2786eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_8b_8b_3,   "urshr v6.8b,  v27.8b, #3",  6, 27)
2787eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urshr_8b_8b_8,   "urshr v6.8b,  v27.8b, #8",  6, 27)
2788eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2789eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_d_d_1,  "srsra d5, d28, #1",  5, 28)
2790eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_d_d_32, "srsra d5, d28, #32", 5, 28)
2791eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_d_d_64, "srsra d5, d28, #64", 5, 28)
2792eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2793eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_d_d_1,  "ursra d5, d28, #1",  5, 28)
2794eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_d_d_32, "ursra d5, d28, #32", 5, 28)
2795eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_d_d_64, "ursra d5, d28, #64", 5, 28)
2796eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2797eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_2d_2d_1,   "srsra v6.2d,  v27.2d, #1",  6, 27)
2798eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_2d_2d_32,  "srsra v6.2d,  v27.2d, #32", 6, 27)
2799eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_2d_2d_64,  "srsra v6.2d,  v27.2d, #64", 6, 27)
2800eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_4s_4s_1,   "srsra v6.4s,  v27.4s, #1",  6, 27)
2801eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_4s_4s_16,  "srsra v6.4s,  v27.4s, #16", 6, 27)
2802eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_4s_4s_32,  "srsra v6.4s,  v27.4s, #32", 6, 27)
2803eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_2s_2s_1,   "srsra v6.2s,  v27.2s, #1",  6, 27)
2804eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_2s_2s_16,  "srsra v6.2s,  v27.2s, #16", 6, 27)
2805eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_2s_2s_32,  "srsra v6.2s,  v27.2s, #32", 6, 27)
2806eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_8h_8h_1,   "srsra v6.8h,  v27.8h, #1",  6, 27)
2807eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_8h_8h_8,   "srsra v6.8h,  v27.8h, #8",  6, 27)
2808eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_8h_8h_16,  "srsra v6.8h,  v27.8h, #16", 6, 27)
2809eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_4h_4h_1,   "srsra v6.4h,  v27.4h, #1",  6, 27)
2810eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_4h_4h_8,   "srsra v6.4h,  v27.4h, #8",  6, 27)
2811eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_4h_4h_16,  "srsra v6.4h,  v27.4h, #16", 6, 27)
2812eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_16b_16b_1, "srsra v6.16b, v27.16b, #1", 6, 27)
2813eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_16b_16b_3, "srsra v6.16b, v27.16b, #3", 6, 27)
2814eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_16b_16b_8, "srsra v6.16b, v27.16b, #8", 6, 27)
2815eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_8b_8b_1,   "srsra v6.8b,  v27.8b, #1",  6, 27)
2816eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_8b_8b_3,   "srsra v6.8b,  v27.8b, #3",  6, 27)
2817eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(srsra_8b_8b_8,   "srsra v6.8b,  v27.8b, #8",  6, 27)
2818eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2819eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_2d_2d_1,   "ursra v6.2d,  v27.2d, #1",  6, 27)
2820eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_2d_2d_32,  "ursra v6.2d,  v27.2d, #32", 6, 27)
2821eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_2d_2d_64,  "ursra v6.2d,  v27.2d, #64", 6, 27)
2822eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_4s_4s_1,   "ursra v6.4s,  v27.4s, #1",  6, 27)
2823eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_4s_4s_16,  "ursra v6.4s,  v27.4s, #16", 6, 27)
2824eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_4s_4s_32,  "ursra v6.4s,  v27.4s, #32", 6, 27)
2825eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_2s_2s_1,   "ursra v6.2s,  v27.2s, #1",  6, 27)
2826eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_2s_2s_16,  "ursra v6.2s,  v27.2s, #16", 6, 27)
2827eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_2s_2s_32,  "ursra v6.2s,  v27.2s, #32", 6, 27)
2828eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_8h_8h_1,   "ursra v6.8h,  v27.8h, #1",  6, 27)
2829eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_8h_8h_8,   "ursra v6.8h,  v27.8h, #8",  6, 27)
2830eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_8h_8h_16,  "ursra v6.8h,  v27.8h, #16", 6, 27)
2831eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_4h_4h_1,   "ursra v6.4h,  v27.4h, #1",  6, 27)
2832eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_4h_4h_8,   "ursra v6.4h,  v27.4h, #8",  6, 27)
2833eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_4h_4h_16,  "ursra v6.4h,  v27.4h, #16", 6, 27)
2834eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_16b_16b_1, "ursra v6.16b, v27.16b, #1", 6, 27)
2835eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_16b_16b_3, "ursra v6.16b, v27.16b, #3", 6, 27)
2836eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_16b_16b_8, "ursra v6.16b, v27.16b, #8", 6, 27)
2837eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_8b_8b_1,   "ursra v6.8b,  v27.8b, #1",  6, 27)
2838eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_8b_8b_3,   "ursra v6.8b,  v27.8b, #3",  6, 27)
2839eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursra_8b_8b_8,   "ursra v6.8b,  v27.8b, #8",  6, 27)
2840eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2841eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_d_d,  "suqadd d22, d23",   22, 23)
2842eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_s_s,  "suqadd s22, s23",   22, 23)
2843eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_h_h,  "suqadd h22, h23",   22, 23)
2844eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_b_b,  "suqadd b22, b23",   22, 23)
2845eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2846eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_2d_2d,   "suqadd v6.2d,  v27.2d",  6, 27)
2847eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_4s_4s,   "suqadd v6.4s,  v27.4s",  6, 27)
2848eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_2s_2s,   "suqadd v6.2s,  v27.2s",  6, 27)
2849eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_8h_8h,   "suqadd v6.8h,  v27.8h",  6, 27)
2850eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_4h_4h,   "suqadd v6.4h,  v27.4h",  6, 27)
2851eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_16b_16b, "suqadd v6.16b, v27.16b", 6, 27)
2852eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(suqadd_8b_8b,   "suqadd v6.8b,  v27.8b",  6, 27)
2853eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2854eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_d_d,  "usqadd d22, d23",   22, 23)
2855eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_s_s,  "usqadd s22, s23",   22, 23)
2856eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_h_h,  "usqadd h22, h23",   22, 23)
2857eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_b_b,  "usqadd b22, b23",   22, 23)
2858eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2859eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_2d_2d,   "usqadd v6.2d,  v27.2d",  6, 27)
2860eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_4s_4s,   "usqadd v6.4s,  v27.4s",  6, 27)
2861eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_2s_2s,   "usqadd v6.2s,  v27.2s",  6, 27)
2862eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_8h_8h,   "usqadd v6.8h,  v27.8h",  6, 27)
2863eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_4h_4h,   "usqadd v6.4h,  v27.4h",  6, 27)
2864eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_16b_16b, "usqadd v6.16b, v27.16b", 6, 27)
2865eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(usqadd_8b_8b,   "usqadd v6.8b,  v27.8b",  6, 27)
2866eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2867eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_2d_2d_2d,    "trn1 v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2868eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_4s_4s_4s,    "trn1 v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2869eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_2s_2s_2s,    "trn1 v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2870eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_8h_8h_8h,    "trn1 v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2871eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_4h_4h_4h,    "trn1 v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2872eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_16b_16b_16b, "trn1 v1.16b, v2.16b, v4.16b", 1, 2, 4)
2873eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn1_8b_8b_8b,    "trn1 v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2874eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2875eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_2d_2d_2d,    "trn2 v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2876eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_4s_4s_4s,    "trn2 v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2877eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_2s_2s_2s,    "trn2 v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2878eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_8h_8h_8h,    "trn2 v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2879eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_4h_4h_4h,    "trn2 v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2880eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_16b_16b_16b, "trn2 v1.16b, v2.16b, v4.16b", 1, 2, 4)
2881eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(trn2_8b_8b_8b,    "trn2 v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2882eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2883eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_2d_2d_2d,    "uzp1 v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2884eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_4s_4s_4s,    "uzp1 v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2885eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_2s_2s_2s,    "uzp1 v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2886eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_8h_8h_8h,    "uzp1 v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2887eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_4h_4h_4h,    "uzp1 v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2888eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_16b_16b_16b, "uzp1 v1.16b, v2.16b, v4.16b", 1, 2, 4)
2889eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp1_8b_8b_8b,    "uzp1 v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2890eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2891eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_2d_2d_2d,    "uzp2 v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2892eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_4s_4s_4s,    "uzp2 v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2893eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_2s_2s_2s,    "uzp2 v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2894eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_8h_8h_8h,    "uzp2 v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2895eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_4h_4h_4h,    "uzp2 v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2896eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_16b_16b_16b, "uzp2 v1.16b, v2.16b, v4.16b", 1, 2, 4)
2897eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(uzp2_8b_8b_8b,    "uzp2 v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2898eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2899eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_2d_2d_2d,    "zip1 v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2900eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_4s_4s_4s,    "zip1 v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2901eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_2s_2s_2s,    "zip1 v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2902eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_8h_8h_8h,    "zip1 v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2903eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_4h_4h_4h,    "zip1 v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2904eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_16b_16b_16b, "zip1 v1.16b, v2.16b, v4.16b", 1, 2, 4)
2905eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip1_8b_8b_8b,    "zip1 v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2906eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2907eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_2d_2d_2d,    "zip2 v1.2d,  v2.2d,  v4.2d",  1, 2, 4)
2908eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_4s_4s_4s,    "zip2 v1.4s,  v2.4s,  v4.4s",  1, 2, 4)
2909eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_2s_2s_2s,    "zip2 v1.2s,  v2.2s,  v4.2s",  1, 2, 4)
2910eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_8h_8h_8h,    "zip2 v1.8h,  v2.8h,  v4.8h",  1, 2, 4)
2911eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_4h_4h_4h,    "zip2 v1.4h,  v2.4h,  v4.4h",  1, 2, 4)
2912eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_16b_16b_16b, "zip2 v1.16b, v2.16b, v4.16b", 1, 2, 4)
2913eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_THREEVEC_TEST(zip2_8b_8b_8b,    "zip2 v1.8b,  v2.8b,  v4.8b",  1, 2, 4)
2914eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2915eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urecpe_4s_4s,   "urecpe v6.4s,  v27.4s",  6, 27)
2916eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(urecpe_2s_2s,   "urecpe v6.2s,  v27.2s",  6, 27)
2917eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2918eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursqrte_4s_4s,   "ursqrte v6.4s,  v27.4s",  6, 27)
2919eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy IvanovGEN_TWOVEC_TEST(ursqrte_2s_2s,   "ursqrte v6.2s,  v27.2s",  6, 27)
2920eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2921eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2922eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
2923eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* -- main()                                                     -- */
2924eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
2925eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2926eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanovint main ( void )
2927eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov{
2928eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   assert(sizeof(V128) == 16);
2929eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2930eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ======================== FP ========================
2931eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2932eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fabs      d,s
2933eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fabs      2d,4s,2s
2934b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabs_d_d(TyDF);
2935b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabs_s_s(TySF);
2936b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabs_2d_2d(TyDF);
2937b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabs_4s_4s(TySF);
2938b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabs_2s_2s(TyDF);
2939b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fneg_2d_2d(TySF);
2940b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fneg_4s_4s(TyDF);
2941b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fneg_2s_2s(TySF);
2942eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2943eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fneg      d,s
2944eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fneg      2d,4s,2s
2945b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fneg_d_d(TyDF);
2946b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fneg_s_s(TySF);
2947eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2948eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fsqrt     d,s
2949eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fsqrt     2d,4s,2s
2950b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsqrt_d_d(TyDF);
2951b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsqrt_s_s(TySF);
2952eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2953eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fadd      d,s
2954eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fsub      d,s
2955b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fadd_d_d_d(TyDF);
2956b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fadd_s_s_s(TySF);
2957b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsub_d_d_d(TyDF);
2958b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsub_s_s_s(TySF);
2959eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2960eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fadd      2d,4s,2s
2961eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fsub      2d,4s,2s
2962b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fadd_2d_2d_2d(TyDF);
2963b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fadd_4s_4s_4s(TySF);
2964b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fadd_2s_2s_2s(TySF);
2965b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsub_2d_2d_2d(TyDF);
2966b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsub_4s_4s_4s(TySF);
2967b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fsub_2s_2s_2s(TySF);
2968eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2969eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fabd      d,s
2970eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fabd      2d,4s,2s
2971b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabd_d_d_d(TyDF);
2972b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabd_s_s_s(TySF);
2973b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabd_2d_2d_2d(TyDF);
2974b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabd_4s_4s_4s(TySF);
2975b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fabd_2s_2s_2s(TySF);
2976eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2977eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // faddp     d,s (floating add pair)
2978eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // faddp     2d,4s,2s
2979eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2980eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fccmp     d,s (floating point conditional quiet compare)
2981eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fccmpe    d,s (floating point conditional signaling compare)
2982eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2983eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmeq     d,s
2984eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmge     d,s
2985eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmgt     d,s
2986eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // facgt     d,s  (floating abs compare GE)
2987eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // facge     d,s  (floating abs compare GE)
2988eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
2989eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmeq     2d,4s,2s
2990eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmge     2d,4s,2s
2991eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmgt     2d,4s,2s
2992eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // facge     2d,4s,2s
2993eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // facgt     2d,4s,2s
2994b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmeq_2d_2d_2d(TyDF);
2995b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmeq_4s_4s_4s(TySF);
2996b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmeq_2s_2s_2s(TySF);
2997b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmge_2d_2d_2d(TyDF);
2998b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmge_4s_4s_4s(TySF);
2999b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmge_2s_2s_2s(TySF);
3000b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmgt_2d_2d_2d(TyDF);
3001b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmgt_4s_4s_4s(TySF);
3002b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcmgt_2s_2s_2s(TySF);
3003b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_facge_2d_2d_2d(TyDF);
3004b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_facge_4s_4s_4s(TySF);
3005b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_facge_2s_2s_2s(TySF);
3006b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_facgt_2d_2d_2d(TyDF);
3007b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_facgt_4s_4s_4s(TySF);
3008b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_facgt_2s_2s_2s(TySF);
3009eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3010eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmeq_z   d,s
3011eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmge_z   d,s
3012eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmgt_z   d,s
3013eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmle_z   d,s
3014eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmlt_z   d,s
3015eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3016eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmeq_z   2d,4s,2s
3017eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmge_z   2d,4s,2s
3018eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmgt_z   2d,4s,2s
3019eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmle_z   2d,4s,2s
3020eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmlt_z   2d,4s,2s
3021eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3022eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmp_z    d,s
3023eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmpe_z   d,s
3024eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmp      d,s (floating point quiet, set flags)
3025eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcmpe     d,s (floating point signaling, set flags)
3026eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3027eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcsel     d,s (fp cond select)
3028eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3029eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fdiv      d,s
3030eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fdiv      2d,4s,2s
3031b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fdiv_d_d_d(TyDF);
3032b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fdiv_s_s_s(TySF);
3033b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fdiv_2d_2d_2d(TyDF);
3034b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fdiv_4s_4s_4s(TySF);
3035b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fdiv_2s_2s_2s(TySF);
3036eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3037eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmadd     d,s
3038eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fnmadd    d,s
3039eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmsub     d,s
3040eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fnmsub    d,s
3041eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3042eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fnmul     d,s
3043b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fnmul_d_d_d(TyDF);
3044b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fnmul_s_s_s(TySF);
3045eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3046eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmax      d,s
3047eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmin      d,s
3048eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxnm    d,s ("max number")
3049eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminnm    d,s
3050eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3051eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmax      2d,4s,2s
3052eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmin      2d,4s,2s
3053eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxnm    2d,4s,2s
3054eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminnm    2d,4s,2s
3055eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3056eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxnmp   d_2d,s_2s ("max number pairwise")
3057eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminnmp   d_2d,s_2s
3058eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3059eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxnmp   2d,4s,2s
3060eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminnmp   2d,4s,2s
3061eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3062eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxnmv   s_4s (maxnum across vector)
3063eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminnmv   s_4s
3064eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3065eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxp     d_2d,s_2s (max of a pair)
3066eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminp     d_2d,s_2s (max of a pair)
3067eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3068eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxp     2d,4s,2s  (max pairwise)
3069eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminp     2d,4s,2s
3070eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3071eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmaxv     s_4s (max across vector)
3072eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fminv     s_4s
3073eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3074eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmla      2d,4s,2s
3075eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmls      2d,4s,2s
3076b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmla_2d_2d_2d(TyDF);
3077b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmla_4s_4s_4s(TySF);
3078b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmla_2s_2s_2s(TySF);
3079b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmls_2d_2d_2d(TyDF);
3080b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmls_4s_4s_4s(TySF);
3081b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmls_2s_2s_2s(TySF);
3082eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3083eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmla      d_d_d[],s_s_s[] (by element)
3084eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmls      d_d_d[],s_s_s[] (by element)
3085eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3086eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmla      2d_2d_d[],4s_4s_s[],2s_2s_s[]
3087eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmls      2d_2d_d[],4s_4s_s[],2s_2s_s[]
3088eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3089eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmov      2d,4s,2s #imm (part of the MOVI/MVNI/ORR/BIC imm group)
3090eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // INCOMPLETE
3091b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_2d_imm_01(TyD);
3092b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_2d_imm_02(TyD);
3093b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_2d_imm_03(TyD);
3094eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0) test_fmov_4s_imm_01(TyS);
3095eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0) test_fmov_4s_imm_02(TyS);
3096eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0) test_fmov_4s_imm_03(TyS);
3097eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0) test_fmov_2s_imm_01(TyS);
3098eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0) test_fmov_2s_imm_02(TyS);
3099eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   if (0) test_fmov_2s_imm_03(TyS);
3100eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3101eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmov      d_d,s_s
3102b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_d_d(TyDF);
3103b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_s_s(TySF);
3104eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3105eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmov      s_w,w_s,d_x,d[1]_x,x_d,x_d[1]
3106b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_s_w(TyS);
3107b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_d_x(TyD);
3108b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_d1_x(TyD);
3109b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_w_s(TyS);
3110b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_x_d(TyD);
3111b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_x_d1(TyD);
3112eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3113eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmov      d,s #imm
3114b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_d_imm_01(TyNONE);
3115b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_d_imm_02(TyNONE);
3116b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_d_imm_03(TyNONE);
3117b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_s_imm_01(TyNONE);
3118b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_s_imm_02(TyNONE);
3119b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmov_s_imm_03(TyNONE);
3120eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3121eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmul      d_d_d[],s_s_s[]
3122eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmul      2d_2d_d[],4s_4s_s[],2s_2s_s[]
3123eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3124eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmul      2d,4s,2s
3125eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmul      d,s
3126b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmul_d_d_d(TyDF);
3127b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmul_s_s_s(TySF);
3128b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmul_2d_2d_2d(TyDF);
3129b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmul_4s_4s_4s(TySF);
3130b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fmul_2s_2s_2s(TySF);
3131eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3132eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmulx     d_d_d[],s_s_s[]
3133eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmulx     2d_2d_d[],4s_4s_s[],2s_2s_s[]
3134eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3135eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmulx     d,s
3136eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fmulx     2d,4s,2s
3137eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3138eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frecpe    d,s (recip estimate)
3139eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frecpe    2d,4s,2s
3140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frecps    d,s (recip step)
3142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frecps    2d,4s,2s
3143eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3144eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frecpx    d,s (recip exponent)
3145eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3146eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frinta    d,s
3147eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frinti    d,s
3148eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintm    d,s
3149eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintn    d,s
3150eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintp    d,s
3151eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintx    d,s
3152eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintz    d,s
3153eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3154eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frinta    2d,4s,2s (round to integral, nearest away)
3155eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frinti    2d,4s,2s (round to integral, per FPCR)
3156eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintm    2d,4s,2s (round to integral, minus inf)
3157eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintn    2d,4s,2s (round to integral, nearest, to even)
3158eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintp    2d,4s,2s (round to integral, plus inf)
3159eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintx    2d,4s,2s (round to integral exact, per FPCR)
3160eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frintz    2d,4s,2s (round to integral, zero)
3161eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3162eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frsqrte   d,s (est)
3163eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frsqrte   2d,4s,2s
3164eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3165eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frsqrts   d,s (step)
3166eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // frsqrts   2d,4s,2s
3167eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3168eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ======================== CONV ========================
3169eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3170eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvt      s_h,d_h,h_s,d_s,h_d,s_d (fp convert, scalar)
3171eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3172eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtl{2}  4s/4h, 4s/8h, 2d/2s, 2d/4s (float convert to longer form)
3173eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3174eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtn{2}  4h/4s, 8h/4s, 2s/2d, 4s/2d (float convert to narrower form)
3175eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // INCOMPLETE
3176b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcvtn_2s_2d(TyDF);
3177b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_fcvtn_4s_2d(TyDF);
3178eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3179eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtas    d,s  (fcvt to signed int,   nearest, ties away)
3180eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtau    d,s  (fcvt to unsigned int, nearest, ties away)
3181eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtas    2d,4s,2s
3182eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtau    2d,4s,2s
3183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtas    w_s,x_s,w_d,x_d
3184eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtau    w_s,x_s,w_d,x_d
3185eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3186eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtms    d,s  (fcvt to signed int,   minus inf)
3187eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtmu    d,s  (fcvt to unsigned int, minus inf)
3188eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtms    2d,4s,2s
3189eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtmu    2d,4s,2s
3190eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtms    w_s,x_s,w_d,x_d
3191eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtmu    w_s,x_s,w_d,x_d
3192eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3193eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtns    d,s  (fcvt to signed int,   nearest)
3194eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtnu    d,s  (fcvt to unsigned int, nearest)
3195eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtns    2d,4s,2s
3196eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtnu    2d,4s,2s
3197eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtns    w_s,x_s,w_d,x_d
3198eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtnu    w_s,x_s,w_d,x_d
3199eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3200eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtps    d,s  (fcvt to signed int,   plus inf)
3201eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtpu    d,s  (fcvt to unsigned int, plus inf)
3202eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtps    2d,4s,2s
3203eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtpu    2d,4s,2s
3204eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtps    w_s,x_s,w_d,x_d
3205eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtpu    w_s,x_s,w_d,x_d
3206eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3207eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzs    d,s (fcvt to signed integer,   to zero)
3208eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzu    d,s (fcvt to unsigned integer, to zero)
3209eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzs    2d,4s,2s
3210eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzu    2d,4s,2s
3211eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzs    w_s,x_s,w_d,x_d
3212eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzu    w_s,x_s,w_d,x_d
3213eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3214eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzs    d,s (fcvt to signed fixedpt,   to zero) (w/ #fbits)
3215eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzu    d,s (fcvt to unsigned fixedpt, to zero) (w/ #fbits)
3216eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzs    2d,4s,2s
3217eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzu    2d,4s,2s
3218eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzs    w_s,x_s,w_d,x_d (fcvt to signed fixedpt,   to zero) (w/ #fbits)
3219eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtzu    w_s,x_s,w_d,x_d (fcvt to unsigned fixedpt, to zero) (w/ #fbits)
3220eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3221eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtxn    s_d (fcvt to lower prec narrow, rounding to odd)
3222eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // fcvtxn    2s_2d,4s_2d
3223eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3224eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // scvtf     d,s        _#fbits
3225eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ucvtf     d,s        _#fbits
3226eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3227eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // scvtf     2d,4s,2s   _#fbits
3228eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ucvtf     2d,4s,2s   _#fbits
3229eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3230eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // scvtf     d,s
3231eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ucvtf     d,s
323242af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy Ivanov   if (1) test_scvtf_s_s(TyS);
323342af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy Ivanov   if (1) test_scvtf_d_d(TyD);
323442af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy Ivanov   if (1) test_ucvtf_s_s(TyS);
323542af27935e37fca9021c5e90d3c4f3fd3a60e36fDmitriy Ivanov   if (1) test_ucvtf_d_d(TyD);
3236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3237eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // scvtf     2d,4s,2s
3238eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ucvtf     2d,4s,2s
3239eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3240eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // scvtf     s_w, d_w, s_x, d_x,   _#fbits
3241eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ucvtf     s_w, d_w, s_x, d_x,   _#fbits
3242eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3243eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // scvtf     s_w, d_w, s_x, d_x
3244eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ucvtf     s_w, d_w, s_x, d_x
3245b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_scvtf_s_w(TyS);
3246b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_scvtf_d_w(TyS);
3247b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_scvtf_s_x(TyD);
3248b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_scvtf_d_x(TyD);
3249b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ucvtf_s_w(TyS);
3250b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ucvtf_d_w(TyS);
3251b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ucvtf_s_x(TyD);
3252b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ucvtf_d_x(TyD);
3253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ======================== INT ========================
3255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // abs       d
3257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // neg       d
3258b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_d_d(TyD);
3259b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_neg_d_d(TyD);
3260eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3261eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // abs       2d,4s,2s,8h,4h,16b,8b
3262eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // neg       2d,4s,2s,8h,4h,16b,8b
3263b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_2d_2d(TyD);
3264b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_4s_4s(TyS);
3265b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_2s_2s(TyS);
3266b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_8h_8h(TyH);
3267b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_4h_4h(TyH);
3268b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_16b_16b(TyB);
3269b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_abs_8b_8b(TyB);
3270b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_2d_2d(TyD);
3271b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_4s_4s(TyS);
3272b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_2s_2s(TyS);
3273b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_8h_8h(TyH);
3274b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_4h_4h(TyH);
3275b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_16b_16b(TyB);
3276b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_neg_8b_8b(TyB);
3277eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3278eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // add       d
3279eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sub       d
3280b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_d_d_d(TyD);
3281b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_d_d_d(TyD);
3282eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3283eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // add       2d,4s,2s,8h,4h,16b,8b
3284eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sub       2d,4s,2s,8h,4h,16b,8b
3285b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_2d_2d_2d(TyD);
3286b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_4s_4s_4s(TyS);
3287b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_2s_2s_2s(TyS);
3288b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_8h_8h_8h(TyH);
3289b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_4h_4h_4h(TyH);
3290b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_16b_16b_16b(TyB);
3291b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_add_8b_8b_8b(TyB);
3292b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_2d_2d_2d(TyD);
3293b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_4s_4s_4s(TyS);
3294b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_2s_2s_2s(TyS);
3295b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_8h_8h_8h(TyH);
3296b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_4h_4h_4h(TyH);
3297b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_16b_16b_16b(TyB);
3298b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sub_8b_8b_8b(TyB);
3299eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3300eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // addhn{2}   2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
3301eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // subhn{2}   2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
3302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // raddhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
3303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // rsubhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
3304b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addhn_2s_2d_2d(TyD);
3305b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addhn2_4s_2d_2d(TyD);
3306b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addhn_4h_4s_4s(TyS);
3307b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addhn2_8h_4s_4s(TyS);
3308b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addhn_8b_8h_8h(TyH);
3309b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addhn2_16b_8h_8h(TyH);
3310b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_subhn_2s_2d_2d(TyD);
3311b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_subhn2_4s_2d_2d(TyD);
3312b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_subhn_4h_4s_4s(TyS);
3313b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_subhn2_8h_4s_4s(TyS);
3314b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_subhn_8b_8h_8h(TyH);
3315b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_subhn2_16b_8h_8h(TyH);
3316b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_raddhn_2s_2d_2d(TyD);
3317b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_raddhn2_4s_2d_2d(TyD);
3318b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_raddhn_4h_4s_4s(TyS);
3319b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_raddhn2_8h_4s_4s(TyS);
3320b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_raddhn_8b_8h_8h(TyH);
3321b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_raddhn2_16b_8h_8h(TyH);
3322b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rsubhn_2s_2d_2d(TyD);
3323b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rsubhn2_4s_2d_2d(TyD);
3324b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rsubhn_4h_4s_4s(TyS);
3325b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rsubhn2_8h_4s_4s(TyS);
3326b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rsubhn_8b_8h_8h(TyH);
3327b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rsubhn2_16b_8h_8h(TyH);
3328eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3329eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // addp     d (add pairs, across)
3330b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_d_2d(TyD);
3331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // addp     2d,4s,2s,8h,4h,16b,8b
3333b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_2d_2d_2d(TyD);
3334b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_4s_4s_4s(TyS);
3335b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_2s_2s_2s(TyS);
3336b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_8h_8h_8h(TyH);
3337b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_4h_4h_4h(TyH);
3338b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_16b_16b_16b(TyB);
3339b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addp_8b_8b_8b(TyB);
3340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // addv     4s,8h,4h,16b,18b (reduce across vector)
3342b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addv_s_4s(TyS);
3343b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addv_h_8h(TyH);
3344b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addv_h_4h(TyH);
3345b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addv_b_16b(TyB);
3346b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_addv_b_8b(TyB);
3347eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3348eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // and      16b,8b
3349eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // bic      16b,8b
3350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // orn      16b,8b
3351eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // orr      16b,8b
3352b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_and_16b_16b_16b(TyB);
3353b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_and_8b_8b_8b(TyB);
3354b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bic_16b_16b_16b(TyB);
3355b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bic_8b_8b_8b(TyB);
3356b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_orr_16b_16b_16b(TyB);
3357b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_orr_8b_8b_8b(TyB);
3358b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_orn_16b_16b_16b(TyB);
3359b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_orn_8b_8b_8b(TyB);
3360eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3361eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // orr      8h,4h   #imm8, LSL #0 or 8
3362eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // orr      4s,2s   #imm8, LSL #0, 8, 16 or 24
3363eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // bic      8h,4h   #imm8, LSL #0 or 8
3364eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // bic      4s,2s   #imm8, LSL #0, 8, 16 or 24
3365eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi and mvni are very similar, a superset of these.
3366eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // Cases are below.
3367b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_8h_0x5A_lsl0(TyH);
3368b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_8h_0xA5_lsl8(TyH);
3369b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_4h_0x5A_lsl0(TyH);
3370b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_4h_0xA5_lsl8(TyH);
3371b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_4s_0x5A_lsl0(TyS);
3372b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_4s_0x6B_lsl8(TyS);
3373b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_4s_0x49_lsl16(TyS);
3374b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_4s_0x3D_lsl24(TyS);
3375b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_2s_0x5A_lsl0(TyS);
3376b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_2s_0x6B_lsl8(TyS);
3377b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_2s_0x49_lsl16(TyS);
3378b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_orr_2s_0x3D_lsl24(TyS);
3379b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_8h_0x5A_lsl0(TyH);
3380b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_8h_0xA5_lsl8(TyH);
3381b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_4h_0x5A_lsl0(TyH);
3382b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_4h_0xA5_lsl8(TyH);
3383b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_4s_0x5A_lsl0(TyS);
3384b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_4s_0x6B_lsl8(TyS);
3385b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_4s_0x49_lsl16(TyS);
3386b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_4s_0x3D_lsl24(TyS);
3387b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_2s_0x5A_lsl0(TyS);
3388b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_2s_0x6B_lsl8(TyS);
3389b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_2s_0x49_lsl16(TyS);
3390b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_bic_2s_0x3D_lsl24(TyS);
3391eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3392eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // bif      16b,8b (vector) (bit insert if false)
3393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // bit      16b,8b (vector) (bit insert if true)
3394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // bsl      16b,8b (vector) (bit select)
3395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // eor      16b,8b (vector)
3396b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bif_16b_16b_16b(TyB);
3397b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bif_8b_8b_8b(TyB);
3398b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bit_16b_16b_16b(TyB);
3399b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bit_8b_8b_8b(TyB);
3400b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bsl_16b_16b_16b(TyB);
3401b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_bsl_8b_8b_8b(TyB);
3402b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_eor_16b_16b_16b(TyB);
3403b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_eor_8b_8b_8b(TyB);
3404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cls      4s,2s,8h,4h,16b,8b (count leading sign bits)
3406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // clz      4s,2s,8h,4h,16b,8b (count leading zero bits)
3407b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cls_4s_4s(TyS);
3408b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cls_2s_2s(TyS);
3409b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cls_8h_8h(TyH);
3410b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cls_4h_4h(TyH);
3411b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cls_16b_16b(TyB);
3412b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cls_8b_8b(TyB);
3413b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_clz_4s_4s(TyS);
3414b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_clz_2s_2s(TyS);
3415b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_clz_8h_8h(TyH);
3416b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_clz_4h_4h(TyH);
3417b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_clz_16b_16b(TyB);
3418b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_clz_8b_8b(TyB);
3419eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3420eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmeq     d
3421eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmge     d
3422eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmgt     d
3423eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmhi     d
3424eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmhs     d
3425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmtst    d
3426b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmeq_d_d_d(TyD);
3427b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmge_d_d_d(TyD);
3428b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmgt_d_d_d(TyD);
3429b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmhi_d_d_d(TyD);
3430b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmhs_d_d_d(TyD);
3431b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmtst_d_d_d(TyD);
3432eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3433eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmeq     2d,4s,2s,8h,4h,16b,8b
3434eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmge     2d,4s,2s,8h,4h,16b,8b
3435eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmgt     2d,4s,2s,8h,4h,16b,8b
3436eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmhi     2d,4s,2s,8h,4h,16b,8b
3437eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmhs     2d,4s,2s,8h,4h,16b,8b
3438eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmtst    2d,4s,2s,8h,4h,16b,8b
3439b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_2d_2d_2d(TyD);
3440b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_4s_4s_4s(TyS);
3441b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_2s_2s_2s(TyS);
3442b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_8h_8h_8h(TyH);
3443b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_4h_4h_4h(TyH);
3444b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_16b_16b_16b(TyB);
3445b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_8b_8b_8b(TyB);
3446b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_2d_2d_2d(TyD);
3447b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_4s_4s_4s(TyS);
3448b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_2s_2s_2s(TyS);
3449b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_8h_8h_8h(TyH);
3450b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_4h_4h_4h(TyH);
3451b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_16b_16b_16b(TyB);
3452b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_8b_8b_8b(TyB);
3453b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_2d_2d_2d(TyD);
3454b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_4s_4s_4s(TyS);
3455b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_2s_2s_2s(TyS);
3456b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_8h_8h_8h(TyH);
3457b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_4h_4h_4h(TyH);
3458b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_16b_16b_16b(TyB);
3459b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_8b_8b_8b(TyB);
3460b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_2d_2d_2d(TyD);
3461b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_4s_4s_4s(TyS);
3462b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_2s_2s_2s(TyS);
3463b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_8h_8h_8h(TyH);
3464b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_4h_4h_4h(TyH);
3465b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_16b_16b_16b(TyB);
3466b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhi_8b_8b_8b(TyB);
3467b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_2d_2d_2d(TyD);
3468b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_4s_4s_4s(TyS);
3469b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_2s_2s_2s(TyS);
3470b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_8h_8h_8h(TyH);
3471b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_4h_4h_4h(TyH);
3472b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_16b_16b_16b(TyB);
3473b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmhs_8b_8b_8b(TyB);
3474b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_2d_2d_2d(TyD);
3475b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_4s_4s_4s(TyS);
3476b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_2s_2s_2s(TyS);
3477b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_8h_8h_8h(TyH);
3478b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_4h_4h_4h(TyH);
3479b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_16b_16b_16b(TyB);
3480b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmtst_8b_8b_8b(TyB);
3481eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3482eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmeq_z   d
3483eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmge_z   d
3484eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmgt_z   d
3485eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmle_z   d
3486eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmlt_z   d
3487b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_d_d(TyD);
3488b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmge_zero_d_d(TyD);
3489b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmgt_zero_d_d(TyD);
3490b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmle_zero_d_d(TyD);
3491b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cmlt_zero_d_d(TyD);
3492eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3493eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmeq_z   2d,4s,2s,8h,4h,16b,8b
3494eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmge_z   2d,4s,2s,8h,4h,16b,8b
3495eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmgt_z   2d,4s,2s,8h,4h,16b,8b
3496eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmle_z   2d,4s,2s,8h,4h,16b,8b
3497eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cmlt_z   2d,4s,2s,8h,4h,16b,8b
3498b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_2d_2d(TyD);
3499b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_4s_4s(TyS);
3500b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_2s_2s(TyS);
3501b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_8h_8h(TyH);
3502b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_4h_4h(TyH);
3503b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_16b_16b(TyB);
3504b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmeq_zero_8b_8b(TyB);
3505b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_2d_2d(TyD);
3506b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_4s_4s(TyS);
3507b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_2s_2s(TyS);
3508b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_8h_8h(TyH);
3509b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_4h_4h(TyH);
3510b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_16b_16b(TyB);
3511b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmge_zero_8b_8b(TyB);
3512b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_2d_2d(TyD);
3513b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_4s_4s(TyS);
3514b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_2s_2s(TyS);
3515b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_8h_8h(TyH);
3516b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_4h_4h(TyH);
3517b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_16b_16b(TyB);
3518b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmgt_zero_8b_8b(TyB);
3519b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_2d_2d(TyD);
3520b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_4s_4s(TyS);
3521b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_2s_2s(TyS);
3522b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_8h_8h(TyH);
3523b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_4h_4h(TyH);
3524b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_16b_16b(TyB);
3525b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmle_zero_8b_8b(TyB);
3526b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_2d_2d(TyD);
3527b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_4s_4s(TyS);
3528b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_2s_2s(TyS);
3529b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_8h_8h(TyH);
3530b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_4h_4h(TyH);
3531b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_16b_16b(TyB);
3532b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_cmlt_zero_8b_8b(TyB);
3533eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3534eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cnt      16b,8b (population count per byte)
3535b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cnt_16b_16b(TyB);
3536b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_cnt_8b_8b(TyB);
3537eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3538eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // dup      d,s,h,b (vec elem to scalar)
3539b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_d_d0(TyD);
3540b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_d_d1(TyD);
3541b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_s_s0(TyS);
3542b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_s_s3(TyS);
3543b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_h_h0(TyH);
3544b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_h_h6(TyH);
3545b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_b_b0(TyB);
3546b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_dup_b_b13(TyB);
3547eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3548eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // dup      2d,4s,2s,8h,4h,16b,8b (vec elem to vector)
3549b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_2d_d0(TyD);
3550b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_2d_d1(TyD);
3551b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_4s_s0(TyS);
3552b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_4s_s3(TyS);
3553b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_2s_s0(TyS);
3554b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_2s_s2(TyS);
3555b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_8h_h0(TyH);
3556b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_8h_h6(TyH);
3557b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_4h_h1(TyH);
3558b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_4h_h5(TyH);
3559b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_16b_b2(TyB);
3560b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_16b_b12(TyB);
3561b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_8b_b3(TyB);
3562b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_8b_b13(TyB);
3563eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3564eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // dup      2d,4s,2s,8h,4h,16b,8b (general reg to vector)
3565b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_2d_x(TyD);
3566b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_4s_w(TyS);
3567b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_2s_w(TyS);
3568b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_8h_w(TyH);
3569b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_4h_w(TyH);
3570b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_16b_w(TyB);
3571b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_dup_8b_w(TyB);
3572eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3573eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ext      16b,8b,#imm4 (concat 2 vectors, then slice)
3574b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_16b_16b_16b_0x0(TyB);
3575b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_16b_16b_16b_0x7(TyB);
3576b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_16b_16b_16b_0x8(TyB);
3577b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_16b_16b_16b_0x9(TyB);
3578b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_16b_16b_16b_0xF(TyB);
3579b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_8b_8b_8b_0x0(TyB);
3580b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_8b_8b_8b_0x1(TyB);
3581b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_8b_8b_8b_0x6(TyB);
3582b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ext_8b_8b_8b_0x7(TyB);
3583eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3584eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ins      d[]_d[],s[]_s[],h[]_h[],b[]_b[]
3585b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_d0_d0(TyD);
3586b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_d0_d1(TyD);
3587b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_d1_d0(TyD);
3588b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_d1_d1(TyD);
3589b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_s0_s2(TyS);
3590b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_s3_s0(TyS);
3591b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_s2_s1(TyS);
3592b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_s1_s3(TyS);
3593b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_h0_h6(TyH);
3594b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_h7_h0(TyH);
3595b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_h6_h1(TyH);
3596b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ins_h1_h7(TyH);
35976eaa51482bc2e82f289151a5f7b0984f8e43aa78Dmitriy Ivanov   if (1) test_ins_b0_b14(TyB);
35986eaa51482bc2e82f289151a5f7b0984f8e43aa78Dmitriy Ivanov   if (1) test_ins_b15_b8(TyB);
35996eaa51482bc2e82f289151a5f7b0984f8e43aa78Dmitriy Ivanov   if (1) test_ins_b13_b9(TyB);
36006eaa51482bc2e82f289151a5f7b0984f8e43aa78Dmitriy Ivanov   if (1) test_ins_b5_b12(TyB);
3601eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3602eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ins      d[]_x, s[]_w, h[]_w, b[]_w
3603b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_INS_general();
3604eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3605eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mla   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
3606eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mls   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
3607eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mul   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
3608b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_4s_4s_s0(TyS);
3609b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_4s_4s_s3(TyS);
3610b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_2s_2s_s0(TyS);
3611b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_2s_2s_s3(TyS);
3612b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_8h_8h_h1(TyH);
3613b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_8h_8h_h5(TyH);
3614b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_4h_4h_h2(TyH);
3615b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mla_4h_4h_h7(TyH);
3616b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_4s_4s_s0(TyS);
3617b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_4s_4s_s3(TyS);
3618b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_2s_2s_s0(TyS);
3619b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_2s_2s_s3(TyS);
3620b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_8h_8h_h1(TyH);
3621b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_8h_8h_h5(TyH);
3622b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_4h_4h_h2(TyH);
3623b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mls_4h_4h_h7(TyH);
3624b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_4s_4s_s0(TyS);
3625b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_4s_4s_s3(TyS);
3626b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_2s_2s_s0(TyS);
3627b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_2s_2s_s3(TyS);
3628b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_8h_8h_h1(TyH);
3629b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_8h_8h_h5(TyH);
3630b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_4h_4h_h2(TyH);
3631b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mul_4h_4h_h7(TyH);
3632eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3633eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mla   4s,2s,8h,4h,16b,8b
3634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mls   4s,2s,8h,4h,16b,8b
3635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mul   4s,2s,8h,4h,16b,8b
3636b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mla_4s_4s_4s(TyS);
3637b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mla_2s_2s_2s(TyS);
3638b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mla_8h_8h_8h(TyH);
3639b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mla_4h_4h_4h(TyH);
3640b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mla_16b_16b_16b(TyB);
3641b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mla_8b_8b_8b(TyB);
3642b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mls_4s_4s_4s(TyS);
3643b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mls_2s_2s_2s(TyS);
3644b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mls_8h_8h_8h(TyH);
3645b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mls_4h_4h_4h(TyH);
3646b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mls_16b_16b_16b(TyB);
3647b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mls_8b_8b_8b(TyB);
3648b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mul_4s_4s_4s(TyS);
3649b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mul_2s_2s_2s(TyS);
3650b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mul_8h_8h_8h(TyH);
3651b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mul_4h_4h_4h(TyH);
3652b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mul_16b_16b_16b(TyB);
3653b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_mul_8b_8b_8b(TyB);
3654eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3655eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // Some of these movi and mvni cases are similar to orr and bic
3656eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // cases with immediates.  Maybe they should be moved together.
3657eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi  16b,8b   #imm8, LSL #0
3658b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_16b_0x9C_lsl0(TyB);
3659b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_8b_0x8B_lsl0(TyB);
3660eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3661eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi  8h,4h    #imm8, LSL #0 or 8
3662eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mvni  8h,4h    #imm8, LSL #0 or 8
3663b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_8h_0x5A_lsl0(TyH);
3664b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_8h_0xA5_lsl8(TyH);
3665b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4h_0x5A_lsl0(TyH);
3666b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4h_0xA5_lsl8(TyH);
3667b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_8h_0x5A_lsl0(TyH);
3668b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_8h_0xA5_lsl8(TyH);
3669b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4h_0x5A_lsl0(TyH);
3670b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4h_0xA5_lsl8(TyH);
3671eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3672eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi  4s,2s    #imm8, LSL #0, 8, 16, 24
3673eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mvni  4s,2s    #imm8, LSL #0, 8, 16, 24
3674b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_movi_4s_0x5A_lsl0(TyS);
3675b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4s_0x6B_lsl8(TyS);
3676b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4s_0x49_lsl16(TyS);
3677b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4s_0x3D_lsl24(TyS);
3678b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2s_0x5A_lsl0(TyS);
3679b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2s_0x6B_lsl8(TyS);
3680b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2s_0x49_lsl16(TyS);
3681b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2s_0x3D_lsl24(TyS);
3682b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4s_0x5A_lsl0(TyS);
3683b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4s_0x6B_lsl8(TyS);
3684b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4s_0x49_lsl16(TyS);
3685b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4s_0x3D_lsl24(TyS);
3686b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_2s_0x5A_lsl0(TyS);
3687b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_2s_0x6B_lsl8(TyS);
3688b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_2s_0x49_lsl16(TyS);
3689b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_2s_0x3D_lsl24(TyS);
3690eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3691eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi  4s,2s    #imm8, MSL #8 or 16
3692eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // mvni  4s,2s    #imm8, MSL #8 or 16
3693b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4s_0x6B_msl8(TyS);
3694b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_4s_0x94_msl16(TyS);
3695b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2s_0x7A_msl8(TyS);
3696b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2s_0xA5_msl16(TyS);
3697b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4s_0x6B_msl8(TyS);
3698b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_4s_0x94_msl16(TyS);
3699b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_2s_0x7A_msl8(TyS);
3700b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_mvni_2s_0xA5_msl16(TyS);
3701eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3702eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi  d,       #imm64
3703eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // movi  2d,      #imm64
3704b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_d_0xA5(TyD);
3705b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_movi_2d_0xB4(TyD);
3706eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3707eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // not   16b,8b
3708b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_not_16b_16b(TyB);
3709b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_not_8b_8b(TyB);
3710eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3711eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // pmul  16b,8b
3712b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_pmul_16b_16b_16b(TyB);
3713b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_pmul_8b_8b_8b(TyB);
3714eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3715eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // pmull{2}  8h_8b_8b,8h_16b_16b,1q_1d_1d,1q_2d_2d
3716b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_pmull_8h_8b_8b(TyB);
3717b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_pmull2_8h_16b_16b(TyB);
3718b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   //if (0) test_pmull_1q_1d_1d(TyD);
3719b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   //if (0) test_pmull_1q_2d_2d(TyD);
3720eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3721eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // rbit    16b,8b
3722eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // rev16   16b,8b
3723eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // rev32   16b,8b,8h,4h
3724eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // rev64   16b,8b,8h,4h,4s,2s
3725b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rbit_16b_16b(TyB);
3726b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rbit_8b_8b(TyB);
3727b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev16_16b_16b(TyB);
3728b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev16_8b_8b(TyB);
3729b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev32_16b_16b(TyB);
3730b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev32_8b_8b(TyB);
3731b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev32_8h_8h(TyH);
3732b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev32_4h_4h(TyH);
3733b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev64_16b_16b(TyB);
3734b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev64_8b_8b(TyB);
3735b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev64_8h_8h(TyH);
3736b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev64_4h_4h(TyH);
3737b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev64_4s_4s(TyS);
3738b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rev64_2s_2s(TyS);
3739eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3740eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // saba      16b,8b,8h,4h,4s,2s
3741eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uaba      16b,8b,8h,4h,4s,2s
3742b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saba_4s_4s_4s(TyS);
3743b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saba_2s_2s_2s(TyS);
3744b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saba_8h_8h_8h(TyH);
3745b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saba_4h_4h_4h(TyH);
3746b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saba_16b_16b_16b(TyB);
3747b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saba_8b_8b_8b(TyB);
3748b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaba_4s_4s_4s(TyS);
3749b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaba_2s_2s_2s(TyS);
3750b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaba_8h_8h_8h(TyH);
3751b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaba_4h_4h_4h(TyH);
3752b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaba_16b_16b_16b(TyB);
3753b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaba_8b_8b_8b(TyB);
3754eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3755eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sabal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3756eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uabal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3757b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabal_2d_2s_2s(TyS);
3758b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabal2_2d_4s_4s(TyS);
3759b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabal_4s_4h_4h(TyH);
3760b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabal2_4s_8h_8h(TyH);
3761b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabal_8h_8b_8b(TyB);
3762b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabal2_8h_16b_16b(TyB);
3763b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabal_2d_2s_2s(TyS);
3764b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabal2_2d_4s_4s(TyS);
3765b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabal_4s_4h_4h(TyH);
3766b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabal2_4s_8h_8h(TyH);
3767b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabal_8h_8b_8b(TyB);
3768b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabal2_8h_16b_16b(TyB);
3769eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3770eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sabd      16b,8b,8h,4h,4s,2s
3771eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uabd      16b,8b,8h,4h,4s,2s
3772b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabd_4s_4s_4s(TyS);
3773b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabd_2s_2s_2s(TyS);
3774b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabd_8h_8h_8h(TyH);
3775b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabd_4h_4h_4h(TyH);
3776b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabd_16b_16b_16b(TyB);
3777b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabd_8b_8b_8b(TyB);
3778b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabd_4s_4s_4s(TyS);
3779b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabd_2s_2s_2s(TyS);
3780b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabd_8h_8h_8h(TyH);
3781b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabd_4h_4h_4h(TyH);
3782b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabd_16b_16b_16b(TyB);
3783b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabd_8b_8b_8b(TyB);
3784eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3785eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sabdl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3786eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uabdl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3787b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabdl_2d_2s_2s(TyS);
3788b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabdl2_2d_4s_4s(TyS);
3789b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabdl_4s_4h_4h(TyH);
3790b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabdl2_4s_8h_8h(TyH);
3791b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabdl_8h_8b_8b(TyB);
3792b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sabdl2_8h_16b_16b(TyB);
3793b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabdl_2d_2s_2s(TyS);
3794b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabdl2_2d_4s_4s(TyS);
3795b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabdl_4s_4h_4h(TyH);
3796b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabdl2_4s_8h_8h(TyH);
3797b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabdl_8h_8b_8b(TyB);
3798b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uabdl2_8h_16b_16b(TyB);
3799eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3800eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sadalp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
3801eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uadalp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
3802b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sadalp_1d_2s(TyS);
3803b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sadalp_2d_4s(TyS);
3804b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sadalp_2s_4h(TyH);
3805b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sadalp_4s_8h(TyH);
3806b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sadalp_4h_8b(TyB);
3807b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sadalp_8h_16b(TyB);
3808b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uadalp_1d_2s(TyS);
3809b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uadalp_2d_4s(TyS);
3810b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uadalp_2s_4h(TyH);
3811b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uadalp_4s_8h(TyH);
3812b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uadalp_4h_8b(TyB);
3813b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uadalp_8h_16b(TyB);
3814eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3815eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // saddl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3816eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uaddl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3817eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ssubl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3818eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // usubl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
3819b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddl_2d_2s_2s(TyS);
3820b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddl2_2d_4s_4s(TyS);
3821b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddl_4s_4h_4h(TyH);
3822b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddl2_4s_8h_8h(TyH);
3823b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddl_8h_8b_8b(TyB);
3824b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddl2_8h_16b_16b(TyB);
3825b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddl_2d_2s_2s(TyS);
3826b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddl2_2d_4s_4s(TyS);
3827b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddl_4s_4h_4h(TyH);
3828b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddl2_4s_8h_8h(TyH);
3829b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddl_8h_8b_8b(TyB);
3830b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddl2_8h_16b_16b(TyB);
3831b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubl_2d_2s_2s(TyS);
3832b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubl2_2d_4s_4s(TyS);
3833b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubl_4s_4h_4h(TyH);
3834b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubl2_4s_8h_8h(TyH);
3835b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubl_8h_8b_8b(TyB);
3836b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubl2_8h_16b_16b(TyB);
3837b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubl_2d_2s_2s(TyS);
3838b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubl2_2d_4s_4s(TyS);
3839b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubl_4s_4h_4h(TyH);
3840b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubl2_4s_8h_8h(TyH);
3841b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubl_8h_8b_8b(TyB);
3842b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubl2_8h_16b_16b(TyB);
3843eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3844eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // saddlp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
3845eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uaddlp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
3846b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlp_1d_2s(TyS);
3847b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlp_2d_4s(TyS);
3848b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlp_2s_4h(TyH);
3849b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlp_4s_8h(TyH);
3850b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlp_4h_8b(TyB);
3851b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlp_8h_16b(TyB);
3852b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlp_1d_2s(TyS);
3853b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlp_2d_4s(TyS);
3854b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlp_2s_4h(TyH);
3855b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlp_4s_8h(TyH);
3856b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlp_4h_8b(TyB);
3857b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlp_8h_16b(TyB);
3858eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3859eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // saddlv    h_16b/8b, s_8h/4h, d_4s
3860eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uaddlv    h_16b/8b, s_8h/4h, d_4s
3861b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlv_h_16b(TyB);
3862b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlv_h_8b(TyB);
3863b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlv_s_8h(TyH);
3864b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlv_s_4h(TyH);
3865b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddlv_d_4s(TyH);
3866b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlv_h_16b(TyB);
3867b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlv_h_8b(TyB);
3868b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlv_s_8h(TyH);
3869b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlv_s_4h(TyH);
3870b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddlv_d_4s(TyH);
3871eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3872eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // saddw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_4s/2s
3873eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uaddw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_4s/2s
3874eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ssubw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_4s/2s
3875eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // usubw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_4s/2s
3876b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddw2_8h_8h_16b(TyB);
3877b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddw_8h_8h_8b(TyB);
3878b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddw2_4s_4s_8h(TyH);
3879b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddw_4s_4s_4h(TyH);
3880b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddw2_2d_2d_4s(TyS);
3881b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_saddw_2d_2d_2s(TyS);
3882b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddw2_8h_8h_16b(TyB);
3883b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddw_8h_8h_8b(TyB);
3884b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddw2_4s_4s_8h(TyH);
3885b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddw_4s_4s_4h(TyH);
3886b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddw2_2d_2d_4s(TyS);
3887b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uaddw_2d_2d_2s(TyS);
3888b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubw2_8h_8h_16b(TyB);
3889b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubw_8h_8h_8b(TyB);
3890b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubw2_4s_4s_8h(TyH);
3891b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubw_4s_4s_4h(TyH);
3892b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubw2_2d_2d_4s(TyS);
3893b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssubw_2d_2d_2s(TyS);
3894b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubw2_8h_8h_16b(TyB);
3895b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubw_8h_8h_8b(TyB);
3896b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubw2_4s_4s_8h(TyH);
3897b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubw_4s_4s_4h(TyH);
3898b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubw2_2d_2d_4s(TyS);
3899b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usubw_2d_2d_2s(TyS);
3900eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3901eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // shadd        16b,8b,8h,4h,4s,2s
3902eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uhadd        16b,8b,8h,4h,4s,2s
3903eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // shsub        16b,8b,8h,4h,4s,2s
3904eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uhsub        16b,8b,8h,4h,4s,2s
3905b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shadd_4s_4s_4s(TyS);
3906b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shadd_2s_2s_2s(TyS);
3907b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shadd_8h_8h_8h(TyH);
3908b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shadd_4h_4h_4h(TyH);
3909b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shadd_16b_16b_16b(TyB);
3910b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shadd_8b_8b_8b(TyB);
3911b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhadd_4s_4s_4s(TyS);
3912b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhadd_2s_2s_2s(TyS);
3913b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhadd_8h_8h_8h(TyH);
3914b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhadd_4h_4h_4h(TyH);
3915b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhadd_16b_16b_16b(TyB);
3916b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhadd_8b_8b_8b(TyB);
3917b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shsub_4s_4s_4s(TyS);
3918b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shsub_2s_2s_2s(TyS);
3919b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shsub_8h_8h_8h(TyH);
3920b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shsub_4h_4h_4h(TyH);
3921b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shsub_16b_16b_16b(TyB);
3922b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shsub_8b_8b_8b(TyB);
3923b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhsub_4s_4s_4s(TyS);
3924b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhsub_2s_2s_2s(TyS);
3925b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhsub_8h_8h_8h(TyH);
3926b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhsub_4h_4h_4h(TyH);
3927b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhsub_16b_16b_16b(TyB);
3928b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uhsub_8b_8b_8b(TyB);
3929eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3930eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // shll{2}      8h_8b/16b_#8, 4s_4h/8h_#16, 2d_2s/4s_#32
3931b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shll_8h_8b_8(TyB);
3932b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shll2_8h_16b_8(TyB);
3933b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shll_4s_4h_16(TyH);
3934b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shll2_4s_8h_16(TyH);
3935b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shll_2d_2s_32(TyS);
3936b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shll2_2d_4s_32(TyS);
3937eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3938eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // shrn{2}      2s/4s_2d, 8h/4h_4s, 8b/16b_8h,   #imm in 1 .. elem_bits
3939eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // rshrn{2}     2s/4s_2d, 8h/4h_4s, 8b/16b_8h,   #imm in 1 .. elem_bits
3940c7a4cbba84a0645e6d9951b08dfaa62bd5e22960Dmitriy Ivanov   if (1) test_shrn_2s_2d_1(TyD);
3941b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shrn_2s_2d_32(TyD);
3942c7a4cbba84a0645e6d9951b08dfaa62bd5e22960Dmitriy Ivanov   if (1) test_shrn2_4s_2d_1(TyD);
3943b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shrn2_4s_2d_32(TyD);
3944c7a4cbba84a0645e6d9951b08dfaa62bd5e22960Dmitriy Ivanov   if (1) test_shrn_4h_4s_1(TyS);
3945b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shrn_4h_4s_16(TyS);
3946c7a4cbba84a0645e6d9951b08dfaa62bd5e22960Dmitriy Ivanov   if (1) test_shrn2_8h_4s_1(TyS);
3947b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shrn2_8h_4s_16(TyS);
3948c7a4cbba84a0645e6d9951b08dfaa62bd5e22960Dmitriy Ivanov   if (1) test_shrn_8b_8h_1(TyH);
3949b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shrn_8b_8h_8(TyH);
3950c7a4cbba84a0645e6d9951b08dfaa62bd5e22960Dmitriy Ivanov   if (1) test_shrn2_16b_8h_1(TyH);
3951b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shrn2_16b_8h_8(TyH);
3952b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn_2s_2d_1(TyD);
3953b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn_2s_2d_32(TyD);
3954b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn2_4s_2d_1(TyD);
3955b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn2_4s_2d_32(TyD);
3956b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn_4h_4s_1(TyS);
3957b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn_4h_4s_16(TyS);
3958b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn2_8h_4s_1(TyS);
3959b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn2_8h_4s_16(TyS);
3960b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn_8b_8h_1(TyH);
3961b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn_8b_8h_8(TyH);
3962b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn2_16b_8h_1(TyH);
3963b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_rshrn2_16b_8h_8(TyH);
3964eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3965eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sli          d_#imm
3966eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sri          d_#imm
3967b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_d_d_0(TyD);
3968b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_d_d_32(TyD);
3969b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_d_d_63(TyD);
3970b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_d_d_1(TyD);
3971b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_d_d_33(TyD);
3972b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_d_d_64(TyD);
3973eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
3974eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sli          2d,4s,2s,8h,4h,16b,8b  _#imm
3975eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sri          2d,4s,2s,8h,4h,16b,8b  _#imm
3976b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_2d_2d_0(TyD);
3977552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_2d_2d_32(TyD);
3978552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_2d_2d_63(TyD);
3979b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_4s_4s_0(TyS);
3980552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_4s_4s_16(TyS);
3981552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_4s_4s_31(TyS);
3982b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_2s_2s_0(TyS);
3983552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_2s_2s_16(TyS);
3984552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_2s_2s_31(TyS);
3985b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_8h_8h_0(TyH);
3986552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_8h_8h_8(TyH);
3987552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_8h_8h_15(TyH);
3988b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_4h_4h_0(TyH);
3989552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_4h_4h_8(TyH);
3990552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_4h_4h_15(TyH);
3991b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_16b_16b_0(TyB);
3992552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_16b_16b_3(TyB);
3993552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_16b_16b_7(TyB);
3994b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sli_8b_8b_0(TyB);
3995552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_8b_8b_3(TyB);
3996552733f1f1f517aecef091ee7df4794f33966a7dDmitriy Ivanov   if (1) test_sli_8b_8b_7(TyB);
3997beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_2d_2d_1(TyD);
3998beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_2d_2d_33(TyD);
3999b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_2d_2d_64(TyD);
4000beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_4s_4s_1(TyS);
4001beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_4s_4s_17(TyS);
4002b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_4s_4s_32(TyS);
4003beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_2s_2s_1(TyS);
4004beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_2s_2s_17(TyS);
4005b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_2s_2s_32(TyS);
4006beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_8h_8h_1(TyH);
4007beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_8h_8h_8(TyH);
4008b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_8h_8h_16(TyH);
4009beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_4h_4h_1(TyH);
4010beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_4h_4h_8(TyH);
4011b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_4h_4h_16(TyH);
4012beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_16b_16b_1(TyB);
4013beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_16b_16b_4(TyB);
4014b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_16b_16b_8(TyB);
4015beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_8b_8b_1(TyB);
4016beceb42e1bb3a62da3d53a7c280dbfec16df0744Dmitriy Ivanov   if (1) test_sri_8b_8b_4(TyB);
4017b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sri_8b_8b_8(TyB);
4018eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4019eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smax         4s,2s,8h,4h,16b,8b
4020eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umax         4s,2s,8h,4h,16b,8b
4021eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smin         4s,2s,8h,4h,16b,8b
4022eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umin         4s,2s,8h,4h,16b,8b
4023b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smax_4s_4s_4s(TyS);
4024b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smax_2s_2s_2s(TyS);
4025b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smax_8h_8h_8h(TyH);
4026b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smax_4h_4h_4h(TyH);
4027b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smax_16b_16b_16b(TyB);
4028b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smax_8b_8b_8b(TyB);
4029b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umax_4s_4s_4s(TyS);
4030b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umax_2s_2s_2s(TyS);
4031b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umax_8h_8h_8h(TyH);
4032b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umax_4h_4h_4h(TyH);
4033b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umax_16b_16b_16b(TyB);
4034b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umax_8b_8b_8b(TyB);
4035b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smin_4s_4s_4s(TyS);
4036b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smin_2s_2s_2s(TyS);
4037b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smin_8h_8h_8h(TyH);
4038b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smin_4h_4h_4h(TyH);
4039b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smin_16b_16b_16b(TyB);
4040b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smin_8b_8b_8b(TyB);
4041b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umin_4s_4s_4s(TyS);
4042b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umin_2s_2s_2s(TyS);
4043b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umin_8h_8h_8h(TyH);
4044b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umin_4h_4h_4h(TyH);
4045b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umin_16b_16b_16b(TyB);
4046b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umin_8b_8b_8b(TyB);
4047eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4048eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smaxp        4s,2s,8h,4h,16b,8b
4049eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umaxp        4s,2s,8h,4h,16b,8b
4050eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sminp        4s,2s,8h,4h,16b,8b
4051eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uminp        4s,2s,8h,4h,16b,8b
4052b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smaxp_4s_4s_4s(TyS);
4053b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smaxp_2s_2s_2s(TyS);
4054b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smaxp_8h_8h_8h(TyH);
4055b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smaxp_4h_4h_4h(TyH);
4056b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smaxp_16b_16b_16b(TyB);
4057b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smaxp_8b_8b_8b(TyB);
4058b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umaxp_4s_4s_4s(TyS);
4059b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umaxp_2s_2s_2s(TyS);
4060b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umaxp_8h_8h_8h(TyH);
4061b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umaxp_4h_4h_4h(TyH);
4062b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umaxp_16b_16b_16b(TyB);
4063b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umaxp_8b_8b_8b(TyB);
4064b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sminp_4s_4s_4s(TyS);
4065b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sminp_2s_2s_2s(TyS);
4066b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sminp_8h_8h_8h(TyH);
4067b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sminp_4h_4h_4h(TyH);
4068b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sminp_16b_16b_16b(TyB);
4069b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sminp_8b_8b_8b(TyB);
4070b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uminp_4s_4s_4s(TyS);
4071b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uminp_2s_2s_2s(TyS);
4072b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uminp_8h_8h_8h(TyH);
4073b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uminp_4h_4h_4h(TyH);
4074b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uminp_16b_16b_16b(TyB);
4075b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uminp_8b_8b_8b(TyB);
4076eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4077eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smaxv        s_4s,h_8h,h_4h,b_16b,b_8b
4078eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umaxv        s_4s,h_8h,h_4h,b_16b,b_8b
4079eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sminv        s_4s,h_8h,h_4h,b_16b,b_8b
4080eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uminv        s_4s,h_8h,h_4h,b_16b,b_8b
4081b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_SMAXV();
4082b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_UMAXV();
4083b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_SMINV();
4084b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_UMINV();
4085eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4086eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smlal{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
4087eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umlal{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
4088eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smlsl{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
4089eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umlsl{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
4090eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smull{2}     2d_2s/4s_s[]. 4s_4h/8h_h[]
4091eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umull{2}     2d_2s/4s_s[]. 4s_4h/8h_h[]
4092b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_2d_2s_s0(TyS);
4093b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_2d_2s_s3(TyS);
4094b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_2d_4s_s1(TyS);
4095b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_2d_4s_s2(TyS);
4096b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_4s_4h_h0(TyH);
4097b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_4s_4h_h7(TyH);
4098b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_4s_8h_h1(TyH);
4099b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_4s_8h_h4(TyH);
4100b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_2d_2s_s0(TyS);
4101b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_2d_2s_s3(TyS);
4102b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_2d_4s_s1(TyS);
4103b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_2d_4s_s2(TyS);
4104b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_4s_4h_h0(TyH);
4105b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_4s_4h_h7(TyH);
4106b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_4s_8h_h1(TyH);
4107b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_4s_8h_h4(TyH);
4108b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_2d_2s_s0(TyS);
4109b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_2d_2s_s3(TyS);
4110b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_2d_4s_s1(TyS);
4111b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_2d_4s_s2(TyS);
4112b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_4s_4h_h0(TyH);
4113b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_4s_4h_h7(TyH);
4114b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_4s_8h_h1(TyH);
4115b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_4s_8h_h4(TyH);
4116b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_2d_2s_s0(TyS);
4117b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_2d_2s_s3(TyS);
4118b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_2d_4s_s1(TyS);
4119b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_2d_4s_s2(TyS);
4120b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_4s_4h_h0(TyH);
4121b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_4s_4h_h7(TyH);
4122b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_4s_8h_h1(TyH);
4123b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_4s_8h_h4(TyH);
4124b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_2d_2s_s0(TyS);
4125b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_2d_2s_s3(TyS);
4126b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_2d_4s_s1(TyS);
4127b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_2d_4s_s2(TyS);
4128b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_4s_4h_h0(TyH);
4129b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_4s_4h_h7(TyH);
4130b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_4s_8h_h1(TyH);
4131b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_4s_8h_h4(TyH);
4132b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull_2d_2s_s0(TyS);
4133b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull_2d_2s_s3(TyS);
4134b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_2d_4s_s1(TyS);
4135b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_2d_4s_s2(TyS);
4136b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull_4s_4h_h0(TyH);
4137b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull_4s_4h_h7(TyH);
4138b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_4s_8h_h1(TyH);
4139b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_4s_8h_h4(TyH);
4140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smlal{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
4142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umlal{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
4143eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smlsl{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
4144eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umlsl{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
4145eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smull{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
4146eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umull{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
4147b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_2d_2s_2s(TyS);
4148b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_2d_4s_4s(TyS);
4149b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_4s_4h_4h(TyH);
4150b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_4s_8h_8h(TyH);
4151b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal_8h_8b_8b(TyB);
4152b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlal2_8h_16b_16b(TyB);
4153b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_2d_2s_2s(TyS);
4154b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_2d_4s_4s(TyS);
4155b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_4s_4h_4h(TyH);
4156b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_4s_8h_8h(TyH);
4157b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal_8h_8b_8b(TyB);
4158b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlal2_8h_16b_16b(TyB);
4159b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_2d_2s_2s(TyS);
4160b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_2d_4s_4s(TyS);
4161b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_4s_4h_4h(TyH);
4162b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_4s_8h_8h(TyH);
4163b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl_8h_8b_8b(TyB);
4164b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smlsl2_8h_16b_16b(TyB);
4165b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_2d_2s_2s(TyS);
4166b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_2d_4s_4s(TyS);
4167b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_4s_4h_4h(TyH);
4168b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_4s_8h_8h(TyH);
4169b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl_8h_8b_8b(TyB);
4170b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umlsl2_8h_16b_16b(TyB);
4171b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_2d_2s_2s(TyS);
4172b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_2d_4s_4s(TyS);
4173b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_4s_4h_4h(TyH);
4174b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_4s_8h_8h(TyH);
4175b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull_8h_8b_8b(TyB);
4176b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_smull2_8h_16b_16b(TyB);
41770a8046eb0993fb7e155b03cc5ef3323fca3467c0Dmitriy Ivanov   if (1) test_umull_2d_2s_2s(TyS);
4178b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_2d_4s_4s(TyS);
41790a8046eb0993fb7e155b03cc5ef3323fca3467c0Dmitriy Ivanov   if (1) test_umull_4s_4h_4h(TyH);
4180b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_4s_8h_8h(TyH);
41810a8046eb0993fb7e155b03cc5ef3323fca3467c0Dmitriy Ivanov   if (1) test_umull_8h_8b_8b(TyB);
4182b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_umull2_8h_16b_16b(TyB);
4183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4184eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // smov         w_b[], w_h[], x_b[], x_h[], x_s[]
4185eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // umov         w_b[], w_h[],               w_s[], x_d[]
4186b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_x_d0(TyD);
4187b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_x_d1(TyD);
4188b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_w_s0(TyS);
4189b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_w_s3(TyS);
4190b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_w_h0(TyH);
4191b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_w_h7(TyH);
4192b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_w_b0(TyB);
4193b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_umov_w_b15(TyB);
4194b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_x_s0(TyS);
4195b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_x_s3(TyS);
4196b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_x_h0(TyH);
4197b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_x_h7(TyH);
4198b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_w_h0(TyH);
4199b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_w_h7(TyH);
4200b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_x_b0(TyB);
4201b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_x_b15(TyB);
4202b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_w_b0(TyB);
4203b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_smov_w_b15(TyB);
4204eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4205eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqabs        d,s,h,b
4206eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqneg        d,s,h,b
4207b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_d_d(TyD);
4208b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_s_s(TyS);
4209b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_h_h(TyH);
4210b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_b_b(TyB);
4211b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_d_d(TyD);
4212b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_s_s(TyS);
4213b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_h_h(TyH);
4214b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_b_b(TyB);
4215eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4216eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqabs        2d,4s,2s,8h,4h,16b,8b
4217eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqneg        2d,4s,2s,8h,4h,16b,8b
4218b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_2d_2d(TyD);
4219b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_4s_4s(TyS);
4220b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_2s_2s(TyS);
4221b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_8h_8h(TyH);
4222b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_4h_4h(TyH);
4223b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_16b_16b(TyB);
4224b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqabs_8b_8b(TyB);
4225b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_2d_2d(TyD);
4226b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_4s_4s(TyS);
4227b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_2s_2s(TyS);
4228b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_8h_8h(TyH);
4229b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_4h_4h(TyH);
4230b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_16b_16b(TyB);
4231b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqneg_8b_8b(TyB);
4232eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4233eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqadd        d,s,h,b
4234eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqadd        d,s,h,b
4235eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqsub        d,s,h,b
4236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqsub        d,s,h,b
4237b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_d_d_d(TyD);
4238b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_s_s_s(TyS);
4239b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_h_h_h(TyH);
4240b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_b_b_b(TyB);
4241b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_d_d_d(TyD);
4242b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_s_s_s(TyS);
4243b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_h_h_h(TyH);
4244b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_b_b_b(TyB);
4245b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_d_d_d(TyD);
4246b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_s_s_s(TyS);
4247b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_h_h_h(TyH);
4248b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_b_b_b(TyB);
4249b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_d_d_d(TyD);
4250b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_s_s_s(TyS);
4251b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_h_h_h(TyH);
4252b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_b_b_b(TyB);
4253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqadd        2d,4s,2s,8h,4h,16b,8b
4255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqadd        2d,4s,2s,8h,4h,16b,8b
4256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqsub        2d,4s,2s,8h,4h,16b,8b
4257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqsub        2d,4s,2s,8h,4h,16b,8b
4258b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_2d_2d_2d(TyD);
4259b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_4s_4s_4s(TyS);
4260b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_2s_2s_2s(TyS);
4261b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_8h_8h_8h(TyH);
4262b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_4h_4h_4h(TyH);
4263b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_16b_16b_16b(TyB);
4264b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqadd_8b_8b_8b(TyB);
4265b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_2d_2d_2d(TyD);
4266b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_4s_4s_4s(TyS);
4267b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_2s_2s_2s(TyS);
4268b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_8h_8h_8h(TyH);
4269b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_4h_4h_4h(TyH);
4270b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_16b_16b_16b(TyB);
4271b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqadd_8b_8b_8b(TyB);
4272b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_2d_2d_2d(TyD);
4273b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_4s_4s_4s(TyS);
4274b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_2s_2s_2s(TyS);
4275b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_8h_8h_8h(TyH);
4276b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_4h_4h_4h(TyH);
4277b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_16b_16b_16b(TyB);
4278b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqsub_8b_8b_8b(TyB);
4279b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_2d_2d_2d(TyD);
4280b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_4s_4s_4s(TyS);
4281b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_2s_2s_2s(TyS);
4282b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_8h_8h_8h(TyH);
4283b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_4h_4h_4h(TyH);
4284b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_16b_16b_16b(TyB);
4285b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqsub_8b_8b_8b(TyB);
4286eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4287eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlal      d_s_s[], s_h_h[]
4288eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlsl      d_s_s[], s_h_h[]
4289eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmull      d_s_s[], s_h_h[]
4290b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_d_s_s0(TyS);
4291b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_d_s_s3(TyS);
4292b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_s_h_h1(TyH);
4293b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_s_h_h5(TyH);
4294b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_d_s_s0(TyS);
4295b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_d_s_s3(TyS);
4296b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_s_h_h1(TyH);
4297b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_s_h_h5(TyH);
4298b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_d_s_s0(TyS);
4299b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_d_s_s3(TyS);
4300b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_s_h_h1(TyH);
4301b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_s_h_h5(TyH);
4302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlal{2}   2d_2s/4s_s[], 4s_4h/8h_h[]
4304eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlsl{2}   2d_2s/4s_s[], 4s_4h/8h_h[]
4305eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmull{2}   2d_2s/4s_s[], 4s_4h/2h_h[]
4306b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_2d_2s_s0(TyS);
4307b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_2d_2s_s3(TyS);
4308b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal2_2d_4s_s1(TyS);
4309b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal2_2d_4s_s2(TyS);
4310b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_4s_4h_h0(TyH);
4311b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_4s_4h_h7(TyH);
4312b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal2_4s_8h_h1(TyH);
4313b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal2_4s_8h_h4(TyH);
4314b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_2d_2s_s0(TyS);
4315b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_2d_2s_s3(TyS);
4316b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl2_2d_4s_s1(TyS);
4317b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl2_2d_4s_s2(TyS);
4318b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_4s_4h_h0(TyH);
4319b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_4s_4h_h7(TyH);
4320b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl2_4s_8h_h1(TyH);
4321b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl2_4s_8h_h4(TyH);
4322b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_2d_2s_s0(TyS);
4323b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_2d_2s_s3(TyS);
4324b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull2_2d_4s_s1(TyS);
4325b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull2_2d_4s_s2(TyS);
4326b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_4s_4h_h0(TyH);
4327b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_4s_4h_h7(TyH);
4328b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull2_4s_8h_h1(TyH);
4329b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull2_4s_8h_h4(TyH);
4330eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlal      d_s_s, s_h_h
4332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlsl      d_s_s, s_h_h
4333eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmull      d_s_s, s_h_h
4334b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_d_s_s(TyS);
4335b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_s_h_h(TyH);
4336b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_d_s_s(TyS);
4337b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_s_h_h(TyH);
4338b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_d_s_s(TyS);
4339b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_s_h_h(TyH);
4340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlal{2}   2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
4342eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmlsl{2}   2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
4343eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmull{2}   2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
4344b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_2d_2s_2s(TyS);
4345b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal2_2d_4s_4s(TyS);
4346b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal_4s_4h_4h(TyH);
4347b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlal2_4s_8h_8h(TyH);
4348b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_2d_2s_2s(TyS);
4349b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl2_2d_4s_4s(TyS);
4350b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl_4s_4h_4h(TyH);
4351b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmlsl2_4s_8h_8h(TyH);
4352b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_2d_2s_2s(TyS);
4353b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull2_2d_4s_4s(TyS);
4354b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull_4s_4h_4h(TyH);
4355b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmull2_4s_8h_8h(TyH);
4356eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4357eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmulh      s_s_s[], h_h_h[]
4358eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrdmulh     s_s_s[], h_h_h[]
4359b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_s_s_s1(TyS);
4360b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_s_s_s3(TyS);
4361b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_h_h_h2(TyH);
4362b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_h_h_h7(TyH);
4363b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_s_s_s1(TyS);
4364b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_s_s_s3(TyS);
4365b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_h_h_h2(TyH);
4366b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_h_h_h7(TyH);
4367eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4368eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmulh      4s_4s_s[], 2s_2s_s[], 8h_8h_h[], 4h_4h_h[]
4369eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrdmulh     4s_4s_s[], 2s_2s_s[], 8h_8h_h[], 4h_4h_h[]
4370b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_4s_4s_s1(TyS);
4371b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_4s_4s_s3(TyS);
4372b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_2s_2s_s1(TyS);
4373b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_2s_2s_s3(TyS);
4374b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_8h_8h_h2(TyH);
4375b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_8h_8h_h7(TyH);
4376b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_4h_4h_h2(TyH);
4377b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_4h_4h_h7(TyH);
4378b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_4s_4s_s1(TyS);
4379b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_4s_4s_s3(TyS);
4380b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_2s_2s_s1(TyS);
4381b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_2s_2s_s3(TyS);
4382b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_8h_8h_h2(TyH);
4383b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_8h_8h_h7(TyH);
4384b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_4h_4h_h2(TyH);
4385b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_4h_4h_h7(TyH);
4386eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4387eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmulh      h,s
4388eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrdmulh     h,s
4389b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_s_s_s(TyS);
4390b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_h_h_h(TyH);
4391b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_s_s_s(TyS);
4392b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_h_h_h(TyH);
4393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqdmulh      4s,2s,8h,4h
4395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrdmulh     4s,2s,8h,4h
4396b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_4s_4s_4s(TyS);
4397b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_2s_2s_2s(TyS);
4398b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_8h_8h_8h(TyH);
4399b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqdmulh_4h_4h_4h(TyH);
4400b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_4s_4s_4s(TyS);
4401b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_2s_2s_2s(TyS);
4402b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_8h_8h_8h(TyH);
4403b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrdmulh_4h_4h_4h(TyH);
4404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshl (reg)  d,s,h,b
4406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqshl (reg)  d,s,h,b
4407eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrshl (reg) d,s,h,b
4408eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqrshl (reg) d,s,h,b
4409b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_d_d_d(TyD);
4410b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_s_s_s(TyS);
4411b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_h_h_h(TyH);
4412b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_b_b_b(TyB);
4413b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_d_d_d(TyD);
4414b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_s_s_s(TyS);
4415b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_h_h_h(TyH);
4416b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_b_b_b(TyB);
4417b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_d_d_d(TyD);
4418b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_s_s_s(TyS);
4419b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_h_h_h(TyH);
4420b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_b_b_b(TyB);
4421b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_d_d_d(TyD);
4422b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_s_s_s(TyS);
4423b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_h_h_h(TyH);
4424b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_b_b_b(TyB);
4425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4426eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshl (reg)  2d,4s,2s,8h,4h,16b,8b
4427eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqshl (reg)  2d,4s,2s,8h,4h,16b,8b
4428eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrshl (reg) 2d,4s,2s,8h,4h,16b,8b
4429eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqrshl (reg) 2d,4s,2s,8h,4h,16b,8b
4430b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2d_2d_2d(TyD);
4431b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4s_4s_4s(TyS);
4432b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2s_2s_2s(TyS);
4433b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8h_8h_8h(TyH);
4434b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4h_4h_4h(TyH);
4435b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_16b_16b_16b(TyB);
4436b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8b_8b_8b(TyB);
4437b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2d_2d_2d(TyD);
4438b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4s_4s_4s(TyS);
4439b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2s_2s_2s(TyS);
4440b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8h_8h_8h(TyH);
4441b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4h_4h_4h(TyH);
4442b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_16b_16b_16b(TyB);
4443b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8b_8b_8b(TyB);
4444b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_2d_2d_2d(TyD);
4445b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_4s_4s_4s(TyS);
4446b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_2s_2s_2s(TyS);
4447b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_8h_8h_8h(TyH);
4448b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_4h_4h_4h(TyH);
4449b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_16b_16b_16b(TyB);
4450b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshl_8b_8b_8b(TyB);
4451b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_2d_2d_2d(TyD);
4452b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_4s_4s_4s(TyS);
4453b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_2s_2s_2s(TyS);
4454b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_8h_8h_8h(TyH);
4455b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_4h_4h_4h(TyH);
4456b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_16b_16b_16b(TyB);
4457b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshl_8b_8b_8b(TyB);
4458eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4459eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrshrn      s_d, h_s, b_h   #imm
4460eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqrshrn      s_d, h_s, b_h   #imm
4461eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshrn       s_d, h_s, b_h   #imm
4462eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqshrn       s_d, h_s, b_h   #imm
4463eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrshrun     s_d, h_s, b_h   #imm
4464eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshrun      s_d, h_s, b_h   #imm
4465b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_s_d_1(TyD);
4466b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_s_d_17(TyD);
4467b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_s_d_32(TyD);
4468b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_h_s_1(TyS);
4469b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_h_s_9(TyS);
4470b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_h_s_16(TyS);
4471b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_b_h_1(TyH);
4472b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_b_h_4(TyH);
4473b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_b_h_8(TyH);
4474b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_s_d_1(TyD);
4475b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_s_d_17(TyD);
4476b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_s_d_32(TyD);
4477b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_h_s_1(TyS);
4478b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_h_s_9(TyS);
4479b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_h_s_16(TyS);
4480b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_b_h_1(TyH);
4481b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_b_h_4(TyH);
4482b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_b_h_8(TyH);
4483b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_s_d_1(TyD);
4484b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_s_d_17(TyD);
4485b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_s_d_32(TyD);
4486b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_h_s_1(TyS);
4487b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_h_s_9(TyS);
4488b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_h_s_16(TyS);
4489b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_b_h_1(TyH);
4490b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_b_h_4(TyH);
4491b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_b_h_8(TyH);
4492b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_s_d_1(TyD);
4493b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_s_d_17(TyD);
4494b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_s_d_32(TyD);
4495b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_h_s_1(TyS);
4496b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_h_s_9(TyS);
4497b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_h_s_16(TyS);
4498b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_b_h_1(TyH);
4499b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_b_h_4(TyH);
4500b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_b_h_8(TyH);
4501b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_s_d_1(TyD);
4502b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_s_d_17(TyD);
4503b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_s_d_32(TyD);
4504b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_h_s_1(TyS);
4505b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_h_s_9(TyS);
4506b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_h_s_16(TyS);
4507b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_b_h_1(TyH);
4508b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_b_h_4(TyH);
4509b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_b_h_8(TyH);
4510b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_s_d_1(TyD);
4511b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_s_d_17(TyD);
4512b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_s_d_32(TyD);
4513b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_h_s_1(TyS);
4514b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_h_s_9(TyS);
4515b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_h_s_16(TyS);
4516b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_b_h_1(TyH);
4517b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_b_h_4(TyH);
4518b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_b_h_8(TyH);
4519eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4520eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrshrn{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
4521eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqrshrn{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
4522eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshrn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
4523eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqshrn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
4524eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqrshrun{2}  2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
4525eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshrun{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
4526b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_2s_2d_1(TyD);
4527b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_2s_2d_17(TyD);
4528b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_2s_2d_32(TyD);
4529b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_4s_2d_1(TyD);
4530b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_4s_2d_17(TyD);
4531b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_4s_2d_32(TyD);
4532b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_4h_4s_1(TyS);
4533b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_4h_4s_9(TyS);
4534b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_4h_4s_16(TyS);
4535b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_8h_4s_1(TyS);
4536b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_8h_4s_9(TyS);
4537b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_8h_4s_16(TyS);
4538b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_8b_8h_1(TyH);
4539b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_8b_8h_4(TyH);
4540b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn_8b_8h_8(TyH);
4541b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_16b_8h_1(TyH);
4542b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_16b_8h_4(TyH);
4543b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrn2_16b_8h_8(TyH);
4544b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_2s_2d_1(TyD);
4545b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_2s_2d_17(TyD);
4546b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_2s_2d_32(TyD);
4547b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_4s_2d_1(TyD);
4548b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_4s_2d_17(TyD);
4549b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_4s_2d_32(TyD);
4550b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_4h_4s_1(TyS);
4551b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_4h_4s_9(TyS);
4552b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_4h_4s_16(TyS);
4553b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_8h_4s_1(TyS);
4554b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_8h_4s_9(TyS);
4555b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_8h_4s_16(TyS);
4556b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_8b_8h_1(TyH);
4557b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_8b_8h_4(TyH);
4558b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn_8b_8h_8(TyH);
4559b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_16b_8h_1(TyH);
4560b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_16b_8h_4(TyH);
4561b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqrshrn2_16b_8h_8(TyH);
4562b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_2s_2d_1(TyD);
4563b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_2s_2d_17(TyD);
4564b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_2s_2d_32(TyD);
4565b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_4s_2d_1(TyD);
4566b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_4s_2d_17(TyD);
4567b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_4s_2d_32(TyD);
4568b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_4h_4s_1(TyS);
4569b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_4h_4s_9(TyS);
4570b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_4h_4s_16(TyS);
4571b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_8h_4s_1(TyS);
4572b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_8h_4s_9(TyS);
4573b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_8h_4s_16(TyS);
4574b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_8b_8h_1(TyH);
4575b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_8b_8h_4(TyH);
4576b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn_8b_8h_8(TyH);
4577b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_16b_8h_1(TyH);
4578b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_16b_8h_4(TyH);
4579b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrn2_16b_8h_8(TyH);
4580b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_2s_2d_1(TyD);
4581b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_2s_2d_17(TyD);
4582b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_2s_2d_32(TyD);
4583b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_4s_2d_1(TyD);
4584b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_4s_2d_17(TyD);
4585b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_4s_2d_32(TyD);
4586b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_4h_4s_1(TyS);
4587b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_4h_4s_9(TyS);
4588b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_4h_4s_16(TyS);
4589b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_8h_4s_1(TyS);
4590b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_8h_4s_9(TyS);
4591b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_8h_4s_16(TyS);
4592b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_8b_8h_1(TyH);
4593b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_8b_8h_4(TyH);
4594b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn_8b_8h_8(TyH);
4595b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_16b_8h_1(TyH);
4596b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_16b_8h_4(TyH);
4597b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshrn2_16b_8h_8(TyH);
4598b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_2s_2d_1(TyD);
4599b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_2s_2d_17(TyD);
4600b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_2s_2d_32(TyD);
4601b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_4s_2d_1(TyD);
4602b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_4s_2d_17(TyD);
4603b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_4s_2d_32(TyD);
4604b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_4h_4s_1(TyS);
4605b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_4h_4s_9(TyS);
4606b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_4h_4s_16(TyS);
4607b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_8h_4s_1(TyS);
4608b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_8h_4s_9(TyS);
4609b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_8h_4s_16(TyS);
4610b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_8b_8h_1(TyH);
4611b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_8b_8h_4(TyH);
4612b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun_8b_8h_8(TyH);
4613b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_16b_8h_1(TyH);
4614b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_16b_8h_4(TyH);
4615b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqrshrun2_16b_8h_8(TyH);
4616b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_2s_2d_1(TyD);
4617b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_2s_2d_17(TyD);
4618b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_2s_2d_32(TyD);
4619b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_4s_2d_1(TyD);
4620b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_4s_2d_17(TyD);
4621b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_4s_2d_32(TyD);
4622b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_4h_4s_1(TyS);
4623b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_4h_4s_9(TyS);
4624b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_4h_4s_16(TyS);
4625b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_8h_4s_1(TyS);
4626b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_8h_4s_9(TyS);
4627b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_8h_4s_16(TyS);
4628b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_8b_8h_1(TyH);
4629b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_8b_8h_4(TyH);
4630b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun_8b_8h_8(TyH);
4631b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_16b_8h_1(TyH);
4632b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_16b_8h_4(TyH);
4633b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshrun2_16b_8h_8(TyH);
4634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshl (imm)  d,s,h,b   _#imm
4636eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqshl (imm)  d,s,h,b   _#imm
4637eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshlu (imm) d,s,h,b   _#imm
4638b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_d_d_0(TyD);
4639b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_d_d_32(TyD);
4640b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_d_d_63(TyD);
4641b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_s_s_0(TyS);
4642b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_s_s_16(TyS);
4643b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_s_s_31(TyS);
4644b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_h_h_0(TyH);
4645b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_h_h_8(TyH);
4646b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_h_h_15(TyH);
4647b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_b_b_0(TyB);
4648b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_b_b_4(TyB);
4649b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_b_b_7(TyB);
4650b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_d_d_0(TyD);
4651b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_d_d_32(TyD);
4652b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_d_d_63(TyD);
4653b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_s_s_0(TyS);
4654b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_s_s_16(TyS);
4655b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_s_s_31(TyS);
4656b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_h_h_0(TyH);
4657b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_h_h_8(TyH);
4658b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_h_h_15(TyH);
4659b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_b_b_0(TyB);
4660b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_b_b_4(TyB);
4661b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_b_b_7(TyB);
4662b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_d_d_0(TyD);
4663b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_d_d_32(TyD);
4664b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_d_d_63(TyD);
4665b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_s_s_0(TyS);
4666b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_s_s_16(TyS);
4667b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_s_s_31(TyS);
4668b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_h_h_0(TyH);
4669b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_h_h_8(TyH);
4670b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_h_h_15(TyH);
4671b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_b_b_0(TyB);
4672b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_b_b_4(TyB);
4673b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_b_b_7(TyB);
4674eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4675eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshl (imm)  2d,4s,2s,8h,4h,16b,8b   _#imm
4676eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqshl (imm)  2d,4s,2s,8h,4h,16b,8b   _#imm
4677eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqshlu (imm) 2d,4s,2s,8h,4h,16b,8b   _#imm
4678b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2d_2d_0(TyD);
4679b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2d_2d_32(TyD);
4680b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2d_2d_63(TyD);
4681b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4s_4s_0(TyS);
4682b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4s_4s_16(TyS);
4683b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4s_4s_31(TyS);
4684b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2s_2s_0(TyS);
4685b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2s_2s_16(TyS);
4686b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_2s_2s_31(TyS);
4687b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8h_8h_0(TyH);
4688b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8h_8h_8(TyH);
4689b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8h_8h_15(TyH);
4690b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4h_4h_0(TyH);
4691b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4h_4h_8(TyH);
4692b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_4h_4h_15(TyH);
4693b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_16b_16b_0(TyB);
4694b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_16b_16b_3(TyB);
4695b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_16b_16b_7(TyB);
4696b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8b_8b_0(TyB);
4697b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8b_8b_3(TyB);
4698b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshl_8b_8b_7(TyB);
4699b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2d_2d_0(TyD);
4700b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2d_2d_32(TyD);
4701b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2d_2d_63(TyD);
4702b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4s_4s_0(TyS);
4703b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4s_4s_16(TyS);
4704b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4s_4s_31(TyS);
4705b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2s_2s_0(TyS);
4706b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2s_2s_16(TyS);
4707b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_2s_2s_31(TyS);
4708b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8h_8h_0(TyH);
4709b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8h_8h_8(TyH);
4710b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8h_8h_15(TyH);
4711b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4h_4h_0(TyH);
4712b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4h_4h_8(TyH);
4713b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_4h_4h_15(TyH);
4714b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_16b_16b_0(TyB);
4715b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_16b_16b_3(TyB);
4716b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_16b_16b_7(TyB);
4717b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8b_8b_0(TyB);
4718b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8b_8b_3(TyB);
4719b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqshl_8b_8b_7(TyB);
4720b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_2d_2d_0(TyD);
4721b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_2d_2d_32(TyD);
4722b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_2d_2d_63(TyD);
4723b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_4s_4s_0(TyS);
4724b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_4s_4s_16(TyS);
4725b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_4s_4s_31(TyS);
4726b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_2s_2s_0(TyS);
4727b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_2s_2s_16(TyS);
4728b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_2s_2s_31(TyS);
4729b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_8h_8h_0(TyH);
4730b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_8h_8h_8(TyH);
4731b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_8h_8h_15(TyH);
4732b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_4h_4h_0(TyH);
4733b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_4h_4h_8(TyH);
4734b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_4h_4h_15(TyH);
4735b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_16b_16b_0(TyB);
4736b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_16b_16b_3(TyB);
4737b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_16b_16b_7(TyB);
4738b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_8b_8b_0(TyB);
4739b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_8b_8b_3(TyB);
4740b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqshlu_8b_8b_7(TyB);
4741eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4742eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqxtn        s_d,h_s,b_h
4743eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqxtn        s_d,h_s,b_h
4744eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqxtun       s_d,h_s,b_h
4745b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn_s_d(TyD);
4746b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn_h_s(TyS);
4747b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn_b_h(TyH);
4748b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn_s_d(TyD);
4749b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn_h_s(TyS);
4750b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn_b_h(TyH);
4751b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun_s_d(TyD);
4752b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun_h_s(TyS);
4753b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun_b_h(TyH);
4754eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4755eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqxtn{2}     2s/4s_2d, 4h/8h_4s, 8b/16b_8h
4756eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uqxtn{2}     2s/4s_2d, 4h/8h_4s, 8b/16b_8h
4757eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sqxtun{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
4758b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn_2s_2d(TyD);
4759b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn2_4s_2d(TyD);
4760b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn_4h_4s(TyS);
4761b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn2_8h_4s(TyS);
4762b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn_8b_8h(TyH);
4763b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtn2_16b_8h(TyH);
4764b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn_2s_2d(TyD);
4765b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn2_4s_2d(TyD);
4766b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn_4h_4s(TyS);
4767b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn2_8h_4s(TyS);
4768b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn_8b_8h(TyH);
4769b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uqxtn2_16b_8h(TyH);
4770b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun_2s_2d(TyD);
4771b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun2_4s_2d(TyD);
4772b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun_4h_4s(TyS);
4773b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun2_8h_4s(TyS);
4774b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun_8b_8h(TyH);
4775b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sqxtun2_16b_8h(TyH);
4776eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4777eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srhadd       4s,2s,8h,4h,16b,8b
4778eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // urhadd       4s,2s,8h,4h,16b,8b
4779b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srhadd_4s_4s_4s(TyS);
4780b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srhadd_2s_2s_2s(TyS);
4781b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srhadd_8h_8h_8h(TyH);
4782b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srhadd_4h_4h_4h(TyH);
4783b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srhadd_16b_16b_16b(TyB);
4784b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srhadd_8b_8b_8b(TyB);
4785b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urhadd_4s_4s_4s(TyS);
4786b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urhadd_2s_2s_2s(TyS);
4787b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urhadd_8h_8h_8h(TyH);
4788b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urhadd_4h_4h_4h(TyH);
4789b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urhadd_16b_16b_16b(TyB);
4790b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urhadd_8b_8b_8b(TyB);
4791eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4792eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sshl (reg)   d
4793eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ushl (reg)   d
4794b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_d_d_d(TyD);
4795b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_d_d_d(TyD);
4796eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4797eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sshl (reg)   2d,4s,2s,8h,4h,16b,8b
4798eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ushl (reg)   2d,4s,2s,8h,4h,16b,8b
4799b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_2d_2d_2d(TyD);
4800b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_4s_4s_4s(TyS);
4801b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_2s_2s_2s(TyS);
4802b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_8h_8h_8h(TyH);
4803b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_4h_4h_4h(TyH);
4804b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_16b_16b_16b(TyB);
4805b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshl_8b_8b_8b(TyB);
4806b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_2d_2d_2d(TyD);
4807b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_4s_4s_4s(TyS);
4808b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_2s_2s_2s(TyS);
4809b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_8h_8h_8h(TyH);
4810b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_4h_4h_4h(TyH);
4811b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_16b_16b_16b(TyB);
4812b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushl_8b_8b_8b(TyB);
4813eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4814eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // shl  (imm)   d
4815eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sshr (imm)   d
4816eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ushr (imm)   d
4817b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_d_d_0(TyD);
4818b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_d_d_32(TyD);
4819b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_d_d_63(TyD);
4820b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_d_d_1(TyD);
4821b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_d_d_32(TyD);
4822b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_d_d_64(TyD);
4823e0d397ea0d66e3d8619e2bb6c122ec3c5f77751dDmitriy Ivanov   if (1) test_ushr_d_d_1(TyD);
4824e0d397ea0d66e3d8619e2bb6c122ec3c5f77751dDmitriy Ivanov   if (1) test_ushr_d_d_32(TyD);
4825b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_d_d_64(TyD);
4826eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4827eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // shl  (imm)   16b,8b,8h,4h,4s,2s,2d
4828eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sshr (imm)   2d,4s,2s,8h,4h,16b,8b
4829eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ushr (imm)   2d,4s,2s,8h,4h,16b,8b
4830b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_2d_2d_0(TyD);
4831b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_2d_2d_13(TyD);
4832b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_2d_2d_63(TyD);
4833b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_4s_4s_0(TyS);
4834b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_4s_4s_13(TyS);
4835b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_4s_4s_31(TyS);
4836b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_2s_2s_0(TyS);
4837b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_2s_2s_13(TyS);
4838b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_2s_2s_31(TyS);
4839b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_8h_8h_0(TyH);
4840b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_8h_8h_13(TyH);
4841b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_8h_8h_15(TyH);
4842b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_4h_4h_0(TyH);
4843b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_4h_4h_13(TyH);
4844b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_4h_4h_15(TyH);
4845b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_16b_16b_0(TyB);
4846b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_16b_16b_7(TyB);
4847b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_shl_8b_8b_0(TyB);
4848b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_shl_8b_8b_7(TyB);
4849b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_2d_2d_1(TyD);
4850b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_2d_2d_13(TyD);
4851b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_2d_2d_64(TyD);
4852b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_4s_4s_1(TyS);
4853b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_4s_4s_13(TyS);
4854b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_4s_4s_32(TyS);
4855b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_2s_2s_1(TyS);
4856b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_2s_2s_13(TyS);
4857b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_2s_2s_32(TyS);
4858b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_8h_8h_1(TyH);
4859b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_8h_8h_13(TyH);
4860b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_8h_8h_16(TyH);
4861b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_4h_4h_1(TyH);
4862b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_4h_4h_13(TyH);
4863b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_4h_4h_16(TyH);
4864b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_16b_16b_1(TyB);
4865b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_16b_16b_8(TyB);
4866b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshr_8b_8b_1(TyB);
4867b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_sshr_8b_8b_8(TyB);
4868b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_2d_2d_1(TyD);
4869b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_2d_2d_13(TyD);
4870b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_2d_2d_64(TyD);
4871b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_4s_4s_1(TyS);
4872b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_4s_4s_13(TyS);
4873b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_4s_4s_32(TyS);
4874b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_2s_2s_1(TyS);
4875b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_2s_2s_13(TyS);
4876b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_2s_2s_32(TyS);
4877b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_8h_8h_1(TyH);
4878b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_8h_8h_13(TyH);
4879b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_8h_8h_16(TyH);
4880b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_4h_4h_1(TyH);
4881b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_4h_4h_13(TyH);
4882b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_4h_4h_16(TyH);
4883b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_16b_16b_1(TyB);
4884b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_16b_16b_8(TyB);
4885b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushr_8b_8b_1(TyB);
4886b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ushr_8b_8b_8(TyB);
4887eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4888eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ssra (imm)   d
4889eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // usra (imm)   d
4890b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_d_d_1(TyD);
4891b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_d_d_32(TyD);
4892b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_d_d_64(TyD);
4893b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_d_d_1(TyD);
4894b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_d_d_32(TyD);
4895b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_d_d_64(TyD);
4896eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4897eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ssra (imm)   2d,4s,2s,8h,4h,16b,8b
4898eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // usra (imm)   2d,4s,2s,8h,4h,16b,8b
4899b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_2d_2d_1(TyD);
4900b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_2d_2d_32(TyD);
4901b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_2d_2d_64(TyD);
4902b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_4s_4s_1(TyS);
4903b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_4s_4s_16(TyS);
4904b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_4s_4s_32(TyS);
4905b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_2s_2s_1(TyS);
4906b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_2s_2s_16(TyS);
4907b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_2s_2s_32(TyS);
4908b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_8h_8h_1(TyH);
4909b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_8h_8h_8(TyH);
4910b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_8h_8h_16(TyH);
4911b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_4h_4h_1(TyH);
4912b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_4h_4h_8(TyH);
4913b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_4h_4h_16(TyH);
4914b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_16b_16b_1(TyB);
4915b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_16b_16b_3(TyB);
4916b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_16b_16b_8(TyB);
4917b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_8b_8b_1(TyB);
4918b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_8b_8b_3(TyB);
4919b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ssra_8b_8b_8(TyB);
4920b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_2d_2d_1(TyD);
4921b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_2d_2d_32(TyD);
4922b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_2d_2d_64(TyD);
4923b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_4s_4s_1(TyS);
4924b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_4s_4s_16(TyS);
4925b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_4s_4s_32(TyS);
4926b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_2s_2s_1(TyS);
4927b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_2s_2s_16(TyS);
4928b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_2s_2s_32(TyS);
4929b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_8h_8h_1(TyH);
4930b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_8h_8h_8(TyH);
4931b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_8h_8h_16(TyH);
4932b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_4h_4h_1(TyH);
4933b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_4h_4h_8(TyH);
4934b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_4h_4h_16(TyH);
4935b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_16b_16b_1(TyB);
4936b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_16b_16b_3(TyB);
4937b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_16b_16b_8(TyB);
4938b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_8b_8b_1(TyB);
4939b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_8b_8b_3(TyB);
4940b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usra_8b_8b_8(TyB);
4941eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4942eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srshl (reg)  d
4943eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // urshl (reg)  d
4944b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_d_d_d(TyD);
4945b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_d_d_d(TyD);
4946eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4947eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srshl (reg)  2d,4s,2s,8h,4h,16b,8b
4948eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // urshl (reg)  2d,4s,2s,8h,4h,16b,8b
4949b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_2d_2d_2d(TyD);
4950b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_4s_4s_4s(TyS);
4951b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_2s_2s_2s(TyS);
4952b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_8h_8h_8h(TyH);
4953b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_4h_4h_4h(TyH);
4954b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_16b_16b_16b(TyB);
4955b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshl_8b_8b_8b(TyB);
4956b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_2d_2d_2d(TyD);
4957b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_4s_4s_4s(TyS);
4958b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_2s_2s_2s(TyS);
4959b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_8h_8h_8h(TyH);
4960b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_4h_4h_4h(TyH);
4961b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_16b_16b_16b(TyB);
4962b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshl_8b_8b_8b(TyB);
4963eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4964eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srshr (imm)  d
4965eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // urshr (imm)  d
4966b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_d_d_1(TyD);
4967b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_d_d_32(TyD);
4968b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_d_d_64(TyD);
4969b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_d_d_1(TyD);
4970b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_d_d_32(TyD);
4971b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_d_d_64(TyD);
4972eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
4973eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srshr (imm)  2d,4s,2s,8h,4h,16b,8b
4974eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // urshr (imm)  2d,4s,2s,8h,4h,16b,8b
4975b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_2d_2d_1(TyD);
4976b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_2d_2d_32(TyD);
4977b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_2d_2d_64(TyD);
4978b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_4s_4s_1(TyS);
4979b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_4s_4s_16(TyS);
4980b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_4s_4s_32(TyS);
4981b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_2s_2s_1(TyS);
4982b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_2s_2s_16(TyS);
4983b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_2s_2s_32(TyS);
4984b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_8h_8h_1(TyH);
4985b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_8h_8h_8(TyH);
4986b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_8h_8h_16(TyH);
4987b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_4h_4h_1(TyH);
4988b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_4h_4h_8(TyH);
4989b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_4h_4h_16(TyH);
4990b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_16b_16b_1(TyB);
4991b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_16b_16b_3(TyB);
4992b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_16b_16b_8(TyB);
4993b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_8b_8b_1(TyB);
4994b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_8b_8b_3(TyB);
4995b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srshr_8b_8b_8(TyB);
4996b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_2d_2d_1(TyD);
4997b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_2d_2d_32(TyD);
4998b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_2d_2d_64(TyD);
4999b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_4s_4s_1(TyS);
5000b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_4s_4s_16(TyS);
5001b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_4s_4s_32(TyS);
5002b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_2s_2s_1(TyS);
5003b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_2s_2s_16(TyS);
5004b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_2s_2s_32(TyS);
5005b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_8h_8h_1(TyH);
5006b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_8h_8h_8(TyH);
5007b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_8h_8h_16(TyH);
5008b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_4h_4h_1(TyH);
5009b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_4h_4h_8(TyH);
5010b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_4h_4h_16(TyH);
5011b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_16b_16b_1(TyB);
5012b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_16b_16b_3(TyB);
5013b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_16b_16b_8(TyB);
5014b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_8b_8b_1(TyB);
5015b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_8b_8b_3(TyB);
5016b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urshr_8b_8b_8(TyB);
5017eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5018eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srsra (imm)  d
5019eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ursra (imm)  d
5020b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_d_d_1(TyD);
5021b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_d_d_32(TyD);
5022b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_d_d_64(TyD);
5023b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_d_d_1(TyD);
5024b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_d_d_32(TyD);
5025b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_d_d_64(TyD);
5026eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5027eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // srsra (imm)  2d,4s,2s,8h,4h,16b,8b
5028eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ursra (imm)  2d,4s,2s,8h,4h,16b,8b
5029b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_2d_2d_1(TyD);
5030b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_2d_2d_32(TyD);
5031b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_2d_2d_64(TyD);
5032b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_4s_4s_1(TyS);
5033b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_4s_4s_16(TyS);
5034b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_4s_4s_32(TyS);
5035b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_2s_2s_1(TyS);
5036b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_2s_2s_16(TyS);
5037b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_2s_2s_32(TyS);
5038b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_8h_8h_1(TyH);
5039b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_8h_8h_8(TyH);
5040b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_8h_8h_16(TyH);
5041b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_4h_4h_1(TyH);
5042b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_4h_4h_8(TyH);
5043b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_4h_4h_16(TyH);
5044b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_16b_16b_1(TyB);
5045b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_16b_16b_3(TyB);
5046b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_16b_16b_8(TyB);
5047b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_8b_8b_1(TyB);
5048b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_8b_8b_3(TyB);
5049b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_srsra_8b_8b_8(TyB);
5050b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_2d_2d_1(TyD);
5051b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_2d_2d_32(TyD);
5052b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_2d_2d_64(TyD);
5053b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_4s_4s_1(TyS);
5054b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_4s_4s_16(TyS);
5055b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_4s_4s_32(TyS);
5056b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_2s_2s_1(TyS);
5057b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_2s_2s_16(TyS);
5058b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_2s_2s_32(TyS);
5059b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_8h_8h_1(TyH);
5060b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_8h_8h_8(TyH);
5061b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_8h_8h_16(TyH);
5062b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_4h_4h_1(TyH);
5063b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_4h_4h_8(TyH);
5064b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_4h_4h_16(TyH);
5065b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_16b_16b_1(TyB);
5066b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_16b_16b_3(TyB);
5067b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_16b_16b_8(TyB);
5068b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_8b_8b_1(TyB);
5069b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_8b_8b_3(TyB);
5070b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursra_8b_8b_8(TyB);
5071eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5072eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sshll{2} (imm)  2d_2s/4s, 4s_4h/8h, 8h_8b/16b
5073eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ushll{2} (imm)  2d_2s/4s, 4s_4h/8h, 8h_8b/16b
5074b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_2d_2s_0(TyS);
5075b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_2d_2s_15(TyS);
5076b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_2d_2s_31(TyS);
5077b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_2d_4s_0(TyS);
5078b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_2d_4s_15(TyS);
5079b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_2d_4s_31(TyS);
5080b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_4s_4h_0(TyH);
5081b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_4s_4h_7(TyH);
5082b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_4s_4h_15(TyH);
5083b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_4s_8h_0(TyH);
5084b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_4s_8h_7(TyH);
5085b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_4s_8h_15(TyH);
5086b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_8h_8b_0(TyB);
5087b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_8h_8b_3(TyB);
5088b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll_8h_8b_7(TyB);
5089b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_8h_16b_0(TyB);
5090b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_8h_16b_3(TyB);
5091b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_sshll2_8h_16b_7(TyB);
5092b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_2d_2s_0(TyS);
5093b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_2d_2s_15(TyS);
5094b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_2d_2s_31(TyS);
5095b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_2d_4s_0(TyS);
5096b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_2d_4s_15(TyS);
5097b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_2d_4s_31(TyS);
5098b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_4s_4h_0(TyH);
5099b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_4s_4h_7(TyH);
5100b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_4s_4h_15(TyH);
5101b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_4s_8h_0(TyH);
5102b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_4s_8h_7(TyH);
5103b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_4s_8h_15(TyH);
5104b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_8h_8b_0(TyB);
5105b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_8h_8b_3(TyB);
5106b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll_8h_8b_7(TyB);
5107b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_8h_16b_0(TyB);
5108b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_8h_16b_3(TyB);
5109b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_ushll2_8h_16b_7(TyB);
5110eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5111eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // suqadd  d,s,h,b
5112eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // usqadd  d,s,h,b
5113b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_d_d(TyD);
5114b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_s_s(TyS);
5115b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_h_h(TyH);
5116b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_b_b(TyB);
5117b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_d_d(TyD);
5118b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_s_s(TyS);
5119b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_h_h(TyH);
5120b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_b_b(TyB);
5121eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5122eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // suqadd  2d,4s,2s,8h,4h,16b,8b
5123eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // usqadd  2d,4s,2s,8h,4h,16b,8b
5124b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_2d_2d(TyD);
5125b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_4s_4s(TyS);
5126b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_2s_2s(TyS);
5127b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_8h_8h(TyH);
5128b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_4h_4h(TyH);
5129b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_16b_16b(TyB);
5130b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_suqadd_8b_8b(TyB);
5131b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_2d_2d(TyD);
5132b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_4s_4s(TyS);
5133b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_2s_2s(TyS);
5134b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_8h_8h(TyH);
5135b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_4h_4h(TyH);
5136b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_16b_16b(TyB);
5137b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_usqadd_8b_8b(TyB);
5138eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5139eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbl     8b_{16b}_8b, 16b_{16b}_16b
5140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbl     8b_{16b,16b}_8b, 16b_{16b,16b}_16b
5141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbl     8b_{16b,16b,16b}_8b, 16b_{16b,16b,16b}_16b
5142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbl     8b_{16b,16b,16b,16b}_8b, 16b_{16b,16b,16b,16b}_16b
5143b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_16b_1reg(TyB);
5144b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_16b_2reg(TyB);
5145b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_16b_3reg(TyB);
5146b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_16b_4reg(TyB);
5147b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_8b_1reg(TyB);
5148b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_8b_2reg(TyB);
5149b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_8b_3reg(TyB);
5150b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbl_8b_4reg(TyB);
5151eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5152eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbx     8b_{16b}_8b, 16b_{16b}_16b
5153eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbx     8b_{16b,16b}_8b, 16b_{16b,16b}_16b
5154eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbx     8b_{16b,16b,16b}_8b, 16b_{16b,16b,16b}_16b
5155eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // tbx     8b_{16b,16b,16b,16b}_8b, 16b_{16b,16b,16b,16b}_16b
5156b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_16b_1reg(TyB);
5157b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_16b_2reg(TyB);
5158b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_16b_3reg(TyB);
5159b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_16b_4reg(TyB);
5160b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_8b_1reg(TyB);
5161b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_8b_2reg(TyB);
5162b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_8b_3reg(TyB);
5163b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_tbx_8b_4reg(TyB);
5164eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5165eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // trn1    2d,4s,2s,8h,4h,16b,8b
5166eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // trn2    2d,4s,2s,8h,4h,16b,8b
5167b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_2d_2d_2d(TyD);
5168b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_4s_4s_4s(TyS);
5169b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_2s_2s_2s(TyS);
5170b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_8h_8h_8h(TyH);
5171b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_4h_4h_4h(TyH);
5172b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_16b_16b_16b(TyB);
5173b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn1_8b_8b_8b(TyB);
5174b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_2d_2d_2d(TyD);
5175b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_4s_4s_4s(TyS);
5176b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_2s_2s_2s(TyS);
5177b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_8h_8h_8h(TyH);
5178b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_4h_4h_4h(TyH);
5179b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_16b_16b_16b(TyB);
5180b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_trn2_8b_8b_8b(TyB);
5181eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5182eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // urecpe      4s,2s
5183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ursqrte     4s,2s
5184b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urecpe_4s_4s(TyS);
5185b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_urecpe_2s_2s(TyS);
5186b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursqrte_4s_4s(TyS);
5187b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_ursqrte_2s_2s(TyS);
5188eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5189eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uzp1      2d,4s,2s,8h,4h,16b,8b
5190eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // uzp2      2d,4s,2s,8h,4h,16b,8b
5191eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // zip1      2d,4s,2s,8h,4h,16b,8b
5192eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // zip2      2d,4s,2s,8h,4h,16b,8b
5193b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_2d_2d_2d(TyD);
5194b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_4s_4s_4s(TyS);
5195b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_2s_2s_2s(TyS);
5196b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_8h_8h_8h(TyH);
5197b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_4h_4h_4h(TyH);
5198b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_16b_16b_16b(TyB);
5199b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp1_8b_8b_8b(TyB);
5200b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_2d_2d_2d(TyD);
5201b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_4s_4s_4s(TyS);
5202b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_2s_2s_2s(TyS);
5203b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_8h_8h_8h(TyH);
5204b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_4h_4h_4h(TyH);
5205b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_16b_16b_16b(TyB);
5206b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_uzp2_8b_8b_8b(TyB);
5207b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_2d_2d_2d(TyD);
5208b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_4s_4s_4s(TyS);
5209b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_2s_2s_2s(TyS);
5210b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_8h_8h_8h(TyH);
5211b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_4h_4h_4h(TyH);
5212b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_16b_16b_16b(TyB);
5213b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip1_8b_8b_8b(TyB);
5214b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_2d_2d_2d(TyD);
5215b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_4s_4s_4s(TyS);
5216b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_2s_2s_2s(TyS);
5217b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_8h_8h_8h(TyH);
5218b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_4h_4h_4h(TyH);
5219b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_16b_16b_16b(TyB);
5220b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (0) test_zip2_8b_8b_8b(TyB);
5221eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5222eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // xtn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
5223b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_xtn_2s_2d(TyD);
5224b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_xtn2_4s_2d(TyD);
5225b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_xtn_4h_4s(TyS);
5226b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_xtn2_8h_4s(TyS);
5227b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_xtn_8b_8h(TyH);
5228b5b05affe1b9179353e7ccfdc96df750529daedeDmitriy Ivanov   if (1) test_xtn2_16b_8h(TyH);
5229eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5230eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ======================== MEM ========================
5231eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5232eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld1  (multiple 1-element structures to 1/2/3/4 regs)
5233eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld1  (single 1-element structure to one lane of 1 reg)
5234eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld1r (single 1-element structure and rep to all lanes of 1 reg)
5235eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld2  (multiple 2-element structures to 2 regs)
5237eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld2  (single 2-element structure to one lane of 2 regs)
5238eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld2r (single 2-element structure and rep to all lanes of 2 regs)
5239eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5240eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld3  (multiple 3-element structures to 3 regs)
5241eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld3  (single 3-element structure to one lane of 3 regs)
5242eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld3r (single 3-element structure and rep to all lanes of 3 regs)
5243eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5244eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld4  (multiple 4-element structures to 4 regs)
5245eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld4  (single 4-element structure to one lane of 4 regs)
5246eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ld4r (single 4-element structure and rep to all lanes of 4 regs)
5247eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5248eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ldnp  q_q_addr,d_d_addr,s_s_addr  (load pair w/ non-temporal hint)
5249eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = reg + uimm7 * reg_size
5250eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5251eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ldp   q_q_addr,d_d_addr,s_s_addr  (load pair)
5252eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = [Xn|SP],#imm   or [Xn|SP,#imm]!  or [Xn|SP,#imm]
5253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ldr   q,d,s,h,b from addr
5255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = [Xn|SP],#imm   or [Xn|SP,#imm]!  or [Xn|SP,#imm]
5256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ldr   q,d,s from  pc+#imm19
5258eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5259eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ldr   q,d,s,h,b from addr
5260eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = [Xn|SP, R <extend> <shift]
5261eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5262eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ldur  q,d,s,h,b from addr
5263eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = [Xn|SP,#imm] (unscaled offset)
5264eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5265eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st1 (multiple 1-element structures from 1/2/3/4 regs)
5266eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st1 (single 1-element structure for 1 lane of 1 reg)
5267eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5268eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st2 (multiple 2-element structures from 2 regs)
5269eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st2 (single 2-element structure from 1 lane of 2 regs)
5270eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5271eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st3 (multiple 3-element structures from 3 regs)
5272eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st3 (single 3-element structure from 1 lane of 3 regs)
5273eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5274eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st4 (multiple 4-element structures from 4 regs)
5275eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // st4 (single 4-element structure from one lane of 4 regs)
5276eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5277eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // stnp q_q_addr, d_d_addr, s_s_addr
5278eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //      addr = [Xn|SP, #imm]
5279eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5280eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // stp  q_q_addr, d_d_addr, s_s_addr
5281eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //      addr = [Xn|SP], #imm  or [Xn|SP, #imm]!  or [Xn|SP, #imm]
5282eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5283eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // str  q,d,s,h,b_addr
5284eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //      addr = [Xn|SP], #simm  or [Xn|SP, #simm]!  or [Xn|SP, #pimm]
5285eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5286eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // str   q,d,s,h,b_addr
5287eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = [Xn|SP, R <extend> <shift]
5288eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5289eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // stur  q,d,s,h,b_addr
5290eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   //       addr = [Xn|SP,#imm] (unscaled offset)
5291eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5292eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // ======================== CRYPTO ========================
5293eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5294eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // aesd       16b (aes single round decryption)
5295eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // aese       16b (aes single round encryption)
5296eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // aesimc     16b (aes inverse mix columns)
5297eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // aesmc      16b (aes mix columns)
5298eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5299eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha1c      q_s_4s
5300eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha1h      s_s
5301eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha1m      q_s_4s
5302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha1p      q_s_4s
5303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha1su0    4s_4s_4s
5304eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha1su1    4s_4s
5305eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5306eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha256h2   q_q_4s
5307eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha256h    q_q_4s
5308eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha256su0  4s_4s
5309eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   // sha256su1  4s_4s_4s
5310eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5311eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   return 0;
5312eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov}
5313eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5314eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5315eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
5316eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* -- Alphabetical list of insns                                 -- */
5317eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
5318eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/*
5319eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   abs      d
5320eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   abs      2d,4s,2s,8h,4h,16b,8b
5321eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   add      d
5322eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   add      2d,4s,2s,8h,4h,16b,8b
5323eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addhn    2s.2d.2d, 4s.2d.2d, h_from_s and b_from_h (add and get high half)
5324eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addp     d (add pairs, across)
5325eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addp     2d,4s,2s,8h,4h,16b,8b
5326eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addv     4s,8h,4h,16b,18b (reduce across vector)
5327eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aesd     16b (aes single round decryption)
5328eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aese     16b (aes single round encryption)
5329eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aesimc   16b (aes inverse mix columns)
5330eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aesmc    16b (aes mix columns)
5331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   and      16b,8b
5332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5333eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bic      4s,2s,8h,4h (vector, imm)
5334eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   also movi, mvni, orr
5335eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5336eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bic      16b,8b (vector,reg) (bit clear)
5337eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bif      16b,8b (vector) (bit insert if false)
5338eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bit      16b,8b (vector) (bit insert if true)
5339eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bsl      16b,8b (vector) (bit select)
5340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cls      4s,2s,8h,4h,16b,8b (count leading sign bits)
5342eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   clz      4s,2s,8h,4h,16b,8b (count leading zero bits)
5343eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5344eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq     d
5345eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq     2d,4s,2s,8h,4h,16b,8b
5346eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq_z   d
5347eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq_z   2d,4s,2s,8h,4h,16b,8b
5348eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5349eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge     d
5350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge     2d,4s,2s,8h,4h,16b,8b
5351eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge_z   d
5352eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge_z   2d,4s,2s,8h,4h,16b,8b
5353eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5354eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt     d
5355eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt     2d,4s,2s,8h,4h,16b,8b
5356eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt_z   d
5357eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt_z   2d,4s,2s,8h,4h,16b,8b
5358eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5359eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhi     d
5360eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhi     2d,4s,2s,8h,4h,16b,8b
5361eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5362eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhs     d
5363eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhs     2d,4s,2s,8h,4h,16b,8b
5364eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5365eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmle_z   d
5366eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmle_z   2d,4s,2s,8h,4h,16b,8b
5367eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5368eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmlt_z   d
5369eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmlt_z   2d,4s,2s,8h,4h,16b,8b
5370eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5371eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmtst    d
5372eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmtst    2d,4s,2s,8h,4h,16b,8b
5373eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5374eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cnt      16b,8b (population count per byte)
5375eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5376eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   dup      d,s,h,b (vec elem to scalar)
5377eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   dup      2d,4s,2s,8h,4h,16b,8b (vec elem to vector)
5378eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   dup      2d,4s,2s,8h,4h,16b,8b (general reg to vector)
5379eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5380eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   eor      16b,8b (vector)
5381eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ext      16b,8b,#imm4 (concat 2 vectors, then slice)
5382eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5383eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabd     d,s
5384eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabd     2d,4s,2s
5385eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5386eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabs     d,s
5387eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabs     2d,4s,2s
5388eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5389eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facge    s,d  (floating abs compare GE)
5390eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facge    2d,4s,2s
5391eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5392eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facgt    s,d  (floating abs compare GE)
5393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facgt    2d,4s,2s
5394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fadd     d,s
5396eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fadd     2d,4s,2s
5397eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5398eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   faddp    d,s (floating add pair)
5399eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   faddp    2d,4s,2s
5400eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5401eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fccmp    d,s (floating point conditional quiet compare)
5402eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fccmpe   d,s (floating point conditional signaling compare)
5403eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq    d,s
5405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq    2d,4s,2s
5406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq_z  d,s
5407eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq_z  2d,4s,2s
5408eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5409eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge    d,s
5410eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge    2d,4s,2s
5411eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge_z  d,s
5412eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge_z  2d,4s,2s
5413eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5414eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt    d,s
5415eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt    2d,4s,2s
5416eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt_z  d,s
5417eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt_z  2d,4s,2s
5418eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5419eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmle_z  d,s
5420eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmle_z  2d,4s,2s
5421eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5422eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmlt_z  d,s
5423eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmlt_z  2d,4s,2s
5424eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmp     d,s (floating point quiet, set flags)
5426eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmp_z   d,s
5427eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmpe    d,s (floating point signaling, set flags)
5428eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmpe_z  d,s
5429eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5430eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcsel    d,s (fp cond select)
5431eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5432eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvt     s_h,d_h,h_s,d_s,h_d,s_d (fp convert, scalar)
5433eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5434eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtas   d,s  (fcvt to signed int, nearest, ties away)
5435eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtas   2d,4s,2s
5436eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtas   w_s,x_s,w_d,x_d
5437eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5438eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtau   d,s  (fcvt to unsigned int, nearest, ties away)
5439eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtau   2d,4s,2s
5440eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtau   w_s,x_s,w_d,x_d
5441eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5442eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtl{2} 4s/4h, 4s/8h, 2d/2s, 2d/4s (float convert to longer form)
5443eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5444eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtms   d,s  (fcvt to signed int, minus inf)
5445eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtms   2d,4s,2s
5446eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtms   w_s,x_s,w_d,x_d
5447eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5448eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtmu   d,s  (fcvt to unsigned int, minus inf)
5449eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtmu   2d,4s,2s
5450eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtmu   w_s,x_s,w_d,x_d
5451eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5452eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtn{2} 4h/4s, 8h/4s, 2s/2d, 4s/2d (float convert to narrower form)
5453eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5454eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtns   d,s  (fcvt to signed int, nearest)
5455eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtns   2d,4s,2s
5456eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtns   w_s,x_s,w_d,x_d
5457eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5458eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtnu   d,s  (fcvt to unsigned int, nearest)
5459eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtnu   2d,4s,2s
5460eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtnu   w_s,x_s,w_d,x_d
5461eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5462eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtps   d,s  (fcvt to signed int, plus inf)
5463eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtps   2d,4s,2s
5464eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtps   w_s,x_s,w_d,x_d
5465eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5466eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtpu   d,s  (fcvt to unsigned int, plus inf)
5467eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtpu   2d,4s,2s
5468eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtpu   w_s,x_s,w_d,x_d
5469eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5470eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtxn   s_d (fcvt to lower prec narrow, rounding to odd)
5471eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtxn   2s_2d,4s_2d
5472eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5473eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs   s,d (fcvt to signed fixedpt, to zero) (w/ #fbits)
5474eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs   2d,4s,2s
5475eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5476eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs   s,d (fcvt to signed integer, to zero)
5477eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs   2d,4s,2s
5478eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5479eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs   w_s,x_s,w_d,x_d (fcvt to signed fixedpt, to zero) (w/ #fbits)
5480eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5481eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs   w_s,x_s,w_d,x_d (fcvt to signed integer, to zero)
5482eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5483eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu   s,d (fcvt to unsigned fixedpt, to zero) (w/ #fbits)
5484eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu   2d,4s,2s
5485eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5486eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu   s,d (fcvt to unsigned integer, to zero)
5487eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu   2d,4s,2s
5488eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5489eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu   w_s,x_s,w_d,x_d (fcvt to unsigned fixedpt, to zero) (w/ #fbits)
5490eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5491eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu   w_s,x_s,w_d,x_d (fcvt to unsigned integer, to zero)
5492eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5493eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fdiv     d,s
5494eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fdiv     2d,4s,2s
5495eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5496eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmadd    d,s
5497eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fnmadd   d,s
5498eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fnmsub   d,s
5499eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fnmul    d,s
5500eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5501eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmax     d,s
5502eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmin     d,s
5503eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5504eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmax     2d,4s,2s
5505eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmin     2d,4s,2s
5506eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5507eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnm   d,s ("max number")
5508eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnm   d,s
5509eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5510eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnm   2d,4s,2s
5511eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnm   2d,4s,2s
5512eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5513eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnmp  d_2d,s_2s ("max number pairwise")
5514eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnmp  d_2d,s_2s
5515eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5516eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnmp  2d,4s,2s
5517eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnmp  2d,4s,2s
5518eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5519eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnmv  s_4s (maxnum across vector)
5520eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnmv  s_4s
5521eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5522eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxp    d_2d,s_2s (max of a pair)
5523eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminp    d_2d,s_2s (max of a pair)
5524eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5525eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxp    2d,4s,2s  (max pairwise)
5526eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminp    2d,4s,2s
5527eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5528eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxv    s_4s (max across vector)
5529eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminv    s_4s
5530eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5531eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmla     d_d_d[],s_s_s[] (by element)
5532eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmla     2d_2d_d[],4s_4s_s[],2s_2s_s[]
5533eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5534eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmla     2d,4s,2s
5535eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5536eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmls     d_d_d[],s_s_s[] (by element)
5537eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmls     2d_2d_d[],4s_4s_s[],2s_2s_s[]
5538eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5539eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmls     2d,4s,2s
5540eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5541eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov     2d,4s,2s #imm (part of the MOVI/MVNI/ORR/BIC imm group)
5542eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5543eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov     d_d,s_s
5544eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5545eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov     s_w,w_s,d_x,d[1]_x,x_d,x_d[1]
5546eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5547eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov     d,s #imm
5548eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5549eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmsub    d,s
5550eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5551eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul     d_d_d[],s_s_s[]
5552eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul     2d_2d_d[],4s_4s_s[],2s_2s_s[]
5553eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5554eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul     2d,4s,2s
5555eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul     d,s
5556eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5557eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx    d_d_d[],s_s_s[]
5558eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx    2d_2d_d[],4s_4s_s[],2s_2s_s[]
5559eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5560eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx    d,s
5561eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx    2d,4s,2s
5562eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5563eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fneg     d,s
5564eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fneg     2d,4s,2s
5565eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5566eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecpe   d,s (recip estimate)
5567eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecpe   2d,4s,2s
5568eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5569eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecps   d,s (recip step)
5570eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecps   2d,4s,2s
5571eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5572eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecpx   d,s (recip exponent)
5573eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5574eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinta   2d,4s,2s (round to integral, nearest away)
5575eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinta   d,s
5576eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5577eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinti   2d,4s,2s (round to integral, per FPCR)
5578eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinti   d,s
5579eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5580eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintm   2d,4s,2s (round to integral, minus inf)
5581eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintm   d,s
5582eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5583eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintn   2d,4s,2s (round to integral, nearest, to even)
5584eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintn   d,s
5585eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5586eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintp   2d,4s,2s (round to integral, plus inf)
5587eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintp   d,s
5588eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5589eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintx   2d,4s,2s (round to integral exact, per FPCR)
5590eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintx   d,s
5591eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5592eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintz   2d,4s,2s (round to integral, zero)
5593eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintz   d,s
5594eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5595eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrte  d,s (est)
5596eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrte  2d,4s,2s
5597eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5598eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrts  d,s (step)
5599eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrts  2d,4s,2s
5600eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5601eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsqrt    d,s
5602eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsqrt    2d,4s,2s
5603eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5604eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsub     d,s
5605eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsub     2d,4s,2s
5606eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5607eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ins      d[]_d[],s[]_s[],h[]_h[],b[]_b[]
5608eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5609eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ins      d[]_x, s[]_w, h[]_w, b[]_w
5610eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5611eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld1  (multiple 1-element structures to 1/2/3/4 regs)
5612eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld1  (single 1-element structure to one lane of 1 reg)
5613eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld1r (single 1-element structure and rep to all lanes of 1 reg)
5614eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5615eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld2  (multiple 2-element structures to 2 regs)
5616eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld2  (single 2-element structure to one lane of 2 regs)
5617eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld2r (single 2-element structure and rep to all lanes of 2 regs)
5618eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5619eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld3  (multiple 3-element structures to 3 regs)
5620eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld3  (single 3-element structure to one lane of 3 regs)
5621eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld3r (single 3-element structure and rep to all lanes of 3 regs)
5622eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5623eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld4  (multiple 4-element structures to 4 regs)
5624eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld4  (single 4-element structure to one lane of 4 regs)
5625eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld4r (single 4-element structure and rep to all lanes of 4 regs)
5626eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5627eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldnp  q_q_addr,d_d_addr,s_s_addr  (load pair w/ non-temporal hint)
5628eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = reg + uimm7 * reg_size
5629eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5630eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldp   q_q_addr,d_d_addr,s_s_addr  (load pair)
5631eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP],#imm   or [Xn|SP,#imm]!  or [Xn|SP,#imm]
5632eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5633eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldr   q,d,s,h,b from addr
5634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP],#imm   or [Xn|SP,#imm]!  or [Xn|SP,#imm]
5635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5636eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldr   q,d,s from  pc+#imm19
5637eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5638eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldr   q,d,s,h,b from addr
5639eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP, R <extend> <shift]
5640eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5641eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldur  q,d,s,h,b from addr
5642eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP,#imm] (unscaled offset)
5643eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5644eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mla   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
5645eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mla   4s,2s,8h,4h,16b,8b
5646eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5647eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mls   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
5648eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mls   4s,2s,8h,4h,16b,8b
5649eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5650eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  16b,8b   #imm8, LSL #0
5651eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  8h,4h    #imm8, LSL #0 or 8
5652eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  4s,2s    #imm8, LSL #0, 8, 16, 24
5653eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  4s,2s    #imm8, MSL #8 or 16
5654eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  d,       #imm64
5655eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  2d,      #imm64
5656eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5657eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mul   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
5658eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mul   4s,2s,8h,4h,16b,8b
5659eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5660eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mvni  8h,4h    #imm8, LSL #0 or 8
5661eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mvni  4s,2s    #imm8, LSL #0, 8, 16, 24
5662eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mvni  4s,2s    #imm8, MSL #8 or 16
5663eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5664eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   neg   d
5665eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   neg   2d,4s,2s,8h,4h,16b,8b
5666eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5667eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   not   16b,8b
5668eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5669eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orn   16b,8b
5670eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5671eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orr   8h,4h   #imm8, LSL #0 or 8
5672eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orr   4s,2s   #imm8, LSL #0, 8, 16 or 24
5673eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5674eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orr   16b,8b
5675eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5676eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   pmul  16b,8b
5677eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5678eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   pmull{2}  8h_8b_8b,8h_16b_16b,1q_1d_1d,1d_2d_2d
5679eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5680eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   raddhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
5681eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5682eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rbit    16b,8b
5683eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rev16   16b,8b
5684eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rev32   16b,8b,8h,4h
5685eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rev64   16b,8b,8h,4h,4s,2s
5686eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5687eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rshrn{2}  2s/4s_2d, 8h/4h_4s, 2s/4s_2d,   #imm in 1 .. elem_bits
5688eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5689eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rsubhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
5690eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5691eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saba      16b,8b,8h,4h,4s,2s
5692eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sabal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5693eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5694eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sabd      16b,8b,8h,4h,4s,2s
5695eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sabdl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5696eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5697eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sadalp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
5698eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5699eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5700eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5701eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddlp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
5702eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5703eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddlv    h_16b/8b, s_8h/4h, d_4s
5704eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5705eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
5706eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5707eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     d,s        _#fbits
5708eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     2d,4s,2s   _#fbits
5709eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5710eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     d,s
5711eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     2d,4s,2s
5712eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5713eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     s_w, d_w, s_x, d_x,   _#fbits
5714eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     s_w, d_w, s_x, d_x
5715eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5716eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1c       q_s_4s
5717eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1h       s_s
5718eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1m       q_s_4s
5719eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1p       q_s_4s
5720eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1su0     4s_4s_4s
5721eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1su1     4s_4s
5722eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256h2    q_q_4s
5723eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256h     q_q_4s
5724eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256su0   4s_4s
5725eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256su1   4s_4s_4s
5726eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5727eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shadd       16b,8b,8h,4h,4s,2s
5728eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5729eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shl         d_#imm
5730eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shl         16b,8b,8h,4h,4s,2s,2d  _#imm
5731eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5732eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shll{2}   8h_8b/16b_#8, 4s_4h/8h_#16, 2d_2s/4s_#32
5733eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5734eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shrn{2}  2s/4s_2d, 8h/4h_4s, 2s/4s_2d,   #imm in 1 .. elem_bits
5735eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5736eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shsub       16b,8b,8h,4h,4s,2s
5737eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5738eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sli         d_#imm
5739eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sli         2d,4s,2s,8h,4h,16b,8b  _#imm
5740eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5741eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smax        4s,2s,8h,4h,16b,8b
5742eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5743eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smaxp       4s,2s,8h,4h,16b,8b
5744eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5745eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smaxv       s_4s,h_8h,h_4h,b_16b,b_8b
5746eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5747eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smin        4s,2s,8h,4h,16b,8b
5748eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5749eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sminp       4s,2s,8h,4h,16b,8b
5750eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5751eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sminv       s_4s,h_8h,h_4h,b_16b,b_8b
5752eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5753eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlal{2}    2d_2s/4s_s[], 4s_4h/8h_h[]
5754eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlal{2}    2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5755eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5756eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlsl{2}    2d_2s/4s_s[], 4s_4h/8h_h[]
5757eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlsl{2}    2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5758eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5759eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smov        w_b[], w_h[], x_b[], x_h[], x_s[]
5760eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5761eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smull{2}    2d_2s/4s_s[]. 4s_4h/8h_h[]
5762eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smull{2}    2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5763eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5764eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqabs       d,s,h,b
5765eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqabs       2d,4s,2s,8h,4h,16b,8b
5766eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5767eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqadd       d,s,h,b
5768eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqadd       2d,4s,2s,8h,4h,16b,8b
5769eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5770eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal     d_s_s[], s_h_h[]
5771eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal{2}  2d_2s/4s_s[], 4s_4h/8h_h[]
5772eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5773eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal     d_s_s, s_h_h
5774eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
5775eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5776eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl     d_s_s[], s_h_h[]
5777eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl{2}  2d_2s/4s_s[], 4s_4h/8h_h[]
5778eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5779eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl     d_s_s, s_h_h
5780eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
5781eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5782eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh     s_s_s[], h_h_h[]
5783eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh     4s_4s_s[], 2s_2s_s[], 8h_8h_h[], 4h_4h_h[]
5784eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5785eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh     h,s
5786eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh     4s,2s,8h,4h
5787eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5788eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull     d_s_s[], s_h_h[]
5789eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull{2}  2d_2s/4s_s[], 4s_4h/2h_h[]
5790eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5791eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull     d_s_s,s_h_h
5792eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
5793eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5794eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqneg       d,s,h,b
5795eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqneg       2d,4s,2s,8h,4h,16b,8b
5796eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5797eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh    s_s_s[], h_h_h[]
5798eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh    4s_4s_s[], 2s_2s_s[], 8h_8h_h[], 4h_4h_h[]
5799eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5800eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh    h,s
5801eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh    4s,2s,8h,4h
5802eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5803eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshl      d,s,h,b
5804eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshl      2d,4s,2s,8h,4h,16b,8b
5805eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5806eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrn     s_d, h_s, b_h   #imm
5807eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrn{2}  2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
5808eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5809eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrun     s_d, h_s, b_h   #imm
5810eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrun{2}  2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
5811eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5812eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        d,s,h,b   _#imm
5813eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        2d,4s,2s,8h,4h,16b,8b   _#imm
5814eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5815eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        d,s,h,b
5816eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        2d,4s,2s,8h,4h,16b,8b
5817eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5818eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshlu       d,s,h,b  _#imm
5819eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshlu       2d,4s,2s,8h,4h,16b,8b  _#imm
5820eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5821eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrn       s_d, h_s, b_h   #imm
5822eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
5823eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5824eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrun      s_d, h_s, b_h   #imm
5825eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrun{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
5826eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5827eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqsub       d,s,h,b
5828eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqsub       2d,4s,2s,8h,4h,16b,8b
5829eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5830eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtn       s_d,h_s,b_h
5831eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
5832eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5833eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtun      s_d,h_s,b_h
5834eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtun{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h
5835eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5836eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srhadd      4s,2s,8h,4h,16b,8b
5837eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5838eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sri         d_#imm
5839eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sri         2d,4s,2s,8h,4h,16b,8b  _#imm
5840eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5841eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshl (reg) d
5842eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshl       2d,4s,2s,8h,4h,16b,8b
5843eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5844eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshr (imm) d
5845eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshr       2d,4s,2s,8h,4h,16b,8b
5846eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5847eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srsra (imm) d
5848eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srsra       2d,4s,2s,8h,4h,16b,8b
5849eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5850eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshl (reg)  d
5851eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshl        2d,4s,2s,8h,4h,16b,8b
5852eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5853eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshll{2} (imm)  2d_2s/4s  4s_4h/8h, 8h_8b/16b
5854eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5855eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshr (imm)  d
5856eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshr        2d,4s,2s,8h,4h,16b,8b
5857eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5858eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssra (imm)  d
5859eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssra        2d,4s,2s,8h,4h,16b,8b
5860eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5861eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssubl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5862eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5863eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssubw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
5864eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5865eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st1 (multiple 1-element structures from 1/2/3/4 regs)
5866eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st1 (single 1-element structure for 1 lane of 1 reg)
5867eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5868eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st2 (multiple 2-element structures from 2 regs)
5869eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st2 (single 2-element structure from 1 lane of 2 regs)
5870eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5871eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st3 (multiple 3-element structures from 3 regs)
5872eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st3 (single 3-element structure from 1 lane of 3 regs)
5873eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5874eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st4 (multiple 4-element structures from 4 regs)
5875eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st4 (single 4-element structure from one lane of 4 regs)
5876eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5877eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   stnp q_q_addr, d_d_addr, s_s_addr
5878eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        addr = [Xn|SP, #imm]
5879eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5880eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   stp  q_q_addr, d_d_addr, s_s_addr
5881eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        addr = [Xn|SP], #imm  or [Xn|SP, #imm]!  or [Xn|SP, #imm]
5882eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5883eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   str  q,d,s,h,b_addr
5884eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        addr = [Xn|SP], #simm  or [Xn|SP, #simm]!  or [Xn|SP, #pimm]
5885eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5886eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   str   q,d,s,h,b_addr
5887eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP, R <extend> <shift]
5888eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5889eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   stur  q,d,s,h,b_addr
5890eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP,#imm] (unscaled offset)
5891eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5892eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sub   d
5893eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sub   2d,4s,2s,8h,4h,16b,8b
5894eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5895eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   subhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
5896eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5897eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   suqadd  d,s,h,b
5898eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   suqadd  2d,4s,2s,8h,4h,16b,8b
5899eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5900eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b}_8b, 16b_{16b}_16b
5901eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b,16b}_8b, 16b_{16b,16b}_16b
5902eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b,16b,16b}_8b, 16b_{16b,16b,16b}_16b
5903eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b,16b,16b,16b}_8b, 16b_{16b,16b,16b,16b}_16b
5904eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5905eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b}_8b, 16b_{16b}_16b
5906eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b,16b}_8b, 16b_{16b,16b}_16b
5907eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b,16b,16b}_8b, 16b_{16b,16b,16b}_16b
5908eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b,16b,16b,16b}_8b, 16b_{16b,16b,16b,16b}_16b
5909eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5910eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   trn1    2d,4s,2s,8h,4h,16b,8b
5911eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   trn2    2d,4s,2s,8h,4h,16b,8b
5912eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5913eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaba      16b,8b,8h,4h,4s,2s
5914eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uabal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5915eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5916eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uabd      16b,8b,8h,4h,4s,2s
5917eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uabdl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5918eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5919eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uadalp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
5920eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5921eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5922eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5923eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddlp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
5924eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5925eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddlv    h_16b/8b, s_8h/4h, d_4s
5926eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5927eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
5928eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5929eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     d,s        _#fbits
5930eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     2d,4s,2s   _#fbits
5931eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5932eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     d,s
5933eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     2d,4s,2s
5934eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5935eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     s_w, d_w, s_x, d_x,   _#fbits
5936eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     s_w, d_w, s_x, d_x
5937eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5938eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uhadd       16b,8b,8h,4h,4s,2s
5939eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5940eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uhsub       16b,8b,8h,4h,4s,2s
5941eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5942eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umax        4s,2s,8h,4h,16b,8b
5943eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5944eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umaxp       4s,2s,8h,4h,16b,8b
5945eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5946eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umaxv       s_4s,h_8h,h_4h,b_16b,b_8b
5947eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5948eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umin        4s,2s,8h,4h,16b,8b
5949eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5950eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uminp       4s,2s,8h,4h,16b,8b
5951eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5952eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uminv       s_4s,h_8h,h_4h,b_16b,b_8b
5953eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5954eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlal{2}    2d_2s/4s_s[], 4s_4h/8h_h[]
5955eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlal{2}    2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5956eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5957eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlsl{2}    2d_2s/4s_s[], 4s_4h/8h_h[]
5958eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlsl{2}    2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5959eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5960eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umov        w_b[], w_h[], x_b[], x_h[], x_s[]
5961eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5962eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umull{2}    2d_2s/4s_s[]. 4s_4h/8h_h[]
5963eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umull{2}    2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
5964eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5965eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqadd       d,s,h,b
5966eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqadd       2d,4s,2s,8h,4h,16b,8b
5967eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5968eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshl      d,s,h,b
5969eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshl      2d,4s,2s,8h,4h,16b,8b
5970eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5971eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshrn     s_d, h_s, b_h   #imm
5972eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshrn{2}  2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
5973eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5974eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        d,s,h,b   _#imm
5975eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        2d,4s,2s,8h,4h,16b,8b   _#imm
5976eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5977eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        d,s,h,b
5978eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        2d,4s,2s,8h,4h,16b,8b
5979eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5980eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshrn       s_d, h_s, b_h   #imm
5981eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshrn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
5982eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5983eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqsub       d,s,h,b
5984eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqsub       2d,4s,2s,8h,4h,16b,8b
5985eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5986eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqxtn       s_d,h_s,b_h
5987eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqxtn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
5988eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5989eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urecpe      4s,2s
5990eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5991eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urhadd      4s,2s,8h,4h,16b,8b
5992eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5993eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshl (reg) d
5994eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshl       2d,4s,2s,8h,4h,16b,8b
5995eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5996eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshr (imm) d
5997eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshr       2d,4s,2s,8h,4h,16b,8b
5998eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
5999eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ursqrte     4s,2s
6000eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6001eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ursra (imm) d
6002eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ursra       2d,4s,2s,8h,4h,16b,8b
6003eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6004eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushl (reg)  d
6005eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushl        2d,4s,2s,8h,4h,16b,8b
6006eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6007eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushll{2} (imm)  2d_2s/4s  4s_4h/8h, 8h_8b/16b
6008eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6009eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushr (imm)  d
6010eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushr        2d,4s,2s,8h,4h,16b,8b
6011eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6012eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usqadd      d,s,h,b
6013eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usqadd      2d,4s,2s,8h,4h,16b,8b
6014eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6015eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usra (imm)  d
6016eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usra        2d,4s,2s,8h,4h,16b,8b
6017eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6018eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usubl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6019eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6020eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usubw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
6021eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6022eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uzp1      2d,4s,2s,8h,4h,16b,8b
6023eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uzp2      2d,4s,2s,8h,4h,16b,8b
6024eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6025eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   xtn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
6026eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6027eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   zip1      2d,4s,2s,8h,4h,16b,8b
6028eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   zip2      2d,4s,2s,8h,4h,16b,8b
6029eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov*/
6030eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6031eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6032eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
6033eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* -- List of insns, grouped somewhat by laneage configuration   -- */
6034eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/* ---------------------------------------------------------------- */
6035eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov/*
6036eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ======================== FP ========================
6037eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6038eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabs      d,s
6039eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabs      2d,4s,2s
6040eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6041eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fneg      d,s
6042eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fneg      2d,4s,2s
6043eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6044eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsqrt     d,s
6045eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsqrt     2d,4s,2s
6046eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6047eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fadd      d,s
6048eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsub      d,s
6049eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6050eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fadd      2d,4s,2s
6051eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fsub      2d,4s,2s
6052eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6053eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabd      d,s
6054eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fabd      2d,4s,2s
6055eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6056eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   faddp     d,s (floating add pair)
6057eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   faddp     2d,4s,2s
6058eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6059eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fccmp     d,s (floating point conditional quiet compare)
6060eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fccmpe    d,s (floating point conditional signaling compare)
6061eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6062eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq     d,s
6063eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge     d,s
6064eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt     d,s
6065eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facgt     d,s  (floating abs compare GE)
6066eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facge     d,s  (floating abs compare GE)
6067eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6068eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq     2d,4s,2s
6069eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge     2d,4s,2s
6070eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt     2d,4s,2s
6071eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facge     2d,4s,2s
6072eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   facgt     2d,4s,2s
6073eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6074eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq_z   d,s
6075eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge_z   d,s
6076eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt_z   d,s
6077eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmle_z   d,s
6078eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmlt_z   d,s
6079eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6080eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmeq_z   2d,4s,2s
6081eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmge_z   2d,4s,2s
6082eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmgt_z   2d,4s,2s
6083eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmle_z   2d,4s,2s
6084eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmlt_z   2d,4s,2s
6085eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6086eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmp_z    d,s
6087eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmpe_z   d,s
6088eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmp      d,s (floating point quiet, set flags)
6089eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcmpe     d,s (floating point signaling, set flags)
6090eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6091eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcsel     d,s (fp cond select)
6092eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6093eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fdiv      d,s
6094eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fdiv      2d,4s,2s
6095eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6096eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmadd     d,s
6097eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fnmadd    d,s
6098eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmsub     d,s
6099eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fnmsub    d,s
6100eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6101eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fnmul     d,s
6102eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6103eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmax      d,s
6104eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmin      d,s
6105eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnm    d,s ("max number")
6106eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnm    d,s
6107eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6108eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmax      2d,4s,2s
6109eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmin      2d,4s,2s
6110eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnm    2d,4s,2s
6111eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnm    2d,4s,2s
6112eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6113eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnmp   d_2d,s_2s ("max number pairwise")
6114eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnmp   d_2d,s_2s
6115eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6116eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnmp   2d,4s,2s
6117eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnmp   2d,4s,2s
6118eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6119eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxnmv   s_4s (maxnum across vector)
6120eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminnmv   s_4s
6121eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6122eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxp     d_2d,s_2s (max of a pair)
6123eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminp     d_2d,s_2s (max of a pair)
6124eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6125eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxp     2d,4s,2s  (max pairwise)
6126eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminp     2d,4s,2s
6127eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6128eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmaxv     s_4s (max across vector)
6129eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fminv     s_4s
6130eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6131eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmla      2d,4s,2s
6132eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmls      2d,4s,2s
6133eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6134eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmla      d_d_d[],s_s_s[] (by element)
6135eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmls      d_d_d[],s_s_s[] (by element)
6136eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6137eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmla      2d_2d_d[],4s_4s_s[],2s_2s_s[]
6138eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmls      2d_2d_d[],4s_4s_s[],2s_2s_s[]
6139eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6140eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov      2d,4s,2s #imm (part of the MOVI/MVNI/ORR/BIC imm group)
6141eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6142eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov      d_d,s_s
6143eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6144eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov      s_w,w_s,d_x,d[1]_x,x_d,x_d[1]
6145eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6146eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmov      d,s #imm
6147eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6148eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul      d_d_d[],s_s_s[]
6149eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul      2d_2d_d[],4s_4s_s[],2s_2s_s[]
6150eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6151eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul      2d,4s,2s
6152eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmul      d,s
6153eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6154eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx     d_d_d[],s_s_s[]
6155eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx     2d_2d_d[],4s_4s_s[],2s_2s_s[]
6156eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6157eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx     d,s
6158eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fmulx     2d,4s,2s
6159eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6160eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecpe    d,s (recip estimate)
6161eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecpe    2d,4s,2s
6162eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6163eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecps    d,s (recip step)
6164eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecps    2d,4s,2s
6165eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6166eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frecpx    d,s (recip exponent)
6167eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6168eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinta    d,s
6169eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinti    d,s
6170eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintm    d,s
6171eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintn    d,s
6172eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintp    d,s
6173eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintx    d,s
6174eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintz    d,s
6175eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6176eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinta    2d,4s,2s (round to integral, nearest away)
6177eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frinti    2d,4s,2s (round to integral, per FPCR)
6178eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintm    2d,4s,2s (round to integral, minus inf)
6179eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintn    2d,4s,2s (round to integral, nearest, to even)
6180eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintp    2d,4s,2s (round to integral, plus inf)
6181eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintx    2d,4s,2s (round to integral exact, per FPCR)
6182eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frintz    2d,4s,2s (round to integral, zero)
6183eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6184eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrte   d,s (est)
6185eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrte   2d,4s,2s
6186eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6187eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrts   d,s (step)
6188eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   frsqrts   2d,4s,2s
6189eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6190eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ======================== CONV ========================
6191eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6192eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvt      s_h,d_h,h_s,d_s,h_d,s_d (fp convert, scalar)
6193eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6194eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtl{2}  4s/4h, 4s/8h, 2d/2s, 2d/4s (float convert to longer form)
6195eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6196eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtn{2}  4h/4s, 8h/4s, 2s/2d, 4s/2d (float convert to narrower form)
6197eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6198eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtas    d,s  (fcvt to signed int,   nearest, ties away)
6199eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtau    d,s  (fcvt to unsigned int, nearest, ties away)
6200eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtas    2d,4s,2s
6201eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtau    2d,4s,2s
6202eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtas    w_s,x_s,w_d,x_d
6203eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtau    w_s,x_s,w_d,x_d
6204eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6205eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtms    d,s  (fcvt to signed int,   minus inf)
6206eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtmu    d,s  (fcvt to unsigned int, minus inf)
6207eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtms    2d,4s,2s
6208eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtmu    2d,4s,2s
6209eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtms    w_s,x_s,w_d,x_d
6210eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtmu    w_s,x_s,w_d,x_d
6211eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6212eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtns    d,s  (fcvt to signed int,   nearest)
6213eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtnu    d,s  (fcvt to unsigned int, nearest)
6214eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtns    2d,4s,2s
6215eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtnu    2d,4s,2s
6216eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtns    w_s,x_s,w_d,x_d
6217eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtnu    w_s,x_s,w_d,x_d
6218eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6219eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtps    d,s  (fcvt to signed int,   plus inf)
6220eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtpu    d,s  (fcvt to unsigned int, plus inf)
6221eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtps    2d,4s,2s
6222eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtpu    2d,4s,2s
6223eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtps    w_s,x_s,w_d,x_d
6224eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtpu    w_s,x_s,w_d,x_d
6225eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6226eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs    d,s (fcvt to signed integer,   to zero)
6227eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu    d,s (fcvt to unsigned integer, to zero)
6228eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs    2d,4s,2s
6229eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu    2d,4s,2s
6230eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs    w_s,x_s,w_d,x_d
6231eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu    w_s,x_s,w_d,x_d
6232eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6233eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs    d,s (fcvt to signed fixedpt,   to zero) (w/ #fbits)
6234eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu    d,s (fcvt to unsigned fixedpt, to zero) (w/ #fbits)
6235eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs    2d,4s,2s
6236eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu    2d,4s,2s
6237eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzs    w_s,x_s,w_d,x_d (fcvt to signed fixedpt,   to zero) (w/ #fbits)
6238eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtzu    w_s,x_s,w_d,x_d (fcvt to unsigned fixedpt, to zero) (w/ #fbits)
6239eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6240eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtxn    s_d (fcvt to lower prec narrow, rounding to odd)
6241eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   fcvtxn    2s_2d,4s_2d
6242eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6243eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     d,s        _#fbits
6244eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     d,s        _#fbits
6245eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6246eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     2d,4s,2s   _#fbits
6247eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     2d,4s,2s   _#fbits
6248eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6249eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     d,s
6250eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     d,s
6251eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6252eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     2d,4s,2s
6253eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     2d,4s,2s
6254eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6255eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     s_w, d_w, s_x, d_x,   _#fbits
6256eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     s_w, d_w, s_x, d_x,   _#fbits
6257eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6258eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   scvtf     s_w, d_w, s_x, d_x
6259eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ucvtf     s_w, d_w, s_x, d_x
6260eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6261eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ======================== INT ========================
6262eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6263eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   abs       d
6264eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   neg       d
6265eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6266eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   abs       2d,4s,2s,8h,4h,16b,8b
6267eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   neg       2d,4s,2s,8h,4h,16b,8b
6268eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6269eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   add       d
6270eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sub       d
6271eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6272eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   add       2d,4s,2s,8h,4h,16b,8b
6273eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sub       2d,4s,2s,8h,4h,16b,8b
6274eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6275eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addhn{2}   2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
6276eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   subhn{2}   2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
6277eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   raddhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
6278eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rsubhn{2}  2s/4s_2d_2d, 4h/8h_4s_4s, 8b/16b_8h_8h
6279eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6280eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addp     d (add pairs, across)
6281eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addp     2d,4s,2s,8h,4h,16b,8b
6282eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   addv     4s,8h,4h,16b,18b (reduce across vector)
6283eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6284eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   and      16b,8b
6285eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6286eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orr      8h,4h   #imm8, LSL #0 or 8
6287eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orr      4s,2s   #imm8, LSL #0, 8, 16 or 24
6288eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bic      8h,4h   #imm8, LSL #0 or 8
6289eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bic      4s,2s   #imm8, LSL #0, 8, 16 or 24
6290eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   also movi, mvni
6291eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6292eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bic      16b,8b (vector,reg) (bit clear)
6293eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bif      16b,8b (vector) (bit insert if false)
6294eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bit      16b,8b (vector) (bit insert if true)
6295eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   bsl      16b,8b (vector) (bit select)
6296eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6297eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cls      4s,2s,8h,4h,16b,8b (count leading sign bits)
6298eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   clz      4s,2s,8h,4h,16b,8b (count leading zero bits)
6299eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6300eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq     d
6301eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge     d
6302eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt     d
6303eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhi     d
6304eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhs     d
6305eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmtst    d
6306eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6307eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq     2d,4s,2s,8h,4h,16b,8b
6308eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge     2d,4s,2s,8h,4h,16b,8b
6309eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt     2d,4s,2s,8h,4h,16b,8b
6310eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhi     2d,4s,2s,8h,4h,16b,8b
6311eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmhs     2d,4s,2s,8h,4h,16b,8b
6312eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmtst    2d,4s,2s,8h,4h,16b,8b
6313eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6314eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq_z   d
6315eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge_z   d
6316eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt_z   d
6317eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmle_z   d
6318eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmlt_z   d
6319eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6320eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmeq_z   2d,4s,2s,8h,4h,16b,8b
6321eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmge_z   2d,4s,2s,8h,4h,16b,8b
6322eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmgt_z   2d,4s,2s,8h,4h,16b,8b
6323eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmle_z   2d,4s,2s,8h,4h,16b,8b
6324eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cmlt_z   2d,4s,2s,8h,4h,16b,8b
6325eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6326eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   cnt      16b,8b (population count per byte)
6327eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6328eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   dup      d,s,h,b (vec elem to scalar)
6329eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   dup      2d,4s,2s,8h,4h,16b,8b (vec elem to vector)
6330eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   dup      2d,4s,2s,8h,4h,16b,8b (general reg to vector)
6331eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6332eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   eor      16b,8b (vector)
6333eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ext      16b,8b,#imm4 (concat 2 vectors, then slice)
6334eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6335eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ins      d[]_d[],s[]_s[],h[]_h[],b[]_b[]
6336eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6337eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ins      d[]_x, s[]_w, h[]_w, b[]_w
6338eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6339eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mla   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
6340eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mla   4s,2s,8h,4h,16b,8b
6341eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6342eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mls   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
6343eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mls   4s,2s,8h,4h,16b,8b
6344eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6345eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  16b,8b   #imm8, LSL #0
6346eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  8h,4h    #imm8, LSL #0 or 8
6347eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  4s,2s    #imm8, LSL #0, 8, 16, 24
6348eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  4s,2s    #imm8, MSL #8 or 16
6349eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  d,       #imm64
6350eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   movi  2d,      #imm64
6351eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6352eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mul   4s_4s_s[],2s_2s_s[],8h_8h_h[],4h_4h_h[]
6353eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mul   4s,2s,8h,4h,16b,8b
6354eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6355eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mvni  8h,4h    #imm8, LSL #0 or 8
6356eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mvni  4s,2s    #imm8, LSL #0, 8, 16, 24
6357eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   mvni  4s,2s    #imm8, MSL #8 or 16
6358eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6359eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   not   16b,8b
6360eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6361eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orn   16b,8b
6362eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   orr   16b,8b
6363eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6364eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   pmul  16b,8b
6365eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6366eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   pmull{2}  8h_8b_8b,8h_16b_16b,1q_1d_1d,1d_2d_2d
6367eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6368eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rbit    16b,8b
6369eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rev16   16b,8b
6370eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rev32   16b,8b,8h,4h
6371eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rev64   16b,8b,8h,4h,4s,2s
6372eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6373eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saba      16b,8b,8h,4h,4s,2s
6374eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaba      16b,8b,8h,4h,4s,2s
6375eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6376eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sabal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6377eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uabal{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6378eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6379eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sabd      16b,8b,8h,4h,4s,2s
6380eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uabd      16b,8b,8h,4h,4s,2s
6381eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6382eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sabdl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6383eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uabdl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6384eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6385eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sadalp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
6386eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uadalp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
6387eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6388eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6389eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6390eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssubl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6391eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usubl{2}  2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6392eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6393eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddlp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
6394eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddlp    4h_8b,8h_16b,2s_4h,4s_8h,1d_2s,2d_4s
6395eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6396eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddlv    h_16b/8b, s_8h/4h, d_4s
6397eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddlv    h_16b/8b, s_8h/4h, d_4s
6398eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6399eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   saddw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
6400eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uaddw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
6401eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssubw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
6402eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usubw{2}  8h_8h_16b/8b, 4s_4s_8h/4h, 2d_2d_2s/4s
6403eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6404eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shadd        16b,8b,8h,4h,4s,2s
6405eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uhadd        16b,8b,8h,4h,4s,2s
6406eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shsub        16b,8b,8h,4h,4s,2s
6407eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uhsub        16b,8b,8h,4h,4s,2s
6408eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6409eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shl          d_#imm
6410eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shl          16b,8b,8h,4h,4s,2s,2d  _#imm
6411eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6412eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shll{2}      8h_8b/16b_#8, 4s_4h/8h_#16, 2d_2s/4s_#32
6413eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6414eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   shrn{2}      2s/4s_2d, 8h/4h_4s, 2s/4s_2d,   #imm in 1 .. elem_bits
6415eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   rshrn{2}     2s/4s_2d, 8h/4h_4s, 2s/4s_2d,   #imm in 1 .. elem_bits
6416eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6417eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sli          d_#imm
6418eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sri          d_#imm
6419eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6420eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sli          2d,4s,2s,8h,4h,16b,8b  _#imm
6421eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sri          2d,4s,2s,8h,4h,16b,8b  _#imm
6422eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6423eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smax         4s,2s,8h,4h,16b,8b
6424eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umax         4s,2s,8h,4h,16b,8b
6425eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smin         4s,2s,8h,4h,16b,8b
6426eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umin         4s,2s,8h,4h,16b,8b
6427eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6428eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smaxp        4s,2s,8h,4h,16b,8b
6429eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umaxp        4s,2s,8h,4h,16b,8b
6430eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sminp        4s,2s,8h,4h,16b,8b
6431eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uminp        4s,2s,8h,4h,16b,8b
6432eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6433eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smaxv        s_4s,h_8h,h_4h,b_16b,b_8b
6434eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umaxv        s_4s,h_8h,h_4h,b_16b,b_8b
6435eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sminv        s_4s,h_8h,h_4h,b_16b,b_8b
6436eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uminv        s_4s,h_8h,h_4h,b_16b,b_8b
6437eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6438eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlal{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
6439eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlal{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
6440eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlsl{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
6441eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlsl{2}     2d_2s/4s_s[], 4s_4h/8h_h[]
6442eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smull{2}     2d_2s/4s_s[]. 4s_4h/8h_h[]
6443eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umull{2}     2d_2s/4s_s[]. 4s_4h/8h_h[]
6444eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6445eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlal{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6446eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlal{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6447eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smlsl{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6448eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umlsl{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6449eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smull{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6450eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umull{2}     2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h), 8h_(8b_8b)/(16b_16b)
6451eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6452eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   smov         w_b[], w_h[], x_b[], x_h[], x_s[]
6453eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   umov         w_b[], w_h[], x_b[], x_h[], x_s[]
6454eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6455eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqabs        d,s,h,b
6456eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqneg        d,s,h,b
6457eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6458eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqabs        2d,4s,2s,8h,4h,16b,8b
6459eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqneg        2d,4s,2s,8h,4h,16b,8b
6460eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6461eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqadd        d,s,h,b
6462eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqadd        d,s,h,b
6463eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqsub        d,s,h,b
6464eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqsub        d,s,h,b
6465eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6466eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqadd        2d,4s,2s,8h,4h,16b,8b
6467eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqadd        2d,4s,2s,8h,4h,16b,8b
6468eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqsub        2d,4s,2s,8h,4h,16b,8b
6469eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqsub        2d,4s,2s,8h,4h,16b,8b
6470eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6471eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal      d_s_s[], s_h_h[]
6472eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl      d_s_s[], s_h_h[]
6473eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull      d_s_s[], s_h_h[]
6474eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6475eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal{2}   2d_2s/4s_s[], 4s_4h/8h_h[]
6476eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl{2}   2d_2s/4s_s[], 4s_4h/8h_h[]
6477eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull{2}   2d_2s/4s_s[], 4s_4h/2h_h[]
6478eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6479eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal      d_s_s, s_h_h
6480eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl      d_s_s, s_h_h
6481eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull      d_s_s, s_h_h
6482eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6483eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlal{2}   2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
6484eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmlsl{2}   2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
6485eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmull{2}   2d_(2s_2s)/(4s_4s), 4s_(4h_4h)/(8h_8h)
6486eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6487eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh      s_s_s[], h_h_h[]
6488eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh     s_s_s[], h_h_h[]
6489eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6490eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh      4s_4s_s[], 2s_2s_s[], 8h_8h_h[], 4h_4h_h[]
6491eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh     4s_4s_s[], 2s_2s_s[], 8h_8h_h[], 4h_4h_h[]
6492eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6493eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh      h,s
6494eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh     h,s
6495eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6496eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqdmulh      4s,2s,8h,4h
6497eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrdmulh     4s,2s,8h,4h
6498eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6499eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        d,s,h,b
6500eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        d,s,h,b
6501eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshl       d,s,h,b
6502eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshl       d,s,h,b
6503eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6504eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        2d,4s,2s,8h,4h,16b,8b
6505eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        2d,4s,2s,8h,4h,16b,8b
6506eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshl       2d,4s,2s,8h,4h,16b,8b
6507eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshl       2d,4s,2s,8h,4h,16b,8b
6508eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6509eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrn      s_d, h_s, b_h   #imm
6510eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshrn      s_d, h_s, b_h   #imm
6511eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrn       s_d, h_s, b_h   #imm
6512eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshrn       s_d, h_s, b_h   #imm
6513eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6514eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrun     s_d, h_s, b_h   #imm
6515eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrun      s_d, h_s, b_h   #imm
6516eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6517eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrn{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
6518eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqrshrn{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
6519eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
6520eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshrn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
6521eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6522eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqrshrun{2}  2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
6523eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshrun{2}   2s/4s_2d, 4h/8h_4s, 8b/16b_8h,  #imm
6524eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6525eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        d,s,h,b   _#imm
6526eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        d,s,h,b   _#imm
6527eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshlu       d,s,h,b   _#imm
6528eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6529eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshl        2d,4s,2s,8h,4h,16b,8b   _#imm
6530eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqshl        2d,4s,2s,8h,4h,16b,8b   _#imm
6531eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqshlu       2d,4s,2s,8h,4h,16b,8b   _#imm
6532eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6533eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtn        s_d,h_s,b_h
6534eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqxtn        s_d,h_s,b_h
6535eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtun       s_d,h_s,b_h
6536eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6537eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtn{2}     2s/4s_2d, 4h/8h_4s, 8b/16b_8h
6538eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uqxtn{2}     2s/4s_2d, 4h/8h_4s, 8b/16b_8h
6539eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sqxtun{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
6540eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6541eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srhadd       4s,2s,8h,4h,16b,8b
6542eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urhadd       4s,2s,8h,4h,16b,8b
6543eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6544eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshl (reg)   d
6545eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushl (reg)   d
6546eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshr (imm)   d
6547eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushr (imm)   d
6548eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssra (imm)   d
6549eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usra (imm)   d
6550eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6551eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshl (reg)  d
6552eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshl (reg)  d
6553eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshr (imm)  d
6554eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshr (imm)  d
6555eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srsra (imm)  d
6556eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ursra (imm)  d
6557eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6558eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshl         2d,4s,2s,8h,4h,16b,8b
6559eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushl         2d,4s,2s,8h,4h,16b,8b
6560eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshr         2d,4s,2s,8h,4h,16b,8b
6561eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushr         2d,4s,2s,8h,4h,16b,8b
6562eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ssra         2d,4s,2s,8h,4h,16b,8b
6563eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usra         2d,4s,2s,8h,4h,16b,8b
6564eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6565eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshl        2d,4s,2s,8h,4h,16b,8b
6566eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshl        2d,4s,2s,8h,4h,16b,8b
6567eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srshr        2d,4s,2s,8h,4h,16b,8b
6568eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urshr        2d,4s,2s,8h,4h,16b,8b
6569eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   srsra        2d,4s,2s,8h,4h,16b,8b
6570eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ursra        2d,4s,2s,8h,4h,16b,8b
6571eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6572eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sshll{2} (imm)  2d_2s/4s  4s_4h/8h, 8h_8b/16b
6573eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ushll{2} (imm)  2d_2s/4s  4s_4h/8h, 8h_8b/16b
6574eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6575eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   suqadd  d,s,h,b
6576eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   suqadd  2d,4s,2s,8h,4h,16b,8b
6577eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6578eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b}_8b, 16b_{16b}_16b
6579eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b,16b}_8b, 16b_{16b,16b}_16b
6580eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b,16b,16b}_8b, 16b_{16b,16b,16b}_16b
6581eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbl     8b_{16b,16b,16b,16b}_8b, 16b_{16b,16b,16b,16b}_16b
6582eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6583eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b}_8b, 16b_{16b}_16b
6584eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b,16b}_8b, 16b_{16b,16b}_16b
6585eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b,16b,16b}_8b, 16b_{16b,16b,16b}_16b
6586eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   tbx     8b_{16b,16b,16b,16b}_8b, 16b_{16b,16b,16b,16b}_16b
6587eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6588eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   trn1    2d,4s,2s,8h,4h,16b,8b
6589eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   trn2    2d,4s,2s,8h,4h,16b,8b
6590eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6591eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   urecpe      4s,2s
6592eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6593eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ursqrte     4s,2s
6594eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6595eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usqadd      d,s,h,b
6596eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   usqadd      2d,4s,2s,8h,4h,16b,8b
6597eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6598eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uzp1      2d,4s,2s,8h,4h,16b,8b
6599eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   uzp2      2d,4s,2s,8h,4h,16b,8b
6600eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6601eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   xtn{2}    2s/4s_2d, 4h/8h_4s, 8b/16b_8h
6602eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6603eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   zip1      2d,4s,2s,8h,4h,16b,8b
6604eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   zip2      2d,4s,2s,8h,4h,16b,8b
6605eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6606eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ======================== MEM ========================
6607eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6608eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld1  (multiple 1-element structures to 1/2/3/4 regs)
6609eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld1  (single 1-element structure to one lane of 1 reg)
6610eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld1r (single 1-element structure and rep to all lanes of 1 reg)
6611eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6612eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld2  (multiple 2-element structures to 2 regs)
6613eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld2  (single 2-element structure to one lane of 2 regs)
6614eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld2r (single 2-element structure and rep to all lanes of 2 regs)
6615eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6616eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld3  (multiple 3-element structures to 3 regs)
6617eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld3  (single 3-element structure to one lane of 3 regs)
6618eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld3r (single 3-element structure and rep to all lanes of 3 regs)
6619eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6620eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld4  (multiple 4-element structures to 4 regs)
6621eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld4  (single 4-element structure to one lane of 4 regs)
6622eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ld4r (single 4-element structure and rep to all lanes of 4 regs)
6623eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6624eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldnp  q_q_addr,d_d_addr,s_s_addr  (load pair w/ non-temporal hint)
6625eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = reg + uimm7 * reg_size
6626eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6627eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldp   q_q_addr,d_d_addr,s_s_addr  (load pair)
6628eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP],#imm   or [Xn|SP,#imm]!  or [Xn|SP,#imm]
6629eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6630eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldr   q,d,s,h,b from addr
6631eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP],#imm   or [Xn|SP,#imm]!  or [Xn|SP,#imm]
6632eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6633eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldr   q,d,s from  pc+#imm19
6634eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6635eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldr   q,d,s,h,b from addr
6636eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP, R <extend> <shift]
6637eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6638eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ldur  q,d,s,h,b from addr
6639eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP,#imm] (unscaled offset)
6640eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6641eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st1 (multiple 1-element structures from 1/2/3/4 regs)
6642eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st1 (single 1-element structure for 1 lane of 1 reg)
6643eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6644eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st2 (multiple 2-element structures from 2 regs)
6645eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st2 (single 2-element structure from 1 lane of 2 regs)
6646eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6647eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st3 (multiple 3-element structures from 3 regs)
6648eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st3 (single 3-element structure from 1 lane of 3 regs)
6649eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6650eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st4 (multiple 4-element structures from 4 regs)
6651eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   st4 (single 4-element structure from one lane of 4 regs)
6652eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6653eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   stnp q_q_addr, d_d_addr, s_s_addr
6654eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        addr = [Xn|SP, #imm]
6655eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6656eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   stp  q_q_addr, d_d_addr, s_s_addr
6657eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        addr = [Xn|SP], #imm  or [Xn|SP, #imm]!  or [Xn|SP, #imm]
6658eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6659eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   str  q,d,s,h,b_addr
6660eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov        addr = [Xn|SP], #simm  or [Xn|SP, #simm]!  or [Xn|SP, #pimm]
6661eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6662eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   str   q,d,s,h,b_addr
6663eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP, R <extend> <shift]
6664eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6665eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   stur  q,d,s,h,b_addr
6666eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov         addr = [Xn|SP,#imm] (unscaled offset)
6667eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6668eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   ======================== CRYPTO ========================
6669eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6670eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aesd       16b (aes single round decryption)
6671eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aese       16b (aes single round encryption)
6672eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aesimc     16b (aes inverse mix columns)
6673eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   aesmc      16b (aes mix columns)
6674eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6675eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1c      q_s_4s
6676eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1h      s_s
6677eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1m      q_s_4s
6678eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1p      q_s_4s
6679eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1su0    4s_4s_4s
6680eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha1su1    4s_4s
6681eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov
6682eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256h2   q_q_4s
6683eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256h    q_q_4s
6684eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256su0  4s_4s
6685eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov   sha256su1  4s_4s_4s
6686eb0bae136f4eeaaf29761dddb148b118fb824632Dmitriy Ivanov*/
6687