16b564a035bff6173937a9ddf0811af10236286absewardj
26b564a035bff6173937a9ddf0811af10236286absewardj/* How to compile:
36b564a035bff6173937a9ddf0811af10236286absewardj
46b564a035bff6173937a9ddf0811af10236286absewardj   gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
56b564a035bff6173937a9ddf0811af10236286absewardj       -marm -o neon64-a neon64.c
66b564a035bff6173937a9ddf0811af10236286absewardj
76b564a035bff6173937a9ddf0811af10236286absewardj   or
86b564a035bff6173937a9ddf0811af10236286absewardj
96b564a035bff6173937a9ddf0811af10236286absewardj   gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
106b564a035bff6173937a9ddf0811af10236286absewardj       -mthumb -o neon64-t neon64.c
116b564a035bff6173937a9ddf0811af10236286absewardj
126b564a035bff6173937a9ddf0811af10236286absewardj*/
136b564a035bff6173937a9ddf0811af10236286absewardj
146b564a035bff6173937a9ddf0811af10236286absewardj#include <stdio.h>
156b564a035bff6173937a9ddf0811af10236286absewardj#include <string.h>
166b564a035bff6173937a9ddf0811af10236286absewardj#include <math.h>
176b564a035bff6173937a9ddf0811af10236286absewardj
186b564a035bff6173937a9ddf0811af10236286absewardj#ifndef __thumb__
196b564a035bff6173937a9ddf0811af10236286absewardj// ARM
206b564a035bff6173937a9ddf0811af10236286absewardj#define MOVE_to_FPSCR_from_R4 \
216b564a035bff6173937a9ddf0811af10236286absewardj      ".word 0xEEE14A10 @ vmsr FPSCR, r4\n\t"
226b564a035bff6173937a9ddf0811af10236286absewardj#define MOVE_to_R4_from_FPSCR \
236b564a035bff6173937a9ddf0811af10236286absewardj      ".word 0xEEF14A10 @ vmrs r4, FPSCR\n\t"
246b564a035bff6173937a9ddf0811af10236286absewardj#endif
256b564a035bff6173937a9ddf0811af10236286absewardj
266b564a035bff6173937a9ddf0811af10236286absewardj#ifdef __thumb__
276b564a035bff6173937a9ddf0811af10236286absewardj// Thumb
286b564a035bff6173937a9ddf0811af10236286absewardj#define MOVE_to_FPSCR_from_R4 \
296b564a035bff6173937a9ddf0811af10236286absewardj      ".word 0x4A10EEE1 @ vmsr FPSCR, r4\n\t"
306b564a035bff6173937a9ddf0811af10236286absewardj#define MOVE_to_R4_from_FPSCR \
316b564a035bff6173937a9ddf0811af10236286absewardj      ".word 0x4A10EEF1 @ vmrs r4, FPSCR\n\t"
326b564a035bff6173937a9ddf0811af10236286absewardj#endif
336b564a035bff6173937a9ddf0811af10236286absewardj
346b564a035bff6173937a9ddf0811af10236286absewardjstatic inline unsigned int f2u(float x) {
356b564a035bff6173937a9ddf0811af10236286absewardj    union {
366b564a035bff6173937a9ddf0811af10236286absewardj        float f;
376b564a035bff6173937a9ddf0811af10236286absewardj        unsigned int u;
386b564a035bff6173937a9ddf0811af10236286absewardj    } cvt;
396b564a035bff6173937a9ddf0811af10236286absewardj    cvt.f = x;
406b564a035bff6173937a9ddf0811af10236286absewardj    return cvt.u;
416b564a035bff6173937a9ddf0811af10236286absewardj}
426b564a035bff6173937a9ddf0811af10236286absewardj
436b564a035bff6173937a9ddf0811af10236286absewardj/* test macros to generate and output the result of a single instruction */
446b564a035bff6173937a9ddf0811af10236286absewardj
45918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardjconst unsigned int mem[] = {
46918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c,
47918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c,
48918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    0x23222120, 0x27262524, 0x2b2a2928, 0x2f2e2d2c,
49918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    0x33323130, 0x37363534, 0x3b3a3938, 0x3f3e3d3c
50918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj};
516b564a035bff6173937a9ddf0811af10236286absewardj
526b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_imm(instruction, QD, imm) \
536b564a035bff6173937a9ddf0811af10236286absewardj{ \
546b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
556b564a035bff6173937a9ddf0811af10236286absewardj\
566b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
576b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
586b564a035bff6173937a9ddf0811af10236286absewardj      instruction ", #" #imm "\n\t" \
596b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
606b564a035bff6173937a9ddf0811af10236286absewardj      : \
616b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out) \
626b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, "memory" \
636b564a035bff6173937a9ddf0811af10236286absewardj      ); \
64918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
656b564a035bff6173937a9ddf0811af10236286absewardj  printf("%s, #" #imm " :: Qd 0x%08x 0x%08x\n", \
66918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0]);          \
677838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
687838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
697838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[2];   \
707838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0; \
717838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
727838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
737838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %1, %2\n\t" \
747838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %1!, {" #QD "}\n\t" \
757838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction ", #" #imm "\n\t" \
767838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %0, {" #QD "}\n\t" \
777838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : \
787838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (addr), "r" (mem) \
797838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD, "%2", "memory" \
807838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
81918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
82918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s, #" #imm " :: Qd 0x%08x 0x%08x\n",        \
83918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[1], out[0]);                 \
846b564a035bff6173937a9ddf0811af10236286absewardj}
856b564a035bff6173937a9ddf0811af10236286absewardj
866b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_un(instruction, QD, QM, QMtype, QMval) \
876b564a035bff6173937a9ddf0811af10236286absewardj{ \
886b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
896b564a035bff6173937a9ddf0811af10236286absewardj\
906b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
916b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
926b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %1\n\t" \
936b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
946b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
956b564a035bff6173937a9ddf0811af10236286absewardj      : \
966b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval) \
976b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, "memory" \
986b564a035bff6173937a9ddf0811af10236286absewardj      ); \
99918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
100918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x\n",    \
101918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval);                   \
1027838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
1037838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
1047838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[2]; \
1057838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0; \
1067838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
1077838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
1087838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %2, %3\n\t" \
1097838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %2!, {" #QD "}\n\t" \
1107838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %2!, {" #QM "}\n\t" \
1117838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction "\n\t" \
1127838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %0, {" #QD "}\n\t" \
1137838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %0, {" #QD "}\n\t" \
1147838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : \
1157838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (QMval), "r" (addr), "r" (mem) \
1167838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD, #QM, "%2", "memory" \
1177838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
118918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
119918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x\n",   \
120918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[1], out[0], QMval );                 \
1216b564a035bff6173937a9ddf0811af10236286absewardj}
1226b564a035bff6173937a9ddf0811af10236286absewardj
1236b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_un_q(instruction, QD, QM, QMtype, QMval) \
1246b564a035bff6173937a9ddf0811af10236286absewardj{ \
1256b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
1266b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int fpscr; \
1276b564a035bff6173937a9ddf0811af10236286absewardj\
1286b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
1296b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
1306b564a035bff6173937a9ddf0811af10236286absewardj      "mov r4, #0\n\t" \
1316b564a035bff6173937a9ddf0811af10236286absewardj      MOVE_to_FPSCR_from_R4 \
1326b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %2\n\t" \
1336b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
1346b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %1, {" #QD "}\n\t" \
1356b564a035bff6173937a9ddf0811af10236286absewardj      MOVE_to_R4_from_FPSCR \
1366b564a035bff6173937a9ddf0811af10236286absewardj      "mov %0, r4" \
1376b564a035bff6173937a9ddf0811af10236286absewardj      : "=r" (fpscr) \
1386b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval) \
1396b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, "memory", "r4" \
1406b564a035bff6173937a9ddf0811af10236286absewardj      ); \
141918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
1426b564a035bff6173937a9ddf0811af10236286absewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x  fpscr %08x\n", \
143918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval, fpscr);                    \
1447838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
1457838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
1467838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[2]; \
1477838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int fpscr; \
1487838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0; \
1497838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
1507838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
1517838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD ", #0x55" "\n\t" \
1527838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov r4, #0\n\t" \
1537838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 MOVE_to_FPSCR_from_R4 \
1547838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %3, %4\n\t" \
1557838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %3!, {" #QM "}\n\t" \
1567838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction "\n\t" \
1577838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1, {" #QD "}\n\t" \
1587838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 MOVE_to_R4_from_FPSCR \
1597838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %0, r4" \
1607838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "=r" (fpscr) \
1617838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (QMval), "r" (addr), "r" (mem) \
1627838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD, #QM, "memory", "r4" \
1637838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
164918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
1657838ae668b857baeea24b5fa4119ed44c315eb8csewardj   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x  fpscr %08x\n", \
166918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[1], out[0], QMval, fpscr);                   \
1676b564a035bff6173937a9ddf0811af10236286absewardj}
1686b564a035bff6173937a9ddf0811af10236286absewardj
1696b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_core_to_scalar(instruction, QD, QM, QMval) \
1706b564a035bff6173937a9ddf0811af10236286absewardj{ \
1716b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
1726b564a035bff6173937a9ddf0811af10236286absewardj\
1736b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
1746b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
1756b564a035bff6173937a9ddf0811af10236286absewardj      "mov " #QM ", %1\n\t" \
1766b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
1776b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
1786b564a035bff6173937a9ddf0811af10236286absewardj      : \
1796b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval) \
1806b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, "memory" \
1816b564a035bff6173937a9ddf0811af10236286absewardj      ); \
182918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
1836b564a035bff6173937a9ddf0811af10236286absewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm 0x%08x\n", \
184918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval);   \
1856b564a035bff6173937a9ddf0811af10236286absewardj}
1866b564a035bff6173937a9ddf0811af10236286absewardj
1876b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_scalar_to_core(instruction, QD, QM, QMtype, QMval) \
1886b564a035bff6173937a9ddf0811af10236286absewardj{ \
1896b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
1906b564a035bff6173937a9ddf0811af10236286absewardj\
1916b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
1926b564a035bff6173937a9ddf0811af10236286absewardj      "mov " #QD ", #0x55" "\n\t" \
1936b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %1\n\t" \
1946b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
1956b564a035bff6173937a9ddf0811af10236286absewardj      "str " #QD ", [%0]\n\t" \
1966b564a035bff6173937a9ddf0811af10236286absewardj      : \
1976b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval) \
1986b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, "memory" \
1996b564a035bff6173937a9ddf0811af10236286absewardj      ); \
200918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
201918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s :: Rd 0x%08x  Qm (" #QMtype ")0x%08x\n",   \
202918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[0], QMval);                   \
2036b564a035bff6173937a9ddf0811af10236286absewardj}
2046b564a035bff6173937a9ddf0811af10236286absewardj
2056b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_VLDn(instruction, QD1, QD2, QD3, QD4) \
2066b564a035bff6173937a9ddf0811af10236286absewardj{ \
2072536c9d1537a082217ef230394e9eebb75e9a100sewardj  unsigned int out[9]; \
2086b564a035bff6173937a9ddf0811af10236286absewardj\
2096b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
2106b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD1 ", #0x55" "\n\t" \
2116b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD2 ", #0x55" "\n\t" \
2126b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD3 ", #0x55" "\n\t" \
2136b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD4 ", #0x55" "\n\t" \
2146b564a035bff6173937a9ddf0811af10236286absewardj      instruction ", [%1]\n\t" \
2156b564a035bff6173937a9ddf0811af10236286absewardj      "mov r4, %0\n\t" \
2166b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0!, {" #QD1 "}\n\t" \
2176b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0!, {" #QD2 "}\n\t" \
2186b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0!, {" #QD3 "}\n\t" \
2196b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0!, {" #QD4 "}\n\t" \
2202536c9d1537a082217ef230394e9eebb75e9a100sewardj      "str %1, [%2]\n\t" \
2216b564a035bff6173937a9ddf0811af10236286absewardj      "mov %0, r4\n\t" \
2226b564a035bff6173937a9ddf0811af10236286absewardj      : \
2232536c9d1537a082217ef230394e9eebb75e9a100sewardj      : "r" (out), "r" (mem), "r"(&out[8]) \
2246b564a035bff6173937a9ddf0811af10236286absewardj      : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
2256b564a035bff6173937a9ddf0811af10236286absewardj      ); \
226918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
2275f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj  printf("%s :: Result %08x'%08x %08x'%08x " \
2285f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj         "%08x'%08x %08x'%08x  delta %d\n",             \
2295f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj         instruction, out[1], out[0], out[3], out[2], out[5],   \
2305f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj         out[4], out[7], out[6], (int)out[8]-(int)mem);         \
2316b564a035bff6173937a9ddf0811af10236286absewardj}
2326b564a035bff6173937a9ddf0811af10236286absewardj
2336b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_VSTn(instruction, QD1, QD2, QD3, QD4) \
2346b564a035bff6173937a9ddf0811af10236286absewardj{ \
2352536c9d1537a082217ef230394e9eebb75e9a100sewardj  unsigned int out[9]; \
2366b564a035bff6173937a9ddf0811af10236286absewardj\
2376b564a035bff6173937a9ddf0811af10236286absewardj  memset(out, 0x55, 8 * (sizeof(unsigned int)));\
2386b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
2396b564a035bff6173937a9ddf0811af10236286absewardj      "mov r4, %1\n\t" \
2406b564a035bff6173937a9ddf0811af10236286absewardj      "vldmia %1!, {" #QD1 "}\n\t" \
2416b564a035bff6173937a9ddf0811af10236286absewardj      "vldmia %1!, {" #QD2 "}\n\t" \
2426b564a035bff6173937a9ddf0811af10236286absewardj      "vldmia %1!, {" #QD3 "}\n\t" \
2436b564a035bff6173937a9ddf0811af10236286absewardj      "vldmia %1!, {" #QD4 "}\n\t" \
2446b564a035bff6173937a9ddf0811af10236286absewardj      "mov %1, r4\n\t" \
2456b564a035bff6173937a9ddf0811af10236286absewardj      instruction ", [%0]\n\t" \
2462536c9d1537a082217ef230394e9eebb75e9a100sewardj      "str %0, [%2]\n\t" \
2476b564a035bff6173937a9ddf0811af10236286absewardj      : \
2482536c9d1537a082217ef230394e9eebb75e9a100sewardj      : "r" (out), "r" (mem), "r"(&out[8]) \
2496b564a035bff6173937a9ddf0811af10236286absewardj      : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
2506b564a035bff6173937a9ddf0811af10236286absewardj      ); \
251918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
2525f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj  printf("%s :: Result %08x'%08x %08x'%08x " \
2535f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj         "%08x'%08x %08x'%08x  delta %d\n",             \
2545f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj         instruction, out[1], out[0], out[3], out[2], out[5],   \
2555f05bb85d1bbd68da7a8fb7b06329728f1bea29dsewardj         out[4], out[7], out[6], (int)out[8]-(int)out);         \
2562536c9d1537a082217ef230394e9eebb75e9a100sewardj}
2572536c9d1537a082217ef230394e9eebb75e9a100sewardj
2582536c9d1537a082217ef230394e9eebb75e9a100sewardj#define TESTINSN_VLDn_WB(instruction, QD1, QD2, QD3, QD4) \
2592536c9d1537a082217ef230394e9eebb75e9a100sewardj{ \
2607838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[9]; \
2617838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0; \
2627838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
2637838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
2647838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %0, %2\n\t" \
2657838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD1 ", #0x55" "\n\t" \
2667838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD2 ", #0x55" "\n\t" \
2677838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD3 ", #0x55" "\n\t" \
2687838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD4 ", #0x55" "\n\t" \
2697838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction ", [%0]!\n\t" \
2707838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov r4, %1\n\t" \
2717838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD1 "}\n\t" \
2727838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD2 "}\n\t" \
2737838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD3 "}\n\t" \
2747838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD4 "}\n\t" \
2757838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "str %0, [%3]\n\t" \
2767838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %1, r4\n\t" \
2777838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "+r" (addr) \
2787838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (mem), "r"(&out[8]) \
2797838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
2807838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
281918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
282918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
283918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
284918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[0], out[1], out[2], out[3], out[4],  \
285918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          out[5], out[6], out[7], (int)out[8]-(int)mem);        \
2862536c9d1537a082217ef230394e9eebb75e9a100sewardj}
2872536c9d1537a082217ef230394e9eebb75e9a100sewardj
2882536c9d1537a082217ef230394e9eebb75e9a100sewardj#define TESTINSN_VSTn_WB(instruction, QD1, QD2, QD3, QD4) \
2892536c9d1537a082217ef230394e9eebb75e9a100sewardj{ \
2907838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[9]; \
2917838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0;    \
2927838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
2937838ae668b857baeea24b5fa4119ed44c315eb8csewardj   memset(out, 0x55, 8 * (sizeof(unsigned int)));\
2947838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
2957838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %0, %1\n\t" \
2967838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov r4, %2\n\t" \
2977838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD1 "}\n\t" \
2987838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD2 "}\n\t" \
2997838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD3 "}\n\t" \
3007838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD4 "}\n\t" \
3017838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction ", [%0]!\n\t" \
3027838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "str %0, [%3]\n\t" \
3037838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "+r" (addr) \
3047838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (mem), "r"(&out[8]) \
3057838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4", "0" \
3067838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
307918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
308918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
309918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
310918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[0], out[1], out[2], out[3], out[4],  \
311918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          out[5], out[6], out[7], (int)out[8]-(int)out);        \
3122536c9d1537a082217ef230394e9eebb75e9a100sewardj}
3132536c9d1537a082217ef230394e9eebb75e9a100sewardj
3142536c9d1537a082217ef230394e9eebb75e9a100sewardj#define TESTINSN_VLDn_RI(instruction, QD1, QD2, QD3, QD4, RM, RMval) \
3152536c9d1537a082217ef230394e9eebb75e9a100sewardj{ \
3167838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[9];  \
3177838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0;    \
3187838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
3197838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
3207838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %0, %2\n\t" \
3217838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD1 ", #0x55" "\n\t" \
3227838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD2 ", #0x55" "\n\t" \
3237838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD3 ", #0x55" "\n\t" \
3247838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD4 ", #0x55" "\n\t" \
3257838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov " #RM ", %4\n\t" \
3267838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction ", [%0], " #RM "\n\t" \
3277838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov r4, %1\n\t" \
3287838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD1 "}\n\t" \
3297838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD2 "}\n\t" \
3307838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD3 "}\n\t" \
3317838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1!, {" #QD4 "}\n\t" \
3327838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "str %0, [%3]\n\t" \
3337838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %1, r4\n\t" \
3347838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "+r" (addr) \
3357838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (mem), "r"(&out[8]), "r"(RMval) \
3367838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4", #RM \
3377838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
338918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
339918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
340918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
341918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[0], out[1], out[2], out[3], out[4],  \
342918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          out[5], out[6], out[7], (int)out[8]-(int)addr);       \
3432536c9d1537a082217ef230394e9eebb75e9a100sewardj}
3442536c9d1537a082217ef230394e9eebb75e9a100sewardj
3457838ae668b857baeea24b5fa4119ed44c315eb8csewardj
3462536c9d1537a082217ef230394e9eebb75e9a100sewardj#define TESTINSN_VSTn_RI(instruction, QD1, QD2, QD3, QD4, RM, RMval) \
3472536c9d1537a082217ef230394e9eebb75e9a100sewardj{ \
3487838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[9]; \
3497838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0;    \
3507838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
3517838ae668b857baeea24b5fa4119ed44c315eb8csewardj   memset(out, 0x55, 8 * (sizeof(unsigned int)));\
3527838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
3537838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %0, %1\n\t" \
3547838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov r4, %2\n\t" \
3557838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD1 "}\n\t" \
3567838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD2 "}\n\t" \
3577838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD3 "}\n\t" \
3587838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia r4!, {" #QD4 "}\n\t" \
3597838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov " #RM ", %4\n\t" \
3607838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction ", [%0], " #RM "\n\t" \
3617838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "str %0, [%3]\n\t" \
3627838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "+r" (addr) \
363e8c5c388bf60fe8ee00e299e8bc48a2233746671sewardj	 : "r" (out), "r" (mem), "r"(&out[8]), "r"(RMval) \
3647838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD1, #QD2, #QD3, #QD4, "memory", "r4", #RM \
3657838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
366918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
367918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "   \
368918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "0x%08x 0x%08x 0x%08x 0x%08x  delta %d\n",            \
369918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[0], out[1], out[2], out[3], out[4],  \
370918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          out[5], out[6], out[7], (int)out[8]-(int)out);        \
3716b564a035bff6173937a9ddf0811af10236286absewardj}
3726b564a035bff6173937a9ddf0811af10236286absewardj
3736b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_bin(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
3746b564a035bff6173937a9ddf0811af10236286absewardj{ \
3756b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
3766b564a035bff6173937a9ddf0811af10236286absewardj\
3776b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
3786b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
3796b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %1\n\t" \
3806b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QNtype " " #QN ", %2\n\t" \
3816b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
3826b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
3836b564a035bff6173937a9ddf0811af10236286absewardj      : \
3846b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval), "r" (QNval) \
3856b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, #QN, "memory" \
3866b564a035bff6173937a9ddf0811af10236286absewardj      ); \
387918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
388918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
389918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn (" #QNtype ")0x%08x\n",                          \
390918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval, QNval);            \
3917838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
3927838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
3937838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[2]; \
3947838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0; \
3957838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
3967838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
3977838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %0, %4\n\t" \
3987838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %0!, {" #QM "}\n\t" \
3997838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD ", #0x55" "\n\t" \
4007838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vdup." #QNtype " " #QN ", %3\n\t" \
4017838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction "\n\t" \
4027838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1, {" #QD "}\n\t" \
4037838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "+r" (addr) \
4047838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (QMval), "r" (QNval), "r" (mem) \
4057838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD, #QM, #QN, "memory" \
4067838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
407918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
408918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"      \
409918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "  Qn (" #QNtype ")0x%08x\n",                         \
410918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[1], out[0], QMval, QNval);           \
4116b564a035bff6173937a9ddf0811af10236286absewardj}
4126b564a035bff6173937a9ddf0811af10236286absewardj
4136b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_bin_f(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
4146b564a035bff6173937a9ddf0811af10236286absewardj{ \
4156b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
4166b564a035bff6173937a9ddf0811af10236286absewardj\
4176b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
4186b564a035bff6173937a9ddf0811af10236286absewardj      "vdup.i32 " #QD ", %3\n\t" \
4196b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %1\n\t" \
4206b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QNtype " " #QN ", %2\n\t" \
4216b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
4226b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
4236b564a035bff6173937a9ddf0811af10236286absewardj      : \
4246b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval), "r" (QNval), "r"(0x3f800000) \
4256b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, #QN, "memory" \
4266b564a035bff6173937a9ddf0811af10236286absewardj      ); \
427918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
428918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
429918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn (" #QNtype ")0x%08x\n",                          \
430918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval, QNval);            \
4317838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
4327838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
4337838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int out[2]; \
4347838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int addr = 0; \
4357838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
4367838ae668b857baeea24b5fa4119ed44c315eb8csewardj     __asm__ volatile( \
4377838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vdup.i32 " #QD ", %3\n\t" \
4387838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "mov %4, %5\n\t" \
4397838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vldmia %4!, {" #QM "}\n\t" \
4407838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vdup." #QNtype " " #QN ", %2\n\t" \
4417838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         instruction "\n\t" \
4427838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vstmia %0, {" #QD "}\n\t" \
4437838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : \
4447838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : "r" (out), "r" (QMval), "r" (QNval), "r"(0x3f800000), "r" (addr), "r" (mem) \
4457838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : #QD, #QM, #QN, "memory" \
4467838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         ); \
447918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj     fflush(stdout); \
448918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj     printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"    \
449918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj            "  Qn (" #QNtype ")0x%08x\n",                       \
450918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj            instruction, out[1], out[0], QMval, QNval);         \
4516b564a035bff6173937a9ddf0811af10236286absewardj}
4526b564a035bff6173937a9ddf0811af10236286absewardj
4536b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
4546b564a035bff6173937a9ddf0811af10236286absewardj        QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN4, QN4type, QN4val) \
4556b564a035bff6173937a9ddf0811af10236286absewardj{ \
4566b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
4576b564a035bff6173937a9ddf0811af10236286absewardj\
4586b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
4596b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
4606b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %1\n\t" \
4616b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QN1type " " #QN1 ", %2\n\t" \
4626b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QN2type " " #QN2 ", %3\n\t" \
4636b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QN3type " " #QN3 ", %4\n\t" \
4646b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QN4type " " #QN4 ", %5\n\t" \
4656b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
4666b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
4676b564a035bff6173937a9ddf0811af10236286absewardj      : \
4686b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval), "r" (QN1val), "r" (QN2val), "r" (QN3val), \
4696b564a035bff6173937a9ddf0811af10236286absewardj        "r" (QN4val) \
4706b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, #QN1, #QN2, #QN3, #QN4, "memory" \
4716b564a035bff6173937a9ddf0811af10236286absewardj      ); \
472918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
473918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
474918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn1 (" #QN1type ")0x%08x"                           \
475918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn2 (" #QN2type ")0x%08x"                           \
476918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn3 (" #QN3type ")0x%08x"                                   \
477918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn4 (" #QN4type ")0x%08x\n",                                \
478918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval, QN1val, QN2val, QN3val, QN4val); \
4797838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
4807838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
4817838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out[2]; \
4827838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0; \
4837838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
4847838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
4857838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %6, %7\n\t" \
4867838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vmov.i8 " #QD ", #0x55" "\n\t" \
4877838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vdup." #QMtype " " #QM ", %1\n\t" \
4887838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %6!, {" #QN1 "}\n\t" \
4897838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vdup." #QN2type " " #QN2 ", %3\n\t" \
4907838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %6!, {" #QN3 "}\n\t" \
4917838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vdup." #QN4type " " #QN4 ", %5\n\t" \
4927838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction "\n\t" \
4937838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %0, {" #QD "}\n\t" \
4947838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : \
4957838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out), "r" (QMval), "r" (QN1val), "r" (QN2val), "r" (QN3val), \
4967838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "r" (QN4val), "r" (addr), "r" (mem) \
4977838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QD, #QM, #QN1, #QN2, #QN3, #QN4, "memory" \
4987838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
499918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
500918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"      \
501918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "  Qn1 (" #QN1type ")0x%08x"                          \
502918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "  Qn2 (" #QN2type ")0x%08x"                          \
503918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "  Qn3 (" #QN3type ")0x%08x"                          \
504918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "  Qn4 (" #QN4type ")0x%08x\n",                               \
505918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out[1], out[0], QMval, QN1val, QN2val, QN3val, QN4val); \
5066b564a035bff6173937a9ddf0811af10236286absewardj}
5077838ae668b857baeea24b5fa4119ed44c315eb8csewardj
5086b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_tbl_1(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val) \
5096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5106b564a035bff6173937a9ddf0811af10236286absewardj            QN1, QN1type, QN1val, QN1, QN1type, QN1val, QN1, QN1type, QN1val)
5116b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_tbl_2(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5126b564a035bff6173937a9ddf0811af10236286absewardj        QN2, QN2type, QN2val) \
5136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5146b564a035bff6173937a9ddf0811af10236286absewardj            QN2, QN2type, QN2val, QN1, QN1type, QN1val, QN2, QN2type, QN2val)
5156b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_tbl_3(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5166b564a035bff6173937a9ddf0811af10236286absewardj        QN2, QN2type, QN2val, QN3, QN3type, QN3val) \
5176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5186b564a035bff6173937a9ddf0811af10236286absewardj            QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN2, QN2type, QN2val)
5196b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_tbl_4(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5206b564a035bff6173937a9ddf0811af10236286absewardj        QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN4, QN4type, QN4val) \
5216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl(instruction, QD, QM, QMtype, QMval, QN1, QN1type, QN1val, \
5226b564a035bff6173937a9ddf0811af10236286absewardj            QN2, QN2type, QN2val, QN3, QN3type, QN3val, QN4, QN4type, QN4val)
5236b564a035bff6173937a9ddf0811af10236286absewardj
5246b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_bin_q(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
5256b564a035bff6173937a9ddf0811af10236286absewardj{ \
5266b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
5276b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int fpscr; \
5286b564a035bff6173937a9ddf0811af10236286absewardj\
5296b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
5306b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
5316b564a035bff6173937a9ddf0811af10236286absewardj      "mov r4, #0\n\t" \
5326b564a035bff6173937a9ddf0811af10236286absewardj      MOVE_to_FPSCR_from_R4 \
5336b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %2\n\t" \
5346b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QNtype " " #QN ", %3\n\t" \
5356b564a035bff6173937a9ddf0811af10236286absewardj      instruction "\n\t" \
5366b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %1, {" #QD "}\n\t" \
5376b564a035bff6173937a9ddf0811af10236286absewardj      MOVE_to_R4_from_FPSCR \
5386b564a035bff6173937a9ddf0811af10236286absewardj      "mov %0, r4" \
5396b564a035bff6173937a9ddf0811af10236286absewardj      : "=r" (fpscr) \
5406b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval), "r" (QNval) \
5416b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, #QN, "memory", "r4" \
5426b564a035bff6173937a9ddf0811af10236286absewardj      ); \
543918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
544918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"       \
545918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         "  Qn (" #QNtype ")0x%08x  fpscr: %08x\n",             \
546918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval, QNval, fpscr);     \
5477838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
5487838ae668b857baeea24b5fa4119ed44c315eb8csewardj{ \
5497838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int out[2]; \
5507838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int fpscr; \
5517838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int addr = 0; \
5527838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
5537838ae668b857baeea24b5fa4119ed44c315eb8csewardj     __asm__ volatile( \
5547838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vmov.i8 " #QD ", #0x55" "\n\t" \
5557838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "mov r4, #0\n\t" \
5567838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         MOVE_to_FPSCR_from_R4 \
5577838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "mov %4, %5\n\t" \
5587838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vldmia %4!, {" #QM "}\n\t" \
5597838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vdup." #QNtype " " #QN ", %3\n\t" \
5607838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         instruction "\n\t" \
5617838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vstmia %1, {" #QD "}\n\t" \
5627838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         MOVE_to_R4_from_FPSCR \
5637838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "mov %0, r4" \
5647838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : "=r" (fpscr) \
5657838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : "r" (out), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem)  \
5667838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : #QD, #QM, #QN, "memory", "r4" \
5677838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         ); \
568918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj     fflush(stdout); \
569918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj     printf("%s :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x"    \
570918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj            "  Qn (" #QNtype ")0x%08x  fpscr: %08x\n",              \
571918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj            instruction, out[1], out[0], QMval, QNval, fpscr);      \
5726b564a035bff6173937a9ddf0811af10236286absewardj}
5736b564a035bff6173937a9ddf0811af10236286absewardj
5746b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_dual(instruction, QM, QMtype, QMval, QN, QNtype, QNval) \
5756b564a035bff6173937a9ddf0811af10236286absewardj{ \
5767838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out1[2]; \
5777838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int out2[2]; \
5787838ae668b857baeea24b5fa4119ed44c315eb8csewardj   unsigned int addr = 0;    \
5797838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
5807838ae668b857baeea24b5fa4119ed44c315eb8csewardj   __asm__ volatile( \
5817838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "mov %4, %5\n\t" \
5827838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vldmia %4!, {" #QM "}\n\t" \
5837838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vdup." #QNtype " " #QN ", %3\n\t" \
5847838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 instruction "\n\t" \
5857838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %0, {" #QM "}\n\t" \
5867838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 "vstmia %1, {" #QN "}\n\t" \
5877838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : \
5887838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem) \
5897838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 : #QM, #QN, "memory" \
5907838ae668b857baeea24b5fa4119ed44c315eb8csewardj	 ); \
591918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj   fflush(stdout); \
5927838ae668b857baeea24b5fa4119ed44c315eb8csewardj   printf("%s :: Qm 0x%08x 0x%08x  Qn 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x" \
593918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          "  Qn (" #QNtype ")0x%08x\n",                                 \
594918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj          instruction, out1[1], out1[0], out2[1], out2[0], QMval, QNval); \
5957838ae668b857baeea24b5fa4119ed44c315eb8csewardj} \
5966b564a035bff6173937a9ddf0811af10236286absewardj{ \
5977838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int out1[2]; \
5987838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int out2[2]; \
5997838ae668b857baeea24b5fa4119ed44c315eb8csewardj     unsigned int addr = 0;    \
6007838ae668b857baeea24b5fa4119ed44c315eb8csewardj   \
6017838ae668b857baeea24b5fa4119ed44c315eb8csewardj     __asm__ volatile( \
6027838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "mov %4, %5\n\t" \
6037838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vldmia %4!, {" #QM "}\n\t" \
6047838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vdup." #QNtype " " #QN ", %3\n\t" \
6057838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         instruction "\n\t" \
6067838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vstmia %0, {" #QM "}\n\t" \
6077838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         "vstmia %1, {" #QN "}\n\t" \
6087838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : \
6097838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem) \
6107838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         : #QM, #QN, "%4", "memory" \
6117838ae668b857baeea24b5fa4119ed44c315eb8csewardj	         ); \
612918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj     fflush(stdout); \
6137838ae668b857baeea24b5fa4119ed44c315eb8csewardj     printf("%s :: Qm 0x%08x 0x%08x  Qn 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x" \
614918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj            "  Qn (" #QNtype ")0x%08x\n",                               \
615918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj            instruction, out1[1], out1[0], out2[1], out2[0], QMval, QNval); \
6166b564a035bff6173937a9ddf0811af10236286absewardj}
6176b564a035bff6173937a9ddf0811af10236286absewardj
6186b564a035bff6173937a9ddf0811af10236286absewardj#if 0
6196b564a035bff6173937a9ddf0811af10236286absewardj#define TESTINSN_2reg_shift(instruction, QD, QM, QMtype, QMval, imm) \
6206b564a035bff6173937a9ddf0811af10236286absewardj{ \
6216b564a035bff6173937a9ddf0811af10236286absewardj  unsigned int out[2]; \
6226b564a035bff6173937a9ddf0811af10236286absewardj\
6236b564a035bff6173937a9ddf0811af10236286absewardj  __asm__ volatile( \
6246b564a035bff6173937a9ddf0811af10236286absewardj      "vmov.i8 " #QD ", #0x55" "\n\t" \
6256b564a035bff6173937a9ddf0811af10236286absewardj      "vdup." #QMtype " " #QM ", %1\n\t" \
6266b564a035bff6173937a9ddf0811af10236286absewardj      instruction ", #" #imm "\n\t" \
6276b564a035bff6173937a9ddf0811af10236286absewardj      "vstmia %0, {" #QD "}\n\t" \
6286b564a035bff6173937a9ddf0811af10236286absewardj      : \
6296b564a035bff6173937a9ddf0811af10236286absewardj      : "r" (out), "r" (QMval) \
6306b564a035bff6173937a9ddf0811af10236286absewardj      : #QD, #QM, "memory" \
6316b564a035bff6173937a9ddf0811af10236286absewardj      ); \
632918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  fflush(stdout); \
633918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj  printf("%s, #" #imm " :: Qd 0x%08x 0x%08x  Qm (" #QMtype ")0x%08x",   \
634918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj         instruction, out[1], out[0], QMval);                           \
6356b564a035bff6173937a9ddf0811af10236286absewardj}
6366b564a035bff6173937a9ddf0811af10236286absewardj#endif
6376b564a035bff6173937a9ddf0811af10236286absewardj
6386b564a035bff6173937a9ddf0811af10236286absewardjint main(int argc, char **argv)
6396b564a035bff6173937a9ddf0811af10236286absewardj{
640918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6416b564a035bff6173937a9ddf0811af10236286absewardj    printf("----- VMOV (immediate) -----\n");
6426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i32 d0", d0, 0x7);
6436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i16 d1", d1, 0x7);
6446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i8 d2", d2, 0x7);
6456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i32 d5", d5, 0x700);
6466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i16 d7", d7, 0x700);
6476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i32 d10", d10, 0x70000);
6486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i32 d12", d12, 0x7000000);
6496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i32 d13", d13, 0x7FF);
6506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i32 d14", d14, 0x7FFFF);
6516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmov.i64 d15", d15, 0xFF0000FF00FFFF00);
65224ec9f82e6e98e3b7db681052f1ce8650ae6437asewardj    TESTINSN_imm("vmov.f32 d0", d0, 0.328125);
65324ec9f82e6e98e3b7db681052f1ce8650ae6437asewardj    TESTINSN_imm("vmov.f32 d0", d0, -0.328125);
6546b564a035bff6173937a9ddf0811af10236286absewardj
655918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6566b564a035bff6173937a9ddf0811af10236286absewardj    printf("----- VMVN (immediate) -----\n");
6576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i32 d0", d0, 0x7);
6586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i16 d1", d1, 0x7);
6596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i8 d2", d2, 0x7);
6606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i32 d5", d5, 0x700);
6616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i16 d7", d7, 0x700);
6626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i32 d10", d10, 0x70000);
6636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i32 d13", d13, 0x7000000);
6646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i32 d11", d11, 0x7FF);
6656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i32 d14", d14, 0x7FFFF);
6666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vmvn.i64 d15", d15, 0xFF0000FF00FFFF00);
6676b564a035bff6173937a9ddf0811af10236286absewardj
668918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6696b564a035bff6173937a9ddf0811af10236286absewardj    printf("----- VORR (immediate) -----\n");
6706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vorr.i32 d0", d0, 0x7);
6716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vorr.i16 d2", d2, 0x7);
6726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vorr.i32 d8", d8, 0x700);
6736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vorr.i16 d6", d6, 0x700);
6746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vorr.i32 d14", d14, 0x70000);
6756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vorr.i32 d15", d15, 0x7000000);
6766b564a035bff6173937a9ddf0811af10236286absewardj
677918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6786b564a035bff6173937a9ddf0811af10236286absewardj    printf("----- VBIC (immediate) -----\n");
6796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vbic.i32 d0", d0, 0x7);
6806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vbic.i16 d3", d3, 0x7);
6816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vbic.i32 d5", d5, 0x700);
6826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vbic.i16 d8", d8, 0x700);
6836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vbic.i32 d10", d10, 0x70000);
6846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_imm("vbic.i32 d15", d15, 0x7000000);
6856b564a035bff6173937a9ddf0811af10236286absewardj
686918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6876b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMVN (register) ----\n");
6886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmvn d0, d1", d0, d1, i32, 24);
6896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmvn d10, d15", d10, d15, i32, 24);
6906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmvn d0, d14", d0, d14, i32, 24);
6916b564a035bff6173937a9ddf0811af10236286absewardj
692918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6936b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMOV (register) ----\n");
6946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmov d0, d1", d0, d1, i32, 24);
6956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmov d10, d15", d10, d15, i32, 24);
6966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmov d0, d14", d0, d14, i32, 24);
6976b564a035bff6173937a9ddf0811af10236286absewardj
698918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
6996b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VDUP (ARM core register) (tested indirectly) ----\n");
7006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmov d0, d1", d0, d1, i8, 7);
7016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmov d10, d11", d10, d11, i16, 7);
7026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vmov d0, d15", d0, d15, i32, 7);
7036b564a035bff6173937a9ddf0811af10236286absewardj
704918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7056b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VADD ----\n");
7066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
7076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i64 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i64 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
7166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.i64 d13, d14, d15", d13, d14, i32, 140, d15, i32, 120);
7176b564a035bff6173937a9ddf0811af10236286absewardj
718918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7196b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSUB ----\n");
7206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
7216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i64 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
7256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i64 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
7296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
7306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.i64 d13, d14, d15", d13, d14, i32, 140, d15, i32, 120);
7316b564a035bff6173937a9ddf0811af10236286absewardj
732918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7336b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VAND ----\n");
7346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vand d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
7356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vand d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
7366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vand d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
7376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vand d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
7386b564a035bff6173937a9ddf0811af10236286absewardj
739918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7406b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VBIC ----\n");
7416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbic d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
7426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbic d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
7436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbic d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
7446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbic d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
7456b564a035bff6173937a9ddf0811af10236286absewardj
746918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7476b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VORR ----\n");
7486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorr d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
7496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorr d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
7506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorr d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
7516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorr d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
7526b564a035bff6173937a9ddf0811af10236286absewardj
753918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7546b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VORN ----\n");
7556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorn d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
7566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorn d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
7576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorn d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
7586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vorn d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
7596b564a035bff6173937a9ddf0811af10236286absewardj
760918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7616b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VEOR ----\n");
7626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
7636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
7646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
7656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
7666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
7676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
7686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
7696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("veor d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
7706b564a035bff6173937a9ddf0811af10236286absewardj
771918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7726b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VBSL ----\n");
7736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
7746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
7756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
7766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
7776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
7786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
7796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
7806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbsl d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
7816b564a035bff6173937a9ddf0811af10236286absewardj
782918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7836b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VBIT ----\n");
7846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
7856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
7866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
7876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
7886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
7896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
7906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
7916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbit d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
7926b564a035bff6173937a9ddf0811af10236286absewardj
793918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
7946b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VBIF ----\n");
7956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x77);
7966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d4, d6, d5", d4, d6, i8, 0xff, d5, i16, 0x57);
7976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d10, d11, d12", d10, d11, i8, 0xfe, d12, i8, 0xed);
7986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d15, d15, d15", d15, d15, i8, 0xff, d15, i8, 0xff);
7996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d0, d1, d2", d0, d1, i8, 0x24, d2, i16, 0x73);
8006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d7, d3, d0", d7, d3, i8, 0x24, d0, i16, 0xff);
8016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d4, d4, d4", d4, d4, i16, 0xff, d4, i16, 0xff);
8026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vbif d2, d3, d15", d2, d3, i32, 0x24, d15, i32, 0x1f);
8036b564a035bff6173937a9ddf0811af10236286absewardj
804918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
8056b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VEXT ----\n");
8066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vext.8 d0, d1, d2, #0", d0, d1, i8, 0x77, d2, i8, 0xff);
8076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vext.8 d0, d1, d2, #1", d0, d1, i8, 0x77, d2, i8, 0xff);
8086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vext.8 d0, d1, d2, #7", d0, d1, i8, 0x77, d2, i8, 0xff);
8096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vext.8 d0, d1, d2, #6", d0, d1, i8, 0x77, d2, i8, 0xff);
8106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vext.8 d10, d11, d12, #4", d10, d11, i8, 0x77, d12, i8, 0xff);
8116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vext.8 d0, d5, d15, #5", d0, d5, i8, 0x77, d15, i8, 0xff);
8126b564a035bff6173937a9ddf0811af10236286absewardj
813918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
8146b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VHADD ----\n");
8156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s8 d0, d1, d2", d0, d1, i8, 141, d2, i8, 121);
8206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u8 d0, d1, d2", d0, d1, i8, 141, d2, i8, 121);
8296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhadd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8336b564a035bff6173937a9ddf0811af10236286absewardj
834918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
8356b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VHSUB ----\n");
8366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vhsub.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8526b564a035bff6173937a9ddf0811af10236286absewardj
853918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
8546b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQADD ----\n");
8556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqadd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8716b564a035bff6173937a9ddf0811af10236286absewardj
872918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
8736b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQSUB ----\n");
8746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
8836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
8896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqsub.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
8906b564a035bff6173937a9ddf0811af10236286absewardj
891918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
8926b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRHADD ----\n");
8936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
8946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
8956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
8986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
8996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
9006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
9016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
9026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
9056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
9066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
9076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
9086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
9096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
9136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
9146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
9156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
9196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
9206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
9216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrhadd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
9226b564a035bff6173937a9ddf0811af10236286absewardj
923918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
9246b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGT ----\n");
9256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
9266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
9276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
9346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
9356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
9366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 3, d5, i32, (1 << 31) + 2);
9376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
9406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 2, d5, i32, (1 << 31) + 2);
9436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
9466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
9476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
9546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
9556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
9566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
9666b564a035bff6173937a9ddf0811af10236286absewardj
967918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
9686b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGE ----\n");
9696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
9706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
9716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
9786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
9796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 140);
9806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 3, d5, i32, (1 << 31) + 2);
9816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
9836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
9846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
9866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 2, d5, i32, (1 << 31) + 2);
9876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
9896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
9906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
9916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
9946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
9976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
9986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
9996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
10006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
10016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
10026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 3, d2, i32, (1 << 31) + 2);
10036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
10046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
10056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
10066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
10076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
10086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 2, d2, i32, (1 << 31) + 2);
10096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
10106b564a035bff6173937a9ddf0811af10236286absewardj
1011918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
10126b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSHL (register) ----\n");
10136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s8 d0, d1, d2", d0, d1, i32, 24, d2, i32, 1);
10146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s8 d8, d1, d12", d8, d1, i32, 24, d12, i32, 8);
10156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s8 d10, d31, d7", d10, d31, i32, 24, d7, i32, 4);
10166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s16 d3, d8, d11", d3, d8, i32, 14, d11, i32, 2);
10176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s16 d5, d12, d14", d5, d12, i32, (1 << 30), d14, i32, 1);
10186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s16 d15, d2, d1", d15, d2, i32, (1 << 30), d1, i32, 11);
10196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s32 d9, d12, d19", d9, d12, i32, (1 << 31) + 2, d19, i32, 2);
10206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s32 d11, d22, d0", d11, d22, i32, -1, d0, i32, 12);
10216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s32 d5, d2, d3", d5, d2, i32, (1 << 30), d3, i32, 21);
10226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s64 d15, d12, d4", d15, d12, i32, 5, d4, i32, 20);
10236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 4);
10246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 30);
10256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s64 d15, d2, d4", d15, d2, i32, 0xffabcd59, d4, i32, 0xabcdefab);
10266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 0x400bb5);
10276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.s64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 0x30abcff);
10286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u8 d0, d1, d2", d0, d1, i32, 24, d2, i32, 1);
10296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u8 d8, d1, d12", d8, d1, i32, 24, d12, i32, 8);
10306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u8 d10, d11, d7", d10, d11, i32, 24, d7, i32, 4);
10316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u16 d3, d8, d11", d3, d8, i32, 14, d11, i32, 2);
10326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u16 d5, d12, d14", d5, d12, i32, (1 << 30), d14, i32, 1);
10336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u16 d15, d2, d1", d15, d2, i32, (1 << 30), d1, i32, 11);
10346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u32 d9, d12, d15", d9, d12, i32, (1 << 31) + 2, d15, i32, 2);
10356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u32 d11, d2, d0", d11, d2, i32, -1, d0, i32, 12);
10366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u32 d5, d2, d3", d5, d2, i32, (1 << 30), d3, i32, 21);
10376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u64 d15, d12, d4", d15, d12, i32, 5, d4, i32, 20);
10386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 4);
10396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 30);
10406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u64 d15, d2, d4", d15, d2, i32, 0xffabcd59, d4, i32, 0xabcdefab);
10416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u64 d8, d2, d4", d8, d2, i32, 15, d4, i32, 0x400bb5);
10426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vshl.u64 d5, d12, d4", d5, d12, i32, (1 << 31) + 1, d4, i32, 0x30abcff);
10436b564a035bff6173937a9ddf0811af10236286absewardj
1044918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
10456b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQSHL (register) ----\n");
10466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
10476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
10486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
10496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
10506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s64 d13, d14, d31", d13, d14, i32, -17, d31, i32, -26);
10516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
10526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
10536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
10546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
10556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
10566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s32 d9, d30, d11", d9, d30, i32, (1 << 31) + 8, d11, i32, -1);
10576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
10586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
10596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
10606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s16 d0, d11, d2", d0, d11, i32, (1 << 31) + 256, d2, i32, -1);
10616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
10626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
10636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
10646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
10656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
10666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
10676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
10686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
10696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.s8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
10706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
10716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
10726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
10736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
10746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
10756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
10766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
10776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
10786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u32 d12, d31, d13", d12, d31, i32, -120, d13, i32, -9);
10796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
10806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
10816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
10826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
10836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
10846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u16 d0, d11, d2", d0, d11, i32, (1 << 31) + 256, d2, i32, -1);
10856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
10866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
10876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
10886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
10896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
10906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
10916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
10926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
10936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqshl.u8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
10946b564a035bff6173937a9ddf0811af10236286absewardj
1095918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
10966b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQSHL / VQSHLU (immediate) ----\n");
10976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d0, d1, #1", d0, d1, i32, 1);
10986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d31, d30, #1", d31, d30, i32, -127);
10996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #0", d5, d4, i32, -127);
11006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #63", d5, d4, i32, 16);
11016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #60", d5, d4, i32, 16);
11026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #59", d5, d4, i32, 16);
11036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #58", d5, d4, i32, 16);
11046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #17", d5, d4, i32, 16);
11056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #63", d5, d4, i32, -1);
11066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #60", d5, d4, i32, -1);
11076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s64 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d10, d11, #1", d10, d11, i32, 1);
11096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d31, d30, #1", d31, d30, i32, -127);
11106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #0", d5, d4, i32, -127);
11116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #31", d5, d4, i32, 16);
11126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #28", d5, d4, i32, 16);
11136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #27", d5, d4, i32, 16);
11146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #26", d5, d4, i32, 16);
11156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #17", d5, d4, i32, 16);
11166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #31", d5, d4, i32, -1);
11176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #29", d5, d4, i32, -1);
11186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s32 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d9, d8, #1", d9, d8, i32, 1);
11206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d31, d30, #1", d31, d30, i32, -127);
11216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #0", d5, d4, i32, -127);
11226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d9, d8, #15", d9, d8, i32, 16);
11236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #12", d5, d4, i32, 16);
11246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #11", d5, d4, i32, 16);
11256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #10", d5, d4, i32, 16);
11266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #4", d5, d4, i32, 16);
11276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #15", d5, d4, i32, -1);
11286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #12", d5, d4, i32, -1);
11296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s16 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d0, d1, #1", d0, d1, i32, 1);
11316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d31, d30, #1", d31, d30, i32, -127);
11326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #0", d5, d4, i32, -127);
11336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #7", d5, d4, i32, 16);
11346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d25, d4, #4", d25, d4, i32, 16);
11356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #3", d5, d4, i32, 16);
11366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #2", d5, d4, i32, 16);
11376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #1", d5, d4, i32, 16);
11386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #7", d5, d4, i32, -1);
11396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #5", d5, d4, i32, -1);
11406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.s8 d5, d4, #2", d5, d4, i32, (1 << 31) + 2);
11416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d0, d1, #1", d0, d1, i32, 1);
11426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d31, d30, #1", d31, d30, i32, -127);
11436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #0", d5, d4, i32, -127);
11446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #63", d5, d4, i32, 16);
11456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #60", d5, d4, i32, 16);
11466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #59", d5, d4, i32, 16);
11476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #58", d5, d4, i32, 16);
11486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #17", d5, d4, i32, 16);
11496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #63", d5, d4, i32, -1);
11506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #60", d5, d4, i32, -1);
11516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u64 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d10, d11, #1", d10, d11, i32, 1);
11536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d31, d30, #1", d31, d30, i32, -127);
11546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #0", d5, d4, i32, -127);
11556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #31", d5, d4, i32, 16);
11566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #28", d5, d4, i32, 16);
11576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #27", d5, d4, i32, 16);
11586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #26", d5, d4, i32, 16);
11596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #17", d5, d4, i32, 16);
11606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #31", d5, d4, i32, -1);
11616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #29", d5, d4, i32, -1);
11626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u32 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d9, d8, #1", d9, d8, i32, 1);
11646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d31, d30, #1", d31, d30, i32, -127);
11656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #0", d5, d4, i32, -127);
11666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d9, d8, #15", d9, d8, i32, 16);
11676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #12", d5, d4, i32, 16);
11686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #11", d5, d4, i32, 16);
11696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #10", d5, d4, i32, 16);
11706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #4", d5, d4, i32, 16);
11716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #15", d5, d4, i32, -1);
11726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #12", d5, d4, i32, -1);
11736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u16 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d0, d1, #1", d0, d1, i32, 1);
11756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d31, d30, #1", d31, d30, i32, -127);
11766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #0", d5, d4, i32, -127);
11776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #7", d5, d4, i32, 16);
11786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #4", d5, d4, i32, 16);
11796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #3", d5, d4, i32, 16);
11806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #2", d5, d4, i32, 16);
11816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #1", d5, d4, i32, 16);
11826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #7", d5, d4, i32, -1);
11836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #5", d5, d4, i32, -1);
11846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshl.u8 d5, d4, #2", d5, d4, i32, (1 << 31) + 2);
11856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d0, d1, #1", d0, d1, i32, 1);
11866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d31, d30, #1", d31, d30, i32, -127);
11876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #0", d5, d4, i32, -127);
11886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #63", d5, d4, i32, 16);
11896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #60", d5, d4, i32, 16);
11906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #59", d5, d4, i32, 16);
11916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #58", d5, d4, i32, 16);
11926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #17", d5, d4, i32, 16);
11936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #63", d5, d4, i32, -1);
11946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #60", d5, d4, i32, -1);
11956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s64 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
11966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d10, d11, #1", d10, d11, i32, 1);
11976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d31, d30, #1", d31, d30, i32, -127);
11986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #0", d5, d4, i32, -127);
11996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #31", d5, d4, i32, 16);
12006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d25, d24, #28", d25, d24, i32, 16);
12016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #27", d5, d4, i32, 16);
12026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #26", d5, d4, i32, 16);
12036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #17", d5, d4, i32, 16);
12046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d24, #31", d5, d24, i32, -1);
12056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #29", d5, d4, i32, -1);
12066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s32 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
12076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d9, d8, #1", d9, d8, i32, 1);
12086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d31, d30, #1", d31, d30, i32, -127);
12096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #0", d5, d4, i32, -127);
12106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d9, d8, #15", d9, d8, i32, 16);
12116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #12", d5, d4, i32, 16);
12126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #11", d5, d4, i32, 16);
12136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #10", d5, d4, i32, 16);
12146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #4", d5, d4, i32, 16);
12156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d15, d14, #15", d15, d14, i32, -1);
12166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #12", d5, d4, i32, -1);
12176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s16 d5, d4, #7", d5, d4, i32, (1 << 31) + 2);
12186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d0, d1, #1", d0, d1, i32, 1);
12196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d31, d30, #1", d31, d30, i32, -127);
12206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #0", d5, d4, i32, -127);
12216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #7", d5, d4, i32, 16);
12226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #4", d5, d4, i32, 16);
12236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #3", d5, d4, i32, 16);
12246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #2", d5, d4, i32, 16);
12256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #1", d5, d4, i32, 16);
12266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #7", d5, d4, i32, -1);
12276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #5", d5, d4, i32, -1);
12286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshlu.s8 d5, d4, #2", d5, d4, i32, (1 << 31) + 2);
12296b564a035bff6173937a9ddf0811af10236286absewardj
1230918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
12316b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQRSHL (register) ----\n");
12326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
12336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
12346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
12356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
12366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
12376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
12386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
12396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
12406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
12416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
12426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
12436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
12446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
12456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
12466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d0, d31, d2", d0, d31, i32, (1 << 31) + 256, d2, i32, -1);
12476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
12486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
12496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
12506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
12516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
12526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
12536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
12546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
12556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
12566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
12576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
12586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
12596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
12606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s16 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
12616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s32 d2, d7, d31", d2, d7, i32, -1, d31, i32, 0);
12626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
12636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
12646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
12656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
12666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
12676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.s8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
12686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
12696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
12706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
12716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
12726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
12736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
12746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
12756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
12766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
12776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
12786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
12796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
12806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
12816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
12826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d0, d31, d2", d0, d31, i32, (1 << 31) + 256, d2, i32, -1);
12836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
12846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
12856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
12866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
12876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
12886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
12896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
12906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
12916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
12926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
12936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
12946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
12956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u16 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
12966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u32 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
12976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
12986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
12996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
13006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
13016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrshl.u8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
13026b564a035bff6173937a9ddf0811af10236286absewardj
1303918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
13046b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSHL (register) ----\n");
13056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
13066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
13076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
13086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
13096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
13106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
13116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
13126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
13136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
13146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
13156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
13166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
13176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
13186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
13196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d0, d11, d2", d0, d11, i32, (1 << 31) + 256, d2, i32, -1);
13206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
13216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
13226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
13236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
13246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
13256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
13266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d2, d7, d31", d2, d7, i32, -1, d31, i32, -1);
13276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d2, d7, d31", d2, d7, i32, -1, d31, i32, -1);
13286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d2, d7, d31", d2, d7, i32, -1, d31, i32, -1);
13296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
13306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
13316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d2, d7, d11", d2, d7, i32, -2, d11, i32, -1);
13326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
13336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s16 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
13346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s32 d2, d7, d11", d2, d7, i32, -1, d11, i32, 0);
13356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
13366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
13376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
13386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
13396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
13406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.s8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
13416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u64 d0, d1, d2", d0, d1, i32, 1, d2, i32, 1);
13426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, 1);
13436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u64 d3, d4, d5", d3, d4, i32, -127, d5, i32, -3);
13446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u64 d0, d1, d2", d0, d1, i32, 16, d2, i32, 14);
13456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u64 d13, d14, d15", d13, d14, i32, -17, d15, i32, -26);
13466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u64 d7, d8, d2", d7, d8, i32, 24, d2, i32, -60);
13476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d3, d4, d15", d3, d4, i32, 127, d15, i32, -30);
13486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d2, d8, d4", d2, d8, i32, -11, d4, i32, -4);
13496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d12, d11, d13", d12, d11, i32, -120, d13, i32, -9);
13506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d0, d1, d2", d0, d1, i32, 34, d2, i32, -7);
13516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d9, d10, d11", d9, d10, i32, (1 << 31) + 8, d11, i32, -1);
13526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d13, d3, d5", d13, d3, i32, (1 << 27), d5, i32, 3);
13536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d11, d10, d2", d11, d10, i32, (1 << 31), d2, i32, -31);
13546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d3, d14, d7", d3, d14, i32, (1 << 31), d7, i32, -3);
13556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d0, d31, d2", d0, d31, i32, (1 << 31) + 256, d2, i32, -1);
13566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d1, d2, d3", d1, d2, i32, (1 << 31) + 256, d3, i32, -31);
13576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d3, d4, d5", d3, d4, i32, (1 << 31) + (1 << 29), d5, i32, -13);
13586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d0, d15, d2", d0, d15, i32, 1, d2, i32, 30);
13596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, 40);
13606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
13616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
13626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
13636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d2, d7, d11", d2, d7, i32, 0xf, d11, i32, -1);
13646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
13656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
13666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d2, d7, d11", d2, d7, i32, -1, d11, i32, -1);
13676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d2, d7, d31", d2, d7, i32, -2, d31, i32, -1);
13686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u16 d2, d7, d31", d2, d7, i32, -2, d31, i32, -1);
13696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u32 d2, d7, d31", d2, d7, i32, -2, d31, i32, -1);
13706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d13, d1, d2", d13, d1, i32, -4, d2, i32, 30);
13716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d3, d7, d5", d3, d7, i32, (1 << 31) + 11, d5, i32, 3);
13726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d10, d11, d12", d10, d11, i32, (1 << 16), d12, i32, 16);
13736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d6, d7, d8", d6, d7, i32, (1 << 30), d8, i32, 2);
13746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrshl.u8 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
13756b564a035bff6173937a9ddf0811af10236286absewardj
1376918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
13776b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMAX (integer) ----\n");
13786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
13796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
13806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
13816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
13826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
13836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
13846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
13856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
13866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
13876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
13886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
13896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
13906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
13916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
13926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
13936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
13946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
13956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
13966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
13976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
13986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
13996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
14086b564a035bff6173937a9ddf0811af10236286absewardj
1409918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
14106b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMIN (integer) ----\n");
14116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
14126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
14136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
14156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
14166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
14176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
14206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
14236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
14266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
14276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
14286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
14306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
14316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
14416b564a035bff6173937a9ddf0811af10236286absewardj
1442918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
14436b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VABD ----\n");
14446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
14456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
14466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, -120);
14476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
14506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
14516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
14526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
14556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
14586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
14616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
14626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, -140, d2, i32, 120);
14646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
14666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
14676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
14776b564a035bff6173937a9ddf0811af10236286absewardj
1478918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
14796b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VABA ----\n");
14806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
14816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
14826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
14866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
14876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
14886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
14906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
14916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
14936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
14946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
14966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
14976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
14986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
14996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
15006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
15016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u8 d5, d7, d5", d5, d7, i32, -255, d5, i32, (1 << 31) + 2);
15026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, -200);
15036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
15076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
15086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
15096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
15106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
15116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
15126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaba.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
15136b564a035bff6173937a9ddf0811af10236286absewardj
1514918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
15156b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VTST ----\n");
15166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
15176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.32 d3, d4, d5", d3, d4, i32, 140, d5, i32, 120);
15186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.16 d6, d7, d8", d6, d7, i32, 120, d8, i32, 120);
15196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.8 d9, d10, d12", d9, d10, i32, 140, d12, i32, 120);
15206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.16 d0, d1, d2", d0, d1, i32, (1 << 14) + 1, d2, i32, (1 << 14) + 1);
15226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, 2);
15246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.16 d0, d1, d2", d0, d1, i32, (1 << 14) + 1, d2, i32, (1 << 14) + 1);
15256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.32 d0, d1, d2", d0, d1, i32, 1, d2, i32, (1 << 31) + 2);
15266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vtst.32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
15276b564a035bff6173937a9ddf0811af10236286absewardj
1528918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
15296b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCEQ ----\n");
15306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
15316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i32 d3, d4, d5", d3, d4, i32, 140, d5, i32, 120);
15326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i16 d6, d7, d8", d6, d7, i32, 120, d8, i32, 120);
15336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i8 d9, d10, d12", d9, d10, i32, 140, d12, i32, 120);
15346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i16 d0, d1, d2", d0, d1, i32, (1 << 14) + 1, d2, i32, (1 << 14) + 1);
15366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
15376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, 2);
15386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i16 d0, d1, d2", d0, d1, i32, 1, d2, i32, (1 << 14) + 1);
15396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i32 d0, d1, d2", d0, d1, i32, 1, d2, i32, (1 << 31) + 2);
15406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
15416b564a035bff6173937a9ddf0811af10236286absewardj
1542918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
15436b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLA ----\n");
15446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d0, d1, d2", d0, d1, i32, -24, d2, i32, 120);
15456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d6, d7, d8", d6, d7, i32, 140, d8, i32, 120);
15466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
15476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, -120);
15486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i8 d10, d11, d12", d10, d11, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
15496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
15506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
15516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i8 d10, d13, d12", d10, d13, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
15526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
15536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
15546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d10, d11, d15", d10, d11, i32, 24, d15, i32, -120);
15556b564a035bff6173937a9ddf0811af10236286absewardj
1556918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
15576b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLS ----\n");
15586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d0, d1, d2", d0, d1, i32, -24, d2, i32, 120);
15596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
15606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
15616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
15626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i8 d10, d11, d12", d10, d11, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
15636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
15646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
15656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i8 d10, d13, d12", d10, d13, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
15666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
15676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
15686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d10, d11, d15", d10, d11, i32, -24, d15, i32, 120);
15696b564a035bff6173937a9ddf0811af10236286absewardj
1570918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
15716b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMUL ----\n");
15726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
15736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
15746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
15756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
15766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i8 d10, d11, d12", d10, d11, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
15776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
15786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
15796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i8 d10, d11, d12", d10, d11, i32, (1 << 25) + 0xfeb2, d12, i32, (1 << 13) + 0xdf);
15806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d4, d5, d6", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
15816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d7, d8, d9", d7, d8, i32, (1 << 31), d9, i32, 12);
15826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i8 d10, d13, d12", d10, d13, i32, (1 << 5) + 1, d12, i32, (1 << 3) + 2);
15836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
15846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
15856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d10, d11, d15", d10, d11, i32, 24, d15, i32, 120);
15866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 3, q2, i32, 3);
15876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 12, q2, i8, 0x0f);
15886b564a035bff6173937a9ddf0811af10236286absewardj
1589918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
15906b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMUL (by scalar) ----\n");
15916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d0, d1, d4[0]", d0, d1, i32, 24, d4, i32, 120);
15926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d31, d8, d7[1]", d31, d8, i32, 140, d7, i32, -120);
15936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d30, d9, d7[3]", d30, d9, i32, 0x140, d7, i32, 0x120);
15946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d4, d5, d6[2]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
15956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
15966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
15976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
15986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
15996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
16006b564a035bff6173937a9ddf0811af10236286absewardj
1601918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
16026b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLA (by scalar) ----\n");
16036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d0, d1, d4[0]", d0, d1, i32, 24, d4, i32, 120);
16046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d31, d8, d7[1]", d31, d8, i32, 140, d7, i32, -120);
16056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d30, d9, d7[3]", d30, d9, i32, 0x140, d7, i32, 0x120);
16066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d4, d5, d6[2]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
16076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
16086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
16096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
16106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
16116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmla.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
16126b564a035bff6173937a9ddf0811af10236286absewardj
1613918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
16146b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLS (by scalar) ----\n");
16156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d0, d1, d4[0]", q0, q1, i32, 24, d4, i32, 120);
16166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d31, d8, d7[1]", d31, d8, i32, 140, d7, i32, -120);
16176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d30, d9, d7[3]", d30, d9, i32, 0x140, d7, i32, 0x120);
16186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d4, d5, d6[2]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
16196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
16206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
16216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
16226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i16 d4, d5, d6[0]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
16236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmls.i32 d7, d8, d1[1]", d7, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
16246b564a035bff6173937a9ddf0811af10236286absewardj
1625918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
16266b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSHR ----\n");
16276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s8 d0, d1, #0", d0, d1, i32, -1);
16286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s8 d0, d1, #1", d0, d1, i32, -1);
16296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s16 d3, d4, #2", d3, d4, i32, -0x7c);
16306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s32 d2, d5, #31", d2, d5, i32, -1);
16316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s8 d6, d7, #7", d6, d7, i32, 0xffff);
16326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s16 d8, d9, #12", d8, d9, i32, -10);
16336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s32 d10, d11, #5", d10, d11, i32, 10234);
16346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u8 d12, d13, #1", d12, d13, i32, -1);
16356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u16 d14, d15, #11", d14, d15, i32, -1);
16366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u32 d10, d11, #9", d10, d11, i32, 1000);
16376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u8 d7, d13, #7", d7, d13, i32, -1);
16386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
16396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
16406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u64 d0, d1, #42", d0, d1, i32, -1);
16416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s64 d6, d7, #12", d6, d7, i32, 0xfac);
16426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.u64 d8, d4, #9", d8, d4, i32, 13560);
16436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshr.s64 d9, d12, #11", d9, d12, i32, 98710);
16446b564a035bff6173937a9ddf0811af10236286absewardj
1645918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
16466b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSRA ----\n");
16476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s8 d0, d1, #1", d0, d1, i32, -1);
16486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s16 d3, d4, #2", d3, d4, i32, -0x7c);
16496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s32 d2, d5, #31", d2, d5, i32, -1);
16506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s8 d6, d7, #7", d6, d7, i32, 0xffff);
16516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s16 d8, d9, #12", d8, d9, i32, -10);
16526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s32 d10, d11, #5", d10, d11, i32, 10234);
16536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u8 d12, d13, #1", d12, d13, i32, -1);
16546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u16 d14, d15, #11", d14, d15, i32, -1);
16556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u32 d10, d11, #9", d10, d11, i32, 1000);
16566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u8 d7, d13, #7", d7, d13, i32, -1);
16576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
16586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
16596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u64 d0, d1, #42", d0, d1, i32, -1);
16606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s64 d6, d7, #12", d6, d7, i32, 0xfac);
16616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.u64 d8, d4, #9", d8, d4, i32, 13560);
16626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsra.s64 d9, d12, #11", d9, d12, i32, 98710);
16636b564a035bff6173937a9ddf0811af10236286absewardj
1664918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
16656b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSHR ----\n");
16666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s8 d0, d1, #0", d0, d1, i32, -1);
16676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s8 d0, d1, #1", d0, d1, i32, -1);
16686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s16 d3, d4, #2", d3, d4, i32, -0x7c);
16696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s32 d2, d5, #31", d2, d5, i32, -1);
16706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s8 d6, d7, #7", d6, d7, i32, 0xffff);
16716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s16 d8, d9, #12", d8, d9, i32, -10);
16726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s32 d10, d11, #5", d10, d11, i32, 10234);
16736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u8 d12, d13, #1", d12, d13, i32, -1);
16746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u16 d14, d15, #11", d14, d15, i32, -1);
16756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u32 d10, d11, #9", d10, d11, i32, 1000);
16766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u8 d7, d13, #7", d7, d13, i32, -1);
16776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
16786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
16796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u64 d0, d1, #42", d0, d1, i32, -1);
16806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s64 d6, d7, #12", d6, d7, i32, 0xfac);
16816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.u64 d8, d4, #9", d8, d4, i32, 13560);
16826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshr.s64 d9, d12, #11", d9, d12, i32, 98710);
16836b564a035bff6173937a9ddf0811af10236286absewardj
1684918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
16856b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSRA ----\n");
16866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s8 d0, d1, #1", d0, d1, i32, -1);
16876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s16 d3, d4, #2", d3, d4, i32, -0x7c);
16886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s32 d2, d5, #31", d2, d5, i32, -1);
16896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s8 d6, d7, #7", d6, d7, i32, 0xffff);
16906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s16 d8, d9, #12", d8, d9, i32, -10);
16916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s32 d10, d11, #5", d10, d11, i32, 10234);
16926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u8 d12, d13, #1", d12, d13, i32, -1);
16936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u16 d14, d15, #11", d14, d15, i32, -1);
16946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u32 d10, d11, #9", d10, d11, i32, 1000);
16956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u8 d7, d13, #7", d7, d13, i32, -1);
16966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u16 d8, d1, #5", d8, d1, i32, 0xabcf);
16976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u32 d12, d3, #15", d12, d3, i32, -0x1b0);
16986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u64 d0, d1, #42", d0, d1, i32, -1);
16996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s64 d6, d7, #12", d6, d7, i32, 0xfac);
17006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.u64 d8, d4, #9", d8, d4, i32, 13560);
17016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsra.s64 d9, d12, #11", d9, d12, i32, 98710);
17026b564a035bff6173937a9ddf0811af10236286absewardj
1703918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
17046b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSRI ----\n");
17056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.16 d0, d1, #1", d0, d1, i32, -1);
17066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.16 d3, d4, #2", d3, d4, i32, -0x7c);
17076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.32 d2, d5, #31", d2, d5, i32, -1);
17086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.8 d6, d7, #7", d6, d7, i32, 0xffff);
17096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.16 d8, d9, #12", d8, d9, i32, -10);
17106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.32 d10, d11, #5", d10, d11, i32, 10234);
17116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.8 d12, d13, #1", d12, d13, i32, -1);
17126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.16 d14, d15, #11", d14, d15, i32, -1);
17136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.32 d10, d11, #9", d10, d11, i32, 1000);
17146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.8 d7, d13, #7", d7, d13, i32, -1);
17156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.16 d8, d1, #5", d8, d1, i32, 0xabcf);
17166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.32 d12, d3, #15", d12, d3, i32, -0x1b0);
17176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.64 d0, d1, #42", d0, d1, i32, -1);
17186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.64 d6, d7, #12", d6, d7, i32, 0xfac);
17196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.64 d8, d4, #9", d8, d4, i32, 13560);
17206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsri.64 d9, d12, #11", d9, d12, i32, 98710);
17216b564a035bff6173937a9ddf0811af10236286absewardj
1722918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
17236b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMOV (ARM core register to scalar) ----\n");
17246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.32 d0[0], r5", d0, r5, 13);
17256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.32 d1[1], r3", d1, r3, 12);
17266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.16 d0[0], r5", d0, r5, 13);
17276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.16 d2[2], r6", d2, r6, 14);
17286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.16 d3[3], r1", d3, r1, 17);
17296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[0], r5", d0, r5, 13);
17306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[1], r5", d0, r5, 13);
17316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[2], r5", d0, r5, 13);
17326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[3], r5", d0, r5, 13);
17336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[4], r5", d0, r5, 13);
17346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[5], r5", d0, r5, 13);
17356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d0[6], r5", d0, r5, 13);
17366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_core_to_scalar("vmov.8 d31[7], r5", d31, r5, 13);
17376b564a035bff6173937a9ddf0811af10236286absewardj
1738918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
17396b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMOV (scalar toARM core register) ----\n");
17406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.32 r5, d0[0]", r5, d0, i32, 0x11223344);
17416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.32 r6, d5[1]", r6, d5, i32, 0x11223344);
17426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u16 r5, d31[0]", r5, d31, i32, 0x11223344);
17436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u16 r5, d30[1]", r5, d30, i32, 0x11223344);
17446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u16 r5, d31[2]", r5, d31, i32, 0x11223344);
17456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u16 r5, d31[3]", r5, d31, i32, 0x11223344);
17466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[0]", r2, d4, i32, 0x11223344);
17476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[1]", r2, d4, i32, 0x11223344);
17486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[2]", r2, d4, i32, 0x11223344);
17496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[3]", r2, d4, i32, 0x11223344);
17506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[4]", r2, d4, i32, 0x11223344);
17516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[5]", r2, d4, i32, 0x11223344);
17526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[6]", r2, d4, i32, 0x11223344);
17536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.u8 r2, d4[7]", r2, d4, i32, 0x11223344);
17546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s16 r5, d31[0]", r5, d31, i8, 128);
17556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s16 r5, d30[1]", r5, d30, i8, 128);
17566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s16 r5, d31[2]", r5, d31, i8, 128);
17576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s16 r5, d31[3]", r5, d31, i8, 128);
17586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[0]", r2, d4, i8, 128);
17596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[1]", r2, d4, i8, 128);
17606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[2]", r2, d4, i8, 128);
17616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[3]", r2, d4, i8, 128);
17626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[4]", r2, d4, i8, 128);
17636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[5]", r2, d4, i8, 130);
17646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[6]", r2, d4, i8, 129);
17656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_scalar_to_core("vmov.s8 r2, d4[7]", r2, d4, i8, 131);
17666b564a035bff6173937a9ddf0811af10236286absewardj
1767918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
17686b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD1 (multiple single elements) ----\n");
17696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0}", d0, d0, d0, d0);
17706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d0}", d0, d0, d0, d0);
17716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d0}", d0, d0, d0, d0);
17726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.64 {d0}", d0, d0, d0, d0);
17736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d9}", d9, d9, d9, d9);
17746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d17}", d17, d17, d17, d17);
17756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d31}", d31, d31, d31, d31);
17766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.64 {d14}", d14, d14, d14, d14);
17776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0-d1}", d0, d1, d0, d1);
17786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d0-d1}", d0, d1, d0, d1);
17796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d5-d6}", d5, d6, d5, d6);
17806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.64 {d30-d31}", d30, d31, d30, d31);
17816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0-d2}", d0, d1, d2, d0);
17826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d0-d2}", d0, d1, d2, d0);
17836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d0-d2}", d0, d1, d2, d0);
17846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.64 {d0-d2}", d0, d1, d2, d0);
17856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0-d3}", d0, d1, d2, d3);
17866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d0-d3}", d0, d1, d2, d3);
17876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d0-d3}", d0, d1, d2, d3);
17886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.64 {d0-d3}", d0, d1, d2, d3);
17896b564a035bff6173937a9ddf0811af10236286absewardj
1790918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
17916b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD1 (single element to one lane) ----\n");
17926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d0[0]}", d0, d0, d0, d0);
17936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d0[1]}", d0, d0, d0, d0);
17946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d1[0]}", d1, d1, d1, d1);
17956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d1[1]}", d1, d1, d1, d1);
17966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d1[2]}", d1, d1, d1, d1);
17976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d1[3]}", d1, d1, d1, d1);
17986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0[7]}", d0, d0, d0, d0);
17996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d1[6]}", d1, d1, d1, d1);
18006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0[5]}", d0, d0, d0, d0);
18016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0[4]}", d0, d0, d0, d0);
18026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d20[3]}", d20, d20, d20, d20);
18036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0[2]}", d0, d0, d0, d0);
18046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d17[1]}", d17, d17, d17, d17);
18056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d30[0]}", d30, d30, d30, d30);
18066b564a035bff6173937a9ddf0811af10236286absewardj
1807918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18086b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD1 (single element to all lanes) ----\n");
18096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0[]}", d0, d0, d0, d0);
18106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d0[]}", d0, d0, d0, d0);
18116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d0[]}", d0, d0, d0, d0);
18126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d9[]}", d9, d9, d9, d9);
18136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d17[]}", d17, d17, d17, d17);
18146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d31[]}", d31, d31, d31, d31);
18156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.8 {d0[],d1[]}", d0, d1, d0, d1);
18166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.16 {d0[],d1[]}", d0, d1, d0, d1);
18176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld1.32 {d5[],d6[]}", d5, d6, d5, d6);
18186b564a035bff6173937a9ddf0811af10236286absewardj
1819918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18206b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD2 (multiple 2-elements) ----\n");
18216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d30-d31}", d30, d31, d30, d31);
18226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d0-d1}", d0, d1, d0, d1);
18236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0-d1}", d0, d1, d0, d1);
18246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d10,d12}", d10, d12, d10, d12);
18256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d20,d22}", d20, d22, d20, d22);
18266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0,d2}", d0, d2, d0, d2);
18276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0-d3}", d0, d1, d2, d3);
18286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d20-d23}", d20, d21, d22, d23);
18296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0-d3}", d0, d1, d2, d3);
18306b564a035bff6173937a9ddf0811af10236286absewardj
1831918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18326b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD2 (single 2-element structure to one lane) ----\n");
18336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
18346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
18356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
18366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
18376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
18386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
18396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
18406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
18416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
18426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
18436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
18446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
18456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
18466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
18476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
18486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
18496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
18506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
18516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
18526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
18536b564a035bff6173937a9ddf0811af10236286absewardj
1854918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18556b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD2 (2-elements to all lanes) ----\n");
18566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0[],d1[]}", d0, d1, d0, d1);
18576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d0[],d1[]}", d0, d1, d0, d1);
18586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d0[],d1[]}", d0, d1, d0, d1);
18596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d9[],d11[]}", d9, d11, d9, d11);
18606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d17[],d18[]}", d17, d18, d17, d18);
18616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d30[],d31[]}", d30, d31, d30, d31);
18626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.8 {d0[],d2[]}", d0, d2, d0, d2);
18636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.16 {d0[],d2[]}", d0, d2, d0, d2);
18646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld2.32 {d5[],d7[]}", d5, d7, d5, d7);
18656b564a035bff6173937a9ddf0811af10236286absewardj
1866918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18676b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD3 (multiple 3-elements) ----\n");
18686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d20-d22}", d20, d21, d22, d20);
18696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d0-d2}", d0, d1, d2, d0);
18706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0-d2}", d0, d1, d2, d0);
18716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0,d2,d4}", d0, d2, d4, d0);
18726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d20,d22,d24}", d20, d22, d24, d20);
18736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0,d2,d4}", d0, d2, d4, d0);
18746b564a035bff6173937a9ddf0811af10236286absewardj
1875918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18766b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD3 (single 3-element structure to one lane) ----\n");
18776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
18786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
18796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
18806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
18816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
18826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
18836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
18846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
18856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
18866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
18876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
18886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
18896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
18906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
18916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
18926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
18936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
18946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
18956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
18966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
18976b564a035bff6173937a9ddf0811af10236286absewardj
1898918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
18996b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD3 (3-elements to all lanes) ----\n");
19006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0[],d1[],d2[]}", d0, d1, d2, d1);
19016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d0[],d1[],d2[]}", d0, d1, d2, d1);
19026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d0[],d1[],d2[]}", d0, d1, d2, d1);
19036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d9[],d11[],d13[]}", d9, d11, d13, d11);
19046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d17[],d18[],d19[]}", d17, d18, d19, d18);
19056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d29[],d30[],d31[]}", d29, d30, d30, d31);
19066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.8 {d0[],d2[],d4[]}", d0, d2, d4, d2);
19076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.16 {d0[],d2[],d4[]}", d0, d2, d4, d2);
19086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld3.32 {d5[],d7[],d9[]}", d5, d7, d9, d7);
19096b564a035bff6173937a9ddf0811af10236286absewardj
1910918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
19116b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD4 (multiple 3-elements) ----\n");
19126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0-d3}", d0, d1, d2, d3);
19136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d20-d23}", d20, d21, d22, d23);
19146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d0-d3}", d0, d1, d2, d3);
19156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
19166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
19176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
19186b564a035bff6173937a9ddf0811af10236286absewardj
1919918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
19206b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD4 (single 4-element structure to one lane) ----\n");
19216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
19226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
19236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
19246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
19256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
19266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
19276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
19286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
19296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
19306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
19316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
19326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
19336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
19346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
19356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
19366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
19376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
19386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
19396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
19406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
19416b564a035bff6173937a9ddf0811af10236286absewardj
1942918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
19436b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VLD4 (4-elements to all lanes) ----\n");
19446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
19456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
19466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
19476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d9[],d11[],d13[],d15[]}", d9, d11, d13, d15);
19486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d17[],d18[],d19[],d20[]}", d17, d18, d19, d20);
19496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d28[],d29[],d30[],d31[]}", d28, d29, d30, d31);
19506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.8 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
19516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.16 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
19526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VLDn("vld4.32 {d5[],d7[],d9[],d11[]}", d5, d7, d9, d11);
19536b564a035bff6173937a9ddf0811af10236286absewardj
1954918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
19556b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST1 (multiple single elements) ----\n");
19566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0}", d0, d0, d0, d0);
19576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d0}", d0, d0, d0, d0);
19586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d0}", d0, d0, d0, d0);
19596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.64 {d0}", d0, d0, d0, d0);
19606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d9}", d9, d9, d9, d9);
19616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d17}", d17, d17, d17, d17);
19626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d31}", d31, d31, d31, d31);
19636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.64 {d14}", d14, d14, d14, d14);
19646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0-d1}", d0, d1, d0, d1);
19656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d0-d1}", d0, d1, d0, d1);
19666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d5-d6}", d5, d6, d5, d6);
19676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.64 {d30-d31}", d30, d31, d30, d31);
19686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0-d2}", d0, d1, d2, d0);
19696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d0-d2}", d0, d1, d2, d0);
19706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d0-d2}", d0, d1, d2, d0);
19716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.64 {d0-d2}", d0, d1, d2, d0);
19726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0-d3}", d0, d1, d2, d3);
19736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d0-d3}", d0, d1, d2, d3);
19746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d0-d3}", d0, d1, d2, d3);
19756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.64 {d0-d3}", d0, d1, d2, d3);
19766b564a035bff6173937a9ddf0811af10236286absewardj
1977918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
19786b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST1 (single element from one lane) ----\n");
19796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d0[0]}", d0, d0, d0, d0);
19806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.32 {d0[1]}", d0, d0, d0, d0);
19816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d1[0]}", d1, d1, d1, d1);
19826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d1[1]}", d1, d1, d1, d1);
19836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d1[2]}", d1, d1, d1, d1);
19846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.16 {d1[3]}", d1, d1, d1, d1);
19856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0[7]}", d0, d0, d0, d0);
19866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d1[6]}", d1, d1, d1, d1);
19876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0[5]}", d0, d0, d0, d0);
19886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0[4]}", d0, d0, d0, d0);
19896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d20[3]}", d20, d20, d20, d20);
19906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d0[2]}", d0, d0, d0, d0);
19916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d17[1]}", d17, d17, d17, d17);
19926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst1.8 {d30[0]}", d30, d30, d30, d30);
19936b564a035bff6173937a9ddf0811af10236286absewardj
1994918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
19956b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST2 (multiple 2-elements) ----\n");
19966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d30-d31}", d30, d31, d30, d31);
19976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d0-d1}", d0, d1, d0, d1);
19986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0-d1}", d0, d1, d0, d1);
19996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d10,d12}", d10, d12, d10, d12);
20006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d20,d22}", d20, d22, d20, d22);
20016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0,d2}", d0, d2, d0, d2);
20026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d0-d3}", d0, d1, d2, d3);
20036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d20-d23}", d20, d21, d22, d23);
20046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0-d3}", d0, d1, d2, d3);
20056b564a035bff6173937a9ddf0811af10236286absewardj
2006918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
20076b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST2 (single 2-element structure from one lane) ----\n");
20086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
20096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
20106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
20116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
20126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
20136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
20146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
20156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
20166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
20176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
20186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
20196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
20206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
20216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
20226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
20236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
20246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
20256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
20266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
20276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
20286b564a035bff6173937a9ddf0811af10236286absewardj
2029918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
20306b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST3 (multiple 3-elements) ----\n");
20316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d20-d22}", d20, d21, d22, d20);
20326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d0-d2}", d0, d1, d2, d0);
20336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.32 {d0-d2}", d0, d1, d2, d0);
20346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d0,d2,d4}", d0, d2, d4, d0);
20356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d20,d22,d24}", d20, d22, d24, d20);
20366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.32 {d0,d2,d4}", d0, d2, d4, d0);
20376b564a035bff6173937a9ddf0811af10236286absewardj
2038918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
20396b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST3 (single 3-element structure from one lane) ----\n");
20406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
20416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
20426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
20436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
20446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
20456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
20466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
20476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
20486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
20496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
20506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
20516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
20526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
20536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
20546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
20556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
20566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
20576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
20586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
20596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
20606b564a035bff6173937a9ddf0811af10236286absewardj
2061918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
20626b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST4 (multiple 4-elements) ----\n");
20636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d0-d3}", d0, d1, d2, d3);
20646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d20-d23}", d20, d21, d22, d23);
20656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.32 {d0-d3}", d0, d1, d2, d3);
20666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
20676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
20686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
20696b564a035bff6173937a9ddf0811af10236286absewardj
2070918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
20716b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VST4 (single 4-element structure from one lane) ----\n");
20726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
20736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
20746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
20756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
20766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
20776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
20786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
20796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
20806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
20816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
20826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
20836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
20846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
20856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
20866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
20876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
20886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
20896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
20906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
20916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_VSTn("vst4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
20926b564a035bff6173937a9ddf0811af10236286absewardj
2093918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
20942536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD1 (multiple single elements) ----\n");
20952536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0}", d0, d0, d0, d0);
20962536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d0}", d0, d0, d0, d0);
20972536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d0}", d0, d0, d0, d0);
20982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.64 {d0}", d0, d0, d0, d0);
20992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d9}", d9, d9, d9, d9);
21002536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d17}", d17, d17, d17, d17);
21012536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d31}", d31, d31, d31, d31);
21022536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.64 {d14}", d14, d14, d14, d14);
21032536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0-d1}", d0, d1, d0, d1);
21042536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d0-d1}", d0, d1, d0, d1);
21052536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d5-d6}", d5, d6, d5, d6);
21062536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.64 {d30-d31}", d30, d31, d30, d31);
21072536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0-d2}", d0, d1, d2, d0);
21082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d0-d2}", d0, d1, d2, d0);
21092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d0-d2}", d0, d1, d2, d0);
21102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.64 {d0-d2}", d0, d1, d2, d0);
21112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0-d3}", d0, d1, d2, d3);
21122536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d0-d3}", d0, d1, d2, d3);
21132536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d0-d3}", d0, d1, d2, d3);
21142536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.64 {d0-d3}", d0, d1, d2, d3);
21152536c9d1537a082217ef230394e9eebb75e9a100sewardj
2116918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
21172536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD1 (single element to one lane) ----\n");
21182536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d0[0]}", d0, d0, d0, d0);
21192536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d0[1]}", d0, d0, d0, d0);
21202536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d1[0]}", d1, d1, d1, d1);
21212536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d1[1]}", d1, d1, d1, d1);
21222536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d1[2]}", d1, d1, d1, d1);
21232536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d1[3]}", d1, d1, d1, d1);
21242536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0[7]}", d0, d0, d0, d0);
21252536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d1[6]}", d1, d1, d1, d1);
21262536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0[5]}", d0, d0, d0, d0);
21272536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0[4]}", d0, d0, d0, d0);
21282536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d20[3]}", d20, d20, d20, d20);
21292536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0[2]}", d0, d0, d0, d0);
21302536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d17[1]}", d17, d17, d17, d17);
21312536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d30[0]}", d30, d30, d30, d30);
21322536c9d1537a082217ef230394e9eebb75e9a100sewardj
2133918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
21342536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD1 (single element to all lanes) ----\n");
21352536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0[]}", d0, d0, d0, d0);
21362536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d0[]}", d0, d0, d0, d0);
21372536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d0[]}", d0, d0, d0, d0);
21382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d9[]}", d9, d9, d9, d9);
21392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d17[]}", d17, d17, d17, d17);
21402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d31[]}", d31, d31, d31, d31);
21412536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.8 {d0[],d1[]}", d0, d1, d0, d1);
21422536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.16 {d0[],d1[]}", d0, d1, d0, d1);
21432536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld1.32 {d5[],d6[]}", d5, d6, d5, d6);
21442536c9d1537a082217ef230394e9eebb75e9a100sewardj
2145918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
21462536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD2 (multiple 2-elements) ----\n");
21472536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d30-d31}", d30, d31, d30, d31);
21482536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d0-d1}", d0, d1, d0, d1);
21492536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0-d1}", d0, d1, d0, d1);
21502536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d10,d12}", d10, d12, d10, d12);
21512536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d20,d22}", d20, d22, d20, d22);
21522536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0,d2}", d0, d2, d0, d2);
21532536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0-d3}", d0, d1, d2, d3);
21542536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d20-d23}", d20, d21, d22, d23);
21552536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0-d3}", d0, d1, d2, d3);
21562536c9d1537a082217ef230394e9eebb75e9a100sewardj
2157918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
21582536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD2 (single 2-element structure to one lane) ----\n");
21592536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
21602536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
21612536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
21622536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
21632536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
21642536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
21652536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
21662536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
21672536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
21682536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
21692536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
21702536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
21712536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
21722536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
21732536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
21742536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
21752536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
21762536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
21772536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
21782536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
21792536c9d1537a082217ef230394e9eebb75e9a100sewardj
2180918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
21812536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD2 (2-elements to all lanes) ----\n");
21822536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0[],d1[]}", d0, d1, d0, d1);
21832536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d0[],d1[]}", d0, d1, d0, d1);
21842536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d0[],d1[]}", d0, d1, d0, d1);
21852536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d9[],d11[]}", d9, d11, d9, d11);
21862536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d17[],d18[]}", d17, d18, d17, d18);
21872536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d30[],d31[]}", d30, d31, d30, d31);
21882536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.8 {d0[],d2[]}", d0, d2, d0, d2);
21892536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.16 {d0[],d2[]}", d0, d2, d0, d2);
21902536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld2.32 {d5[],d7[]}", d5, d7, d5, d7);
21912536c9d1537a082217ef230394e9eebb75e9a100sewardj
2192918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
21932536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD3 (multiple 3-elements) ----\n");
21942536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d20-d22}", d20, d21, d22, d20);
21952536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d0-d2}", d0, d1, d2, d0);
21962536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0-d2}", d0, d1, d2, d0);
21972536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0,d2,d4}", d0, d2, d4, d0);
21982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d20,d22,d24}", d20, d22, d24, d20);
21992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0,d2,d4}", d0, d2, d4, d0);
22002536c9d1537a082217ef230394e9eebb75e9a100sewardj
2201918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
22022536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD3 (single 3-element structure to one lane) ----\n");
22032536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
22042536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
22052536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
22062536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
22072536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
22082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
22092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
22102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
22112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
22122536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
22132536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
22142536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
22152536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
22162536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
22172536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
22182536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
22192536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
22202536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
22212536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
22222536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
22232536c9d1537a082217ef230394e9eebb75e9a100sewardj
2224918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
22252536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD3 (3-elements to all lanes) ----\n");
22262536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0[],d1[],d2[]}", d0, d1, d2, d1);
22272536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d0[],d1[],d2[]}", d0, d1, d2, d1);
22282536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d0[],d1[],d2[]}", d0, d1, d2, d1);
22292536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d9[],d11[],d13[]}", d9, d11, d13, d11);
22302536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d17[],d18[],d19[]}", d17, d18, d19, d18);
22312536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d29[],d30[],d31[]}", d29, d30, d30, d31);
22322536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.8 {d0[],d2[],d4[]}", d0, d2, d4, d2);
22332536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.16 {d0[],d2[],d4[]}", d0, d2, d4, d2);
22342536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld3.32 {d5[],d7[],d9[]}", d5, d7, d9, d7);
22352536c9d1537a082217ef230394e9eebb75e9a100sewardj
2236918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
22372536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD4 (multiple 3-elements) ----\n");
22382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0-d3}", d0, d1, d2, d3);
22392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d20-d23}", d20, d21, d22, d23);
22402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d0-d3}", d0, d1, d2, d3);
22412536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
22422536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
22432536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
22442536c9d1537a082217ef230394e9eebb75e9a100sewardj
2245918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
22462536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD4 (single 4-element structure to one lane) ----\n");
22472536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
22482536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
22492536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
22502536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
22512536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
22522536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
22532536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
22542536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
22552536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
22562536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
22572536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
22582536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
22592536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
22602536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
22612536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
22622536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
22632536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
22642536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
22652536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
22662536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
22672536c9d1537a082217ef230394e9eebb75e9a100sewardj
2268918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
22692536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD4 (4-elements to all lanes) ----\n");
22702536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
22712536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
22722536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3);
22732536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d9[],d11[],d13[],d15[]}", d9, d11, d13, d15);
22742536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d17[],d18[],d19[],d20[]}", d17, d18, d19, d20);
22752536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d28[],d29[],d30[],d31[]}", d28, d29, d30, d31);
22762536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.8 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
22772536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.16 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6);
22782536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_WB("vld4.32 {d5[],d7[],d9[],d11[]}", d5, d7, d9, d11);
22792536c9d1537a082217ef230394e9eebb75e9a100sewardj
2280918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
22812536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST1 (multiple single elements) ----\n");
22822536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0}", d0, d0, d0, d0);
22832536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d0}", d0, d0, d0, d0);
22842536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d0}", d0, d0, d0, d0);
22852536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.64 {d0}", d0, d0, d0, d0);
22862536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d9}", d9, d9, d9, d9);
22872536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d17}", d17, d17, d17, d17);
22882536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d31}", d31, d31, d31, d31);
22892536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.64 {d14}", d14, d14, d14, d14);
22902536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0-d1}", d0, d1, d0, d1);
22912536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d0-d1}", d0, d1, d0, d1);
22922536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d5-d6}", d5, d6, d5, d6);
22932536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.64 {d30-d31}", d30, d31, d30, d31);
22942536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0-d2}", d0, d1, d2, d0);
22952536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d0-d2}", d0, d1, d2, d0);
22962536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d0-d2}", d0, d1, d2, d0);
22972536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.64 {d0-d2}", d0, d1, d2, d0);
22982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0-d3}", d0, d1, d2, d3);
22992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d0-d3}", d0, d1, d2, d3);
23002536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d0-d3}", d0, d1, d2, d3);
23012536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.64 {d0-d3}", d0, d1, d2, d3);
23022536c9d1537a082217ef230394e9eebb75e9a100sewardj
2303918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23042536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST1 (single element from one lane) ----\n");
23052536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d0[0]}", d0, d0, d0, d0);
23062536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.32 {d0[1]}", d0, d0, d0, d0);
23072536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d1[0]}", d1, d1, d1, d1);
23082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d1[1]}", d1, d1, d1, d1);
23092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d1[2]}", d1, d1, d1, d1);
23102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.16 {d1[3]}", d1, d1, d1, d1);
23112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0[7]}", d0, d0, d0, d0);
23122536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d1[6]}", d1, d1, d1, d1);
23132536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0[5]}", d0, d0, d0, d0);
23142536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0[4]}", d0, d0, d0, d0);
23152536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d20[3]}", d20, d20, d20, d20);
23162536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d0[2]}", d0, d0, d0, d0);
23172536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d17[1]}", d17, d17, d17, d17);
23182536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst1.8 {d30[0]}", d30, d30, d30, d30);
23192536c9d1537a082217ef230394e9eebb75e9a100sewardj
2320918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23212536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST2 (multiple 2-elements) ----\n");
23222536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d30-d31}", d30, d31, d30, d31);
23232536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d0-d1}", d0, d1, d0, d1);
23242536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0-d1}", d0, d1, d0, d1);
23252536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d10,d12}", d10, d12, d10, d12);
23262536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d20,d22}", d20, d22, d20, d22);
23272536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0,d2}", d0, d2, d0, d2);
23282536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d0-d3}", d0, d1, d2, d3);
23292536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d20-d23}", d20, d21, d22, d23);
23302536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0-d3}", d0, d1, d2, d3);
23312536c9d1537a082217ef230394e9eebb75e9a100sewardj
2332918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23332536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST2 (single 2-element structure from one lane) ----\n");
23342536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0[0],d1[0]}", d0, d1, d0, d1);
23352536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0[1],d1[1]}", d0, d1, d0, d1);
23362536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0[0],d2[0]}", d0, d2, d0, d2);
23372536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.32 {d0[1],d2[1]}", d0, d2, d0, d2);
23382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[0],d2[0]}", d1, d2, d1, d2);
23392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[1],d2[1]}", d1, d2, d1, d2);
23402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[2],d2[2]}", d1, d2, d1, d2);
23412536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[3],d2[3]}", d1, d2, d1, d2);
23422536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[0],d3[0]}", d1, d3, d1, d3);
23432536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[1],d3[1]}", d1, d3, d1, d3);
23442536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[2],d3[2]}", d1, d3, d1, d3);
23452536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.16 {d1[3],d3[3]}", d1, d3, d1, d3);
23462536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d0[7],d1[7]}", d0, d1, d0, d1);
23472536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d1[6],d2[6]}", d1, d2, d1, d2);
23482536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d0[5],d1[5]}", d0, d1, d0, d1);
23492536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d0[4],d1[4]}", d0, d1, d0, d1);
23502536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d20[3],d21[3]}", d20, d21, d20, d21);
23512536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d0[2],d1[2]}", d0, d1, d0, d1);
23522536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d17[1],d18[1]}", d17, d18, d17, d18);
23532536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst2.8 {d30[0],d31[0]}", d30, d31, d30, d31);
23542536c9d1537a082217ef230394e9eebb75e9a100sewardj
2355918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23562536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST3 (multiple 3-elements) ----\n");
23572536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d20-d22}", d20, d21, d22, d20);
23582536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d0-d2}", d0, d1, d2, d0);
23592536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.32 {d0-d2}", d0, d1, d2, d0);
23602536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d0,d2,d4}", d0, d2, d4, d0);
23612536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d20,d22,d24}", d20, d22, d24, d20);
23622536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.32 {d0,d2,d4}", d0, d2, d4, d0);
23632536c9d1537a082217ef230394e9eebb75e9a100sewardj
2364918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23652536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST3 (single 3-element structure from one lane) ----\n");
23662536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1);
23672536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1);
23682536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2);
23692536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2);
23702536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2);
23712536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2);
23722536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2);
23732536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2);
23742536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5);
23752536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5);
23762536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5);
23772536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5);
23782536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1);
23792536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2);
23802536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1);
23812536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1);
23822536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21);
23832536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1);
23842536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18);
23852536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31);
23862536c9d1537a082217ef230394e9eebb75e9a100sewardj
2387918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23882536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST4 (multiple 4-elements) ----\n");
23892536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d0-d3}", d0, d1, d2, d3);
23902536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d20-d23}", d20, d21, d22, d23);
23912536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.32 {d0-d3}", d0, d1, d2, d3);
23922536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d0,d2,d4,d6}", d0, d2, d4, d6);
23932536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1,d3,d5,d7}", d1, d3, d5, d7);
23942536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.32 {d20,d22,d24,d26}", d20, d22, d24, d26);
23952536c9d1537a082217ef230394e9eebb75e9a100sewardj
2396918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
23972536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST4 (single 4-element structure from one lane) ----\n");
23982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3);
23992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4);
24002536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6);
24012536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6);
24022536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4);
24032536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4);
24042536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4);
24052536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4);
24062536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7);
24072536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7);
24082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7);
24092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7);
24102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3);
24112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4);
24122536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3);
24132536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3);
24142536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23);
24152536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3);
24162536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20);
24172536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_WB("vst4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31);
24182536c9d1537a082217ef230394e9eebb75e9a100sewardj
2419918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
24202536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD1 (multiple single elements) ----\n");
24212536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0}", d0, d0, d0, d0, r5, 13);
24222536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d0}", d0, d0, d0, d0, r8, 13);
24232536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d0}", d0, d0, d0, d0, r5, 42);
24242536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.64 {d0}", d0, d0, d0, d0, r5, 0);
24252536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d9}", d9, d9, d9, d9, r5, 13);
24262536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d17}", d17, d17, d17, d17, r6, 13);
24272536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d31}", d31, d31, d31, d31, r5, -3);
24282536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.64 {d14}", d14, d14, d14, d14, r5, 13);
24292536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0-d1}", d0, d1, d0, d1, r5, 13);
24302536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d0-d1}", d0, d1, d0, d1, r5, 13);
24312536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d5-d6}", d5, d6, d5, d6, r5, 13);
24322536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.64 {d30-d31}", d30, d31, d30, d31, r5, 13);
24332536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0-d2}", d0, d1, d2, d0, r5, 13);
24342536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d0-d2}", d0, d1, d2, d0, r5, 13);
24352536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d0-d2}", d0, d1, d2, d0, r5, 13);
24362536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.64 {d0-d2}", d0, d1, d2, d0, r5, 13);
24372536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
24382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d0-d3}", d0, d1, d2, d3, r5, 13);
24392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
24402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.64 {d0-d3}", d0, d1, d2, d3, r5, 13);
24412536c9d1537a082217ef230394e9eebb75e9a100sewardj
2442918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
24432536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD1 (single element to one lane) ----\n");
24442536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d0[0]}", d0, d0, d0, d0, r5, 13);
24452536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d0[1]}", d0, d0, d0, d0, r9, 42);
24462536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d1[0]}", d1, d1, d1, d1, r5, 13);
24472536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d1[1]}", d1, d1, d1, d1, r1, 0);
24482536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d1[2]}", d1, d1, d1, d1, r5, -3);
24492536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d1[3]}", d1, d1, d1, d1, r5, 13);
24502536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0[7]}", d0, d0, d0, d0, r5, 13);
24512536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d1[6]}", d1, d1, d1, d1, r5, 13);
24522536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0[5]}", d0, d0, d0, d0, r5, 13);
24532536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0[4]}", d0, d0, d0, d0, r5, 13);
24542536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d20[3]}", d20, d20, d20, d20, r5, 13);
24552536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0[2]}", d0, d0, d0, d0, r5, 13);
24562536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d17[1]}", d17, d17, d17, d17, r5, 13);
24572536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d30[0]}", d30, d30, d30, d30, r5, 13);
24582536c9d1537a082217ef230394e9eebb75e9a100sewardj
2459918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
24602536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD1 (single element to all lanes) ----\n");
24612536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0[]}", d0, d0, d0, d0, r5, 13);
24622536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d0[]}", d0, d0, d0, d0, r9, 42);
24632536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d0[]}", d0, d0, d0, d0, r1, 0);
24642536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d9[]}", d9, d9, d9, d9, r5, -3);
24652536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d17[]}", d17, d17, d17, d17, r5, 13);
24662536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d31[]}", d31, d31, d31, d31, r5, 13);
24672536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.8 {d0[],d1[]}", d0, d1, d0, d1, r5, 13);
24682536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.16 {d0[],d1[]}", d0, d1, d0, d1, r5, 13);
24692536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld1.32 {d5[],d6[]}", d5, d6, d5, d6, r5, 13);
24702536c9d1537a082217ef230394e9eebb75e9a100sewardj
2471918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
24722536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD2 (multiple 2-elements) ----\n");
24732536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d30-d31}", d30, d31, d30, d31, r5, 13);
24742536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d0-d1}", d0, d1, d0, d1, r9, 42);
24752536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0-d1}", d0, d1, d0, d1, r1, 0);
24762536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d10,d12}", d10, d12, d10, d12, r5, -3);
24772536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d20,d22}", d20, d22, d20, d22, r5, 13);
24782536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0,d2}", d0, d2, d0, d2, r5, 13);
24792536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
24802536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d20-d23}", d20, d21, d22, d23, r5, 13);
24812536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
24822536c9d1537a082217ef230394e9eebb75e9a100sewardj
2483918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
24842536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD2 (single 2-element structure to one lane) ----\n");
24852536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0[0],d1[0]}", d0, d1, d0, d1, r5, 13);
24862536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0[1],d1[1]}", d0, d1, d0, d1, r9, 42);
24872536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0[0],d2[0]}", d0, d2, d0, d2, r1, 0);
24882536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0[1],d2[1]}", d0, d2, d0, d2, r5, -3);
24892536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[0],d2[0]}", d1, d2, d1, d2, r5, 13);
24902536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[1],d2[1]}", d1, d2, d1, d2, r5, 13);
24912536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[2],d2[2]}", d1, d2, d1, d2, r5, 13);
24922536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[3],d2[3]}", d1, d2, d1, d2, r5, 13);
24932536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[0],d3[0]}", d1, d3, d1, d3, r5, 13);
24942536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[1],d3[1]}", d1, d3, d1, d3, r5, 13);
24952536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[2],d3[2]}", d1, d3, d1, d3, r5, 13);
24962536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d1[3],d3[3]}", d1, d3, d1, d3, r5, 13);
24972536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0[7],d1[7]}", d0, d1, d0, d1, r5, 13);
24982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d1[6],d2[6]}", d1, d2, d1, d2, r5, 13);
24992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0[5],d1[5]}", d0, d1, d0, d1, r5, 13);
25002536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0[4],d1[4]}", d0, d1, d0, d1, r5, 13);
25012536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d20[3],d21[3]}", d20, d21, d20, d21, r5, 13);
25022536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0[2],d1[2]}", d0, d1, d0, d1, r5, 13);
25032536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d17[1],d18[1]}", d17, d18, d17, d18, r5, 13);
25042536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d30[0],d31[0]}", d30, d31, d30, d31, r5, 13);
25052536c9d1537a082217ef230394e9eebb75e9a100sewardj
2506918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25072536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD2 (2-elements to all lanes) ----\n");
25082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0[],d1[]}", d0, d1, d0, d1, r5, 13);
25092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d0[],d1[]}", d0, d1, d0, d1, r9, 42);
25102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d0[],d1[]}", d0, d1, d0, d1, r1, 0);
25112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d9[],d11[]}", d9, d11, d9, d11, r5, -3);
25122536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d17[],d18[]}", d17, d18, d17, d18, r5, 13);
25132536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d30[],d31[]}", d30, d31, d30, d31, r5, 13);
25142536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.8 {d0[],d2[]}", d0, d2, d0, d2, r5, 13);
25152536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.16 {d0[],d2[]}", d0, d2, d0, d2, r5, 13);
25162536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld2.32 {d5[],d7[]}", d5, d7, d5, d7, r5, 13);
25172536c9d1537a082217ef230394e9eebb75e9a100sewardj
2518918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25192536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD3 (multiple 3-elements) ----\n");
25202536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d20-d22}", d20, d21, d22, d20, r5, 13);
25212536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d0-d2}", d0, d1, d2, d0, r9, 42);
25222536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0-d2}", d0, d1, d2, d0, r1, 0);
25232536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0,d2,d4}", d0, d2, d4, d0, r5, -3);
25242536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d20,d22,d24}", d20, d22, d24, d20, r5, 13);
25252536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0,d2,d4}", d0, d2, d4, d0, r5, 13);
25262536c9d1537a082217ef230394e9eebb75e9a100sewardj
2527918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25282536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD3 (single 3-element structure to one lane) ----\n");
25292536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1, r5, 13);
25302536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1, r9, 42);
25312536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2, r1, 0);
25322536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2, r5, -3);
25332536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2, r5, 13);
25342536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2, r5, 13);
25352536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2, r5, 13);
25362536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2, r5, 13);
25372536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5, r5, 13);
25382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5, r5, 13);
25392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5, r5, 13);
25402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5, r5, 13);
25412536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1, r5, 13);
25422536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2, r5, 13);
25432536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1, r5, 13);
25442536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1, r5, 13);
25452536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21, r5, 13);
25462536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1, r5, 13);
25472536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18, r5, 13);
25482536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31, r5, 13);
25492536c9d1537a082217ef230394e9eebb75e9a100sewardj
2550918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25512536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD3 (3-elements to all lanes) ----\n");
25522536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0[],d1[],d2[]}", d0, d1, d2, d1, r5, 13);
25532536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d0[],d1[],d2[]}", d0, d1, d2, d1, r9, 42);
25542536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d0[],d1[],d2[]}", d0, d1, d2, d1, r1, 0);
25552536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d9[],d11[],d13[]}", d9, d11, d13, d11, r5, -3);
25562536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d17[],d18[],d19[]}", d17, d18, d19, d18, r5, 13);
25572536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d29[],d30[],d31[]}", d29, d30, d30, d31, r5, 13);
25582536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.8 {d0[],d2[],d4[]}", d0, d2, d4, d2, r5, 13);
25592536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.16 {d0[],d2[],d4[]}", d0, d2, d4, d2, r5, 13);
25602536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld3.32 {d5[],d7[],d9[]}", d5, d7, d9, d7, r5, 13);
25612536c9d1537a082217ef230394e9eebb75e9a100sewardj
2562918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25632536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD4 (multiple 3-elements) ----\n");
25642536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
25652536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d20-d23}", d20, d21, d22, d23, r9, 0);
25662536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d0-d3}", d0, d1, d2, d3, r0, 42);
25672536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0,d2,d4,d6}", d0, d2, d4, d6, r5, -3);
25682536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1,d3,d5,d7}", d1, d3, d5, d7, r5, 13);
25692536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d20,d22,d24,d26}", d20, d22, d24, d26, r5, 13);
25702536c9d1537a082217ef230394e9eebb75e9a100sewardj
2571918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25722536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD4 (single 4-element structure to one lane) ----\n");
25732536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3, r5, 13);
25742536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4, r9, 42);
25752536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6, r1, 0);
25762536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6, r5, -3);
25772536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4, r5, 13);
25782536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4, r5, 13);
25792536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4, r5, 13);
25802536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4, r5, 13);
25812536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7, r5, 13);
25822536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7, r5, 13);
25832536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7, r5, 13);
25842536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7, r5, 13);
25852536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3, r5, 13);
25862536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4, r5, 13);
25872536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3, r5, 13);
25882536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3, r5, 13);
25892536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23, r5, 13);
25902536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3, r5, 13);
25912536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20, r5, 13);
25922536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31, r5, 13);
25932536c9d1537a082217ef230394e9eebb75e9a100sewardj
2594918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
25952536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VLD4 (4-elements to all lanes) ----\n");
25962536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3, r5, 13);
25972536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3, r9, 42);
25982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d0[],d1[],d2[],d3[]}", d0, d1, d2, d3, r1, 0);
25992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d9[],d11[],d13[],d15[]}", d9, d11, d13, d15, r5, -3);
26002536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d17[],d18[],d19[],d20[]}", d17, d18, d19, d20, r5, 13);
26012536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d28[],d29[],d30[],d31[]}", d28, d29, d30, d31, r5, 13);
26022536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.8 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6, r5, 13);
26032536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.16 {d0[],d2[],d4[],d6[]}", d0, d2, d4, d6, r5, 13);
26042536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VLDn_RI("vld4.32 {d5[],d7[],d9[],d11[]}", d5, d7, d9, d11, r5, 13);
26052536c9d1537a082217ef230394e9eebb75e9a100sewardj
2606918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
26072536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST1 (multiple single elements) ----\n");
26082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0}", d0, d0, d0, d0, r5, 13);
26092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d0}", d0, d0, d0, d0, r9, 42);
26102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d0}", d0, d0, d0, d0, r5, 0);
26112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.64 {d0}", d0, d0, d0, d0, r5, -3);
26122536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d9}", d9, d9, d9, d9, r5, 13);
26132536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d17}", d17, d17, d17, d17, r5, 13);
26142536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d31}", d31, d31, d31, d31, r5, 13);
26152536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.64 {d14}", d14, d14, d14, d14, r5, 13);
26162536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0-d1}", d0, d1, d0, d1, r5, 13);
26172536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d0-d1}", d0, d1, d0, d1, r5, 13);
26182536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d5-d6}", d5, d6, d5, d6, r5, 13);
26192536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.64 {d30-d31}", d30, d31, d30, d31, r5, 13);
26202536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0-d2}", d0, d1, d2, d0, r5, 13);
26212536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d0-d2}", d0, d1, d2, d0, r5, 13);
26222536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d0-d2}", d0, d1, d2, d0, r5, 13);
26232536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.64 {d0-d2}", d0, d1, d2, d0, r5, 13);
26242536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
26252536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d0-d3}", d0, d1, d2, d3, r5, 13);
26262536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
26272536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.64 {d0-d3}", d0, d1, d2, d3, r5, 13);
26282536c9d1537a082217ef230394e9eebb75e9a100sewardj
2629918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
26302536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST1 (single element from one lane) ----\n");
26312536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d0[0]}", d0, d0, d0, d0, r5, 13);
26322536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.32 {d0[1]}", d0, d0, d0, d0, r9, 42);
26332536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d1[0]}", d1, d1, d1, d1, r1, 0);
26342536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d1[1]}", d1, d1, d1, d1, r5, -3);
26352536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d1[2]}", d1, d1, d1, d1, r5, 13);
26362536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.16 {d1[3]}", d1, d1, d1, d1, r5, 13);
26372536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0[7]}", d0, d0, d0, d0, r5, 13);
26382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d1[6]}", d1, d1, d1, d1, r5, 13);
26392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0[5]}", d0, d0, d0, d0, r5, 13);
26402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0[4]}", d0, d0, d0, d0, r5, 13);
26412536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d20[3]}", d20, d20, d20, d20, r5, 13);
26422536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d0[2]}", d0, d0, d0, d0, r5, 13);
26432536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d17[1]}", d17, d17, d17, d17, r5, 13);
26442536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst1.8 {d30[0]}", d30, d30, d30, d30, r5, 13);
26452536c9d1537a082217ef230394e9eebb75e9a100sewardj
2646918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
26472536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST2 (multiple 2-elements) ----\n");
26482536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d30-d31}", d30, d31, d30, d31, r5, 13);
26492536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d0-d1}", d0, d1, d0, d1, r9, 42);
26502536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0-d1}", d0, d1, d0, d1, r1, 0);
26512536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d10,d12}", d10, d12, d10, d12, r5, -3);
26522536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d20,d22}", d20, d22, d20, d22, r5, 13);
26532536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0,d2}", d0, d2, d0, d2, r5, 13);
26542536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
26552536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d20-d23}", d20, d21, d22, d23, r5, 13);
26562536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0-d3}", d0, d1, d2, d3, r5, 13);
26572536c9d1537a082217ef230394e9eebb75e9a100sewardj
2658918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
26592536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST2 (single 2-element structure from one lane) ----\n");
26602536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0[0],d1[0]}", d0, d1, d0, d1, r5, 13);
26612536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0[1],d1[1]}", d0, d1, d0, d1, r9, 42);
26622536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0[0],d2[0]}", d0, d2, d0, d2, r1, 0);
26632536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.32 {d0[1],d2[1]}", d0, d2, d0, d2, r5, -3);
26642536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[0],d2[0]}", d1, d2, d1, d2, r5, 13);
26652536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[1],d2[1]}", d1, d2, d1, d2, r5, 13);
26662536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[2],d2[2]}", d1, d2, d1, d2, r5, 13);
26672536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[3],d2[3]}", d1, d2, d1, d2, r5, 13);
26682536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[0],d3[0]}", d1, d3, d1, d3, r5, 13);
26692536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[1],d3[1]}", d1, d3, d1, d3, r5, 13);
26702536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[2],d3[2]}", d1, d3, d1, d3, r5, 13);
26712536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.16 {d1[3],d3[3]}", d1, d3, d1, d3, r5, 13);
26722536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d0[7],d1[7]}", d0, d1, d0, d1, r5, 13);
26732536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d1[6],d2[6]}", d1, d2, d1, d2, r5, 13);
26742536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d0[5],d1[5]}", d0, d1, d0, d1, r5, 13);
26752536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d0[4],d1[4]}", d0, d1, d0, d1, r5, 13);
26762536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d20[3],d21[3]}", d20, d21, d20, d21, r5, 13);
26772536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d0[2],d1[2]}", d0, d1, d0, d1, r5, 13);
26782536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d17[1],d18[1]}", d17, d18, d17, d18, r5, 13);
26792536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst2.8 {d30[0],d31[0]}", d30, d31, d30, d31, r5, 13);
26802536c9d1537a082217ef230394e9eebb75e9a100sewardj
2681918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
26822536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST3 (multiple 3-elements) ----\n");
26832536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d20-d22}", d20, d21, d22, d20, r5, 13);
26842536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d0-d2}", d0, d1, d2, d0, r9, 42);
26852536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.32 {d0-d2}", d0, d1, d2, d0, r1, 0);
26862536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d0,d2,d4}", d0, d2, d4, d0, r5, -3);
26872536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d20,d22,d24}", d20, d22, d24, d20, r5, 13);
26882536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.32 {d0,d2,d4}", d0, d2, d4, d0, r5, 13);
26892536c9d1537a082217ef230394e9eebb75e9a100sewardj
2690918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
26912536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST3 (single 3-element structure from one lane) ----\n");
26922536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.32 {d0[0],d1[0],d2[0]}", d0, d1, d2, d1, r5, 13);
26932536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.32 {d0[1],d1[1],d2[1]}", d0, d1, d2, d1, r9, 42);
26942536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.32 {d0[0],d2[0],d4[0]}", d0, d2, d4, d2, r1, 0);
26952536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.32 {d0[1],d2[1],d4[1]}", d0, d2, d4, d2, r5, -3);
26962536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[0],d2[0],d3[0]}", d1, d2, d3, d2, r5, 13);
26972536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[1],d2[1],d3[1]}", d1, d2, d3, d2, r5, 13);
26982536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[2],d2[2],d3[2]}", d1, d2, d3, d2, r5, 13);
26992536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[3],d2[3],d3[3]}", d1, d2, d3, d2, r5, 13);
27002536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[0],d3[0],d5[0]}", d1, d3, d3, d5, r5, 13);
27012536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[1],d3[1],d5[1]}", d1, d3, d3, d5, r5, 13);
27022536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[2],d3[2],d5[2]}", d1, d3, d3, d5, r5, 13);
27032536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.16 {d1[3],d3[3],d5[3]}", d1, d3, d3, d5, r5, 13);
27042536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d0[7],d1[7],d2[7]}", d0, d1, d2, d1, r5, 13);
27052536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d1[6],d2[6],d3[6]}", d1, d2, d3, d2, r5, 13);
27062536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d0[5],d1[5],d2[5]}", d0, d1, d2, d1, r5, 13);
27072536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d0[4],d1[4],d2[4]}", d0, d1, d2, d1, r5, 13);
27082536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d20[3],d21[3],d22[3]}", d20, d21, d22, d21, r5, 13);
27092536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d0[2],d1[2],d2[2]}", d0, d1, d2, d1, r5, 13);
27102536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d17[1],d18[1],d19[1]}", d17, d18, d19, d18, r5, 13);
27112536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst3.8 {d29[0],d30[0],d31[0]}", d30, d31, d29, d31, r5, 13);
27122536c9d1537a082217ef230394e9eebb75e9a100sewardj
2713918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27142536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST4 (multiple 4-elements) ----\n");
27152536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d0-d3}", d0, d1, d2, d3, r5, 13);
27162536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d20-d23}", d20, d21, d22, d23, r9, 42);
27172536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.32 {d0-d3}", d0, d1, d2, d3, r1, 0);
27182536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d0,d2,d4,d6}", d0, d2, d4, d6, r5, -3);
27192536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1,d3,d5,d7}", d1, d3, d5, d7, r5, 13);
27202536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.32 {d20,d22,d24,d26}", d20, d22, d24, d26, r5, 13);
27212536c9d1537a082217ef230394e9eebb75e9a100sewardj
2722918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27232536c9d1537a082217ef230394e9eebb75e9a100sewardj    printf("---- VST4 (single 4-element structure from one lane) ----\n");
27242536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.32 {d0[0],d1[0],d2[0],d3[0]}", d0, d1, d2, d3, r5, 13);
27252536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.32 {d0[1],d1[1],d2[1],d3[1]}", d0, d1, d2, d4, r9, 42);
27262536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.32 {d0[0],d2[0],d4[0],d6[0]}", d0, d2, d4, d6, r1, 0);
27272536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.32 {d0[1],d2[1],d4[1],d6[1]}", d0, d2, d4, d6, r5, -3);
27282536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[0],d2[0],d3[0],d4[0]}", d1, d2, d3, d4, r5, 13);
27292536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[1],d2[1],d3[1],d4[1]}", d1, d2, d3, d4, r5, 13);
27302536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[2],d2[2],d3[2],d4[2]}", d1, d2, d3, d4, r5, 13);
27312536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[3],d2[3],d3[3],d4[3]}", d1, d2, d3, d4, r5, 13);
27322536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[0],d3[0],d5[0],d7[0]}", d1, d3, d5, d7, r5, 13);
27332536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[1],d3[1],d5[1],d7[1]}", d1, d3, d5, d7, r5, 13);
27342536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[2],d3[2],d5[2],d7[2]}", d1, d3, d5, d7, r5, 13);
27352536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.16 {d1[3],d3[3],d5[3],d7[3]}", d1, d3, d5, d7, r5, 13);
27362536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d0[7],d1[7],d2[7],d3[7]}", d0, d1, d2, d3, r5, 13);
27372536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d1[6],d2[6],d3[6],d4[6]}", d1, d2, d3, d4, r5, 13);
27382536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d0[5],d1[5],d2[5],d3[5]}", d0, d1, d2, d3, r5, 13);
27392536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d0[4],d1[4],d2[4],d3[4]}", d0, d1, d2, d3, r5, 13);
27402536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d20[3],d21[3],d22[3],d23[3]}", d20, d21, d22, d23, r5, 13);
27412536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d0[2],d1[2],d2[2],d3[2]}", d0, d1, d2, d3, r5, 13);
27422536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d17[1],d18[1],d19[1],d20[1]}", d17, d18, d19, d20, r5, 13);
27432536c9d1537a082217ef230394e9eebb75e9a100sewardj    TESTINSN_VSTn_RI("vst4.8 {d28[0],d29[0],d30[0],d31[0]}", d28, d29, d30, d31, r5, 13);
27442536c9d1537a082217ef230394e9eebb75e9a100sewardj
2745918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27466b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMOVN ----\n");
27476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmovn.i32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
27486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmovn.i16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
27496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmovn.i64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
27506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmovn.i32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
27516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmovn.i16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
27526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmovn.i64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
27536b564a035bff6173937a9ddf0811af10236286absewardj
2754918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27556b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQMOVN ----\n");
27566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.u32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
27576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.u16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
27586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.u64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
27596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.u32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
27606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.u16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
27616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.u64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
27626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
27636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
27646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
27656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
27666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
27676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
27686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xff);
27696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s16 d7, q5", d7, d10, i8, 0xff, d11, i16, 0xff);
27706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovn.s64 d31, q0", d31, d0, i8, 0xff, d1, i8, 0xff);
27716b564a035bff6173937a9ddf0811af10236286absewardj
2772918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27736b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQMOVN ----\n");
27746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s32 d0, q0", d0, d0, i32, 0x32, d1, i32, 0x24);
27756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s16 d7, q5", d7, d10, i32, 0x32, d11, i32, 0x24);
27766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s64 d31, q0", d31, d0, i32, 0x32, d1, i32, 0x24);
27776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xf0);
27786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s16 d7, q5", d7, d10, i16, 0xdead, d11, i16, 0xbeef);
27796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s64 d31, q0", d31, d0, i32, 0xff00fe0f, d1, i8, 0x24);
27806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s32 d0, q0", d0, d0, i8, 0xff, d1, i8, 0xff);
27816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s16 d7, q5", d7, d10, i8, 0xff, d11, i16, 0xff);
27826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqmovun.s64 d31, q0", d31, d0, i8, 0xff, d1, i8, 0xff);
27836b564a035bff6173937a9ddf0811af10236286absewardj
2784918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27856b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VABS ----\n");
27866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s32 d0, d1", d0, d1, i32, 0x73);
27876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s16 d15, d4", d15, d4, i32, 0x73);
27886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s8 d8, d7", d8, d7, i32, 0x73);
27896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s32 d0, d1", d0, d1, i32, 0xfe);
27906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s16 d31, d4", d31, d4, i32, 0xef);
27916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s8 d8, d7", d8, d7, i32, 0xde);
27926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s32 d0, d1", d0, d1, i16, 0xfe0a);
27936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s16 d15, d4", d15, d4, i16, 0xef0b);
27946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.s8 d8, d7", d8, d7, i16, 0xde0c);
27956b564a035bff6173937a9ddf0811af10236286absewardj
2796918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
27976b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQABS ----\n");
27986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i32, 0x73);
27996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i32, 1 << 31);
28006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s16 d0, d1", d0, d1, i32, 1 << 31);
28016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s8 d0, d1", d0, d1, i32, 1 << 31);
28026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s16 d15, d4", d15, d4, i32, 0x73);
28036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s8 d8, d7", d8, d7, i32, 0x73);
28046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i32, 0xfe);
28056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s16 d31, d4", d31, d4, i32, 0xef);
28066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s8 d8, d7", d8, d7, i32, 0xde);
28076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s32 d0, d1", d0, d1, i16, 0xfe0a);
28086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s16 d15, d4", d15, d4, i16, 0xef0b);
28096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqabs.s8 d8, d7", d8, d7, i16, 0xde0c);
28106b564a035bff6173937a9ddf0811af10236286absewardj
2811918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
28126b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VADDHN ----\n");
28136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
28146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
28186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
28196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
28206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
28216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vaddhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28246b564a035bff6173937a9ddf0811af10236286absewardj
2825918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
28266b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRADDHN ----\n");
28276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
28286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
28326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
28336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
28346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
28356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0102);
28396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0102);
28406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0102);
28416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x02);
28426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x02);
28436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x02);
28446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vraddhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x02);
28456b564a035bff6173937a9ddf0811af10236286absewardj
2846918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
28476b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSUBHN ----\n");
28486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
28496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
28536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
28546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
28556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
28566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsubhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28596b564a035bff6173937a9ddf0811af10236286absewardj
2860918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
28616b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSUBHN ----\n");
28626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d0, q1, q1", d0, q1, i32, 0x73, q1, i32, 0x72);
28636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i16 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i64 d0, q1, q2", d0, q1, i32, 0x73, q2, i32, 0x72);
28666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i16 d0, q15, q2", d0, q15, i16, 0xef73, q2, i32, 0x0172);
28676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d31, q1, q2", d31, q1, i16, 0xef73, q2, i32, 0x0172);
28686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i64 d0, q1, q8", d0, q1, i16, 0xef73, q8, i32, 0x0172);
28696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d0, q1, q1", d0, q1, i8, 0x73, q1, i32, 0x72);
28706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i16 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i64 d0, q1, q2", d0, q1, i8, 0x73, q2, i32, 0x72);
28736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i16 d0, q15, q2", d0, q15, i16, 0xef93, q2, i32, 0x0102);
28746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d31, q1, q2", d31, q1, i16, 0xef93, q2, i32, 0x0102);
28756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i64 d0, q1, q8", d0, q1, i16, 0xef93, q8, i32, 0x0102);
28766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d0, q1, q1", d0, q1, i8, 0x93, q1, i32, 0x02);
28776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i16 d0, q1, q2", d0, q1, i8, 0x93, q2, i32, 0x02);
28786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i32 d0, q1, q2", d0, q1, i8, 0x93, q2, i32, 0x02);
28796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsubhn.i64 d0, q1, q2", d0, q1, i8, 0x93, q2, i32, 0x02);
28806b564a035bff6173937a9ddf0811af10236286absewardj
2881918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
28826b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCEQ #0 ----\n");
28836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.i32 d0, d1, #0", d0, d1, i32, 0x21);
28846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.i16 d2, d1, #0", d2, d1, i32, 0x21);
28856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.i8 d10, d11, #0", d10, d11, i32, 0x21);
28866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.i32 d0, d1, #0", d0, d1, i32, 0x0);
28876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.i16 d2, d1, #0", d2, d1, i32, 0x0);
28886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.i8 d10, d31, #0", d10, d31, i32, 0x0);
28896b564a035bff6173937a9ddf0811af10236286absewardj
2890918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
28916b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGT #0 ----\n");
28926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s32 d0, d1, #0", d0, d1, i32, 0x21);
28936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s16 d2, d1, #0", d2, d1, i32, 0x21);
28946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s8 d10, d31, #0", d10, d31, i32, 0x21);
28956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s32 d0, d1, #0", d0, d1, i32, 0x0);
28966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s16 d2, d1, #0", d2, d1, i32, 0x0);
28976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s8 d10, d11, #0", d10, d11, i32, 0x0);
28986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s32 d0, d1, #0", d0, d1, i8, 0xef);
28996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s16 d2, d1, #0", d2, d1, i8, 0xed);
29006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.s8 d10, d11, #0", d10, d11, i8, 0xae);
29016b564a035bff6173937a9ddf0811af10236286absewardj
2902918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29036b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGE #0 ----\n");
29046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i32, 0x21);
29056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i32, 0x21);
29066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s8 d10, d11, #0", d10, d11, i32, 0x21);
29076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i32, 0x0);
29086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i32, 0x0);
29096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s8 d10, d31, #0", d10, d31, i32, 0x0);
29106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i8, 0xef);
29116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i8, 0xed);
29126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s8 d10, d11, #0", d10, d11, i8, 0xae);
29136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s32 d0, d1, #0", d0, d1, i32, 0xef);
29146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s16 d2, d1, #0", d2, d1, i32, 0xed);
29156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.s8 d10, d11, #0", d10, d11, i32, 0xae);
29166b564a035bff6173937a9ddf0811af10236286absewardj
2917918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29186b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCLE #0 ----\n");
29196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s32 d0, d1, #0", d0, d1, i32, 0x21);
29206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s16 d2, d1, #0", d2, d1, i32, 0x21);
29216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s8 d10, d11, #0", d10, d11, i32, 0x21);
29226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s32 d0, d1, #0", d0, d1, i32, 0x0);
29236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s16 d2, d1, #0", d2, d1, i32, 0x0);
29246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s8 d10, d31, #0", d10, d31, i32, 0x0);
29256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s32 d0, d1, #0", d0, d1, i8, 0xef);
29266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s16 d2, d1, #0", d2, d1, i8, 0xed);
29276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.s8 d10, d11, #0", d10, d11, i8, 0xae);
29286b564a035bff6173937a9ddf0811af10236286absewardj
2929918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29306b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCLT #0 ----\n");
29316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i32, 0x21);
29326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i32, 0x21);
29336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s8 d10, d11, #0", d10, d11, i32, 0x21);
29346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i32, 0x0);
29356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i32, 0x0);
29366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s8 d10, d11, #0", d10, d11, i32, 0x0);
29376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i8, 0xef);
29386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i8, 0xed);
29396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s8 d10, d31, #0", d10, d31, i8, 0xae);
29406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s32 d0, d1, #0", d0, d1, i32, 0xef);
29416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s16 d2, d1, #0", d2, d1, i32, 0xed);
29426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.s8 d10, d11, #0", d10, d11, i32, 0xae);
29436b564a035bff6173937a9ddf0811af10236286absewardj
2944918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29456b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCNT ----\n");
29466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcnt.8 d0, d1", d0, d1, i32, 0xac3d25eb);
29476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcnt.8 d11, d14", d11, d14, i32, 0xac3d25eb);
29486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcnt.8 d6, d2", d6, d2, i32, 0xad0eb);
29496b564a035bff6173937a9ddf0811af10236286absewardj
2950918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29516b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCLS ----\n");
29526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s8 d0, d1", d0, d1, i32, 0x21);
29536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s8 d30, d31", d30, d31, i8, 0x82);
29546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s16 d0, d1", d0, d1, i32, 0x21);
29556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s16 d31, d30", d31, d30, i8, 0x82);
29566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s32 d6, d1", d6, d1, i32, 0x21);
29576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s32 d30, d5", d30, d5, i8, 0x82);
29586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s8 d2, d4", d2, d4, i8, 0xff);
29596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s16 d2, d4", d2, d4, i8, 0xff);
29606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s32 d2, d4", d2, d4, i8, 0xff);
29616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s8 d2, d4", d2, d4, i16, 0xffef);
29626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s16 d2, d4", d2, d4, i16, 0xffef);
29636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s32 d2, d4", d2, d4, i16, 0xffef);
29646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s8 d2, d4", d2, d4, i8, 0x00);
29656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s16 d2, d4", d2, d4, i8, 0x00);
29666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s32 d2, d4", d2, d4, i8, 0x00);
29676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s8 d2, d4", d2, d4, i16, 0x00ef);
29686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s16 d2, d4", d2, d4, i16, 0x00ef);
29696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcls.s32 d2, d4", d2, d4, i16, 0x00ef);
29706b564a035bff6173937a9ddf0811af10236286absewardj
2971918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29726b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCLZ ----\n");
29736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i8 d0, d1", d0, d1, i32, 0x21);
29746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i8 d30, d31", d30, d31, i8, 0x82);
29756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i16 d0, d1", d0, d1, i32, 0x21);
29766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i16 d31, d30", d31, d30, i8, 0x82);
29776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i32 d6, d1", d6, d1, i32, 0x21);
29786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i32 d30, d5", d30, d5, i8, 0x82);
29796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i8 d2, d4", d2, d4, i8, 0xff);
29806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i16 d2, d4", d2, d4, i8, 0xff);
29816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i32 d2, d4", d2, d4, i8, 0xff);
29826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i8 d2, d4", d2, d4, i16, 0xffef);
29836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i16 d2, d4", d2, d4, i16, 0xffef);
29846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i32 d2, d4", d2, d4, i16, 0xffef);
29856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i8 d2, d4", d2, d4, i8, 0x00);
29866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i16 d2, d4", d2, d4, i8, 0x00);
29876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i32 d2, d4", d2, d4, i8, 0x00);
29886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i8 d2, d4", d2, d4, i16, 0x00ef);
29896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i16 d2, d4", d2, d4, i16, 0x00ef);
29906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclz.i32 d2, d4", d2, d4, i16, 0x00ef);
29916b564a035bff6173937a9ddf0811af10236286absewardj
2992918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
29936b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSLI ----\n");
29946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.16 d0, d1, #1", d0, d1, i32, 7);
29956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.16 d3, d4, #2", d3, d4, i32, -0x7c);
29966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.32 d2, d5, #31", d2, d5, i32, -1);
29976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.8 d6, d7, #7", d6, d7, i32, 0xffff);
29986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.16 d8, d9, #12", d8, d9, i32, -10);
29996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.32 d10, d11, #5", d10, d11, i32, 10234);
30006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.8 d12, d13, #1", d12, d13, i32, -1);
30016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.16 d14, d15, #11", d14, d15, i32, -1);
30026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.32 d10, d11, #9", d10, d11, i32, 1000);
30036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.8 d7, d13, #7", d7, d13, i32, -1);
30046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.16 d8, d1, #1", d8, d1, i32, 0xabcf);
30056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.32 d12, d3, #15", d12, d3, i32, -0x1b0);
30066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.64 d0, d1, #42", d0, d1, i32, -1);
30076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.64 d6, d7, #12", d6, d7, i32, 0xfac);
30086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.64 d8, d4, #9", d8, d4, i32, 13560);
30096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vsli.64 d9, d12, #11", d9, d12, i32, 98710);
30106b564a035bff6173937a9ddf0811af10236286absewardj
3011918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30126b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPADD ----\n");
30136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
30146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
30156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i16 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
30166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i8 d0, d1, d2", d0, d1, i32, 140, d2, i32, 120);
30176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
30186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
30196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
30206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.i32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
30216b564a035bff6173937a9ddf0811af10236286absewardj
3022918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30236b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPADDL ----\n");
30246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u32 d0, d1", d0, d1, i32, 24);
30256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u32 d0, d1", d0, d1, i32, 140);
30266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u16 d0, d1", d0, d1, i32, 140);
30276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u8 d0, d1", d0, d1, i32, 140);
30286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u8 d0, d1", d0, d1, i32, (1 << 31) + 1);
30296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u16 d0, d1", d0, d1, i32, (1 << 31) + 1);
30306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u32 d0, d1", d0, d1, i32, (1 << 31) + 1);
30316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.u32 d10, d11", d10, d11, i32, 24);
30326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s32 d0, d1", d0, d1, i32, 24);
30336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s32 d0, d1", d0, d1, i32, 140);
30346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s16 d0, d1", d0, d1, i32, 140);
30356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s8 d0, d1", d0, d1, i32, 140);
30366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s8 d0, d1", d0, d1, i32, (1 << 31) + 1);
30376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s16 d0, d1", d0, d1, i32, (1 << 31) + 1);
30386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s32 d0, d1", d0, d1, i32, (1 << 31) + 1);
30396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpaddl.s32 d10, d11", d10, d11, i32, 24);
30406b564a035bff6173937a9ddf0811af10236286absewardj
3041918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30426b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPADAL ----\n");
30436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u32 d0, d1", d0, d1, i32, 24);
30446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u32 d0, d1", d0, d1, i32, 140);
30456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u16 d0, d1", d0, d1, i32, 140);
30466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u8 d0, d1", d0, d1, i8, 140);
30476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u8 d0, d1", d0, d1, i32, (1 << 31) + 1);
30486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u16 d0, d1", d0, d1, i32, (1 << 31) + 1);
30496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u32 d0, d1", d0, d1, i32, (1 << 31) + 1);
30506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.u32 d10, d11", d10, d11, i32, 24);
30516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s32 d0, d1", d0, d1, i32, 24);
30526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s32 d0, d1", d0, d1, i32, 140);
30536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s16 d0, d1", d0, d1, i32, 140);
30546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s8 d0, d1", d0, d1, i8, 140);
30556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s8 d0, d1", d0, d1, i32, (1 << 31) + 1);
30566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s16 d0, d1", d0, d1, i32, (1 << 31) + 1);
30576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s32 d0, d1", d0, d1, i32, (1 << 31) + 1);
30586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vpadal.s32 d10, d11", d10, d11, i32, 24);
30596b564a035bff6173937a9ddf0811af10236286absewardj
3060918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30616b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VZIP ----\n");
30626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vzip.32 d0, d1", d0, i8, 0x12, d1, i8, 0x34);
30636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vzip.16 d1, d0", d0, i8, 0x12, d1, i8, 0x34);
30646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vzip.8 d10, d11", d10, i8, 0x12, d11, i8, 0x34);
30656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vzip.32 d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vzip.16 d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vzip.8 d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
30686b564a035bff6173937a9ddf0811af10236286absewardj
3069918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30706b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VUZP ----\n");
30716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vuzp.32 d0, d1", d0, i8, 0x12, d1, i8, 0x34);
30726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vuzp.16 d1, d0", d0, i8, 0x12, d1, i8, 0x34);
30736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vuzp.8 d10, d11", d10, i8, 0x12, d11, i8, 0x34);
30746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vuzp.32 d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vuzp.16 d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vuzp.8 d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
30776b564a035bff6173937a9ddf0811af10236286absewardj
3078918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30796b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VTRN ----\n");
30806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vtrn.32 d0, d1", d0, i8, 0x12, d1, i8, 0x34);
30816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vtrn.16 d1, d0", d0, i8, 0x12, d1, i8, 0x34);
30826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vtrn.8 d10, d11", d10, i8, 0x12, d11, i8, 0x34);
30836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vtrn.32 d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vtrn.16 d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vtrn.8 d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
30866b564a035bff6173937a9ddf0811af10236286absewardj
3087918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30886b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSWP ----\n");
30896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vswp d0, d1", d0, i8, 0x12, d1, i8, 0x34);
30906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vswp d1, d0", d0, i8, 0x12, d1, i8, 0x34);
30916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vswp d10, d11", d10, i8, 0x12, d11, i8, 0x34);
30926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vswp d0, d1", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vswp d1, d0", d0, i32, 0x12345678, d1, i32, 0x0a0b0c0d);
30946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_dual("vswp d30, d31", d30, i32, 0x12345678, d31, i32, 0x0a0b0c0d);
30956b564a035bff6173937a9ddf0811af10236286absewardj
3096918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
30976b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSHRN ----\n");
30986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d0, q1, #1", d0, q1, i32, -1);
30996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d3, q4, #2", d3, q4, i32, -0x7c);
31006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d2, q5, #10", d2, q5, i32, -1);
31016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
31026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d6, q7, #7", d6, q7, i32, 0xffff);
31036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d8, q9, #8", d8, q9, i32, -10);
31046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d10, q11, #5", d10, q11, i32, 10234);
31056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d12, q13, #1", d12, q13, i32, -1);
31066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d14, q15, #6", d14, q15, i32, -1);
31076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d10, q11, #9", d10, q11, i32, 1000);
31086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d7, q13, #7", d7, q13, i32, -1);
31096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d8, q1, #1", d8, q1, i32, 0xabcf);
31106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d12, q3, #15", d12, q3, i32, -0x1b0);
31116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d0, q1, #22", d0, q1, i32, -1);
31126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d6, q7, #12", d6, q7, i32, 0xfac);
31136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d8, q4, #9", d8, q4, i32, 13560);
31146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d9, q12, #11", d9, q12, i32, 98710);
31156b564a035bff6173937a9ddf0811af10236286absewardj
3116918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
31176b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VDUP ----\n");
31186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.8 d12, d2[0]", d12, d2, i32, 0xabc4657);
31196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.8 d0, d3[2]", d0, d3, i32, 0x7a1b3);
31206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.8 d1, d0[7]", d1, d0, i32, 0x713aaa);
31216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.8 d10, d4[3]", d10, d4, i32, 0xaa713);
31226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.8 d4, d28[4]", d4, d28, i32, 0x7b1c3);
31236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.16 d17, d19[1]", d17, d19, i32, 0x713ffff);
31246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.16 d15, d31[2]", d15, d31, i32, 0x7f00fa);
31256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.16 d6, d2[0]", d6, d2, i32, 0xffabcde);
31266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.16 d8, d22[3]", d8, d22, i32, 0x713);
31276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.16 d9, d2[0]", d9, d2, i32, 0x713);
31286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.32 d10, d17[1]", d10, d17, i32, 0x713);
31296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.32 d15, d11[0]", d15, d11, i32, 0x3);
31306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.32 d30, d29[1]", d30, d29, i32, 0xf00000aa);
31316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.32 d22, d0[1]", d22, d0, i32, 0xf);
31326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vdup.32 d13, d13[0]", d13, d13, i32, -1);
31336b564a035bff6173937a9ddf0811af10236286absewardj
3134918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
31356b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQDMULH ----\n");
31366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
31376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
31386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
31396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
31406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
31416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
31426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31), d9, i32, 12);
31436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
31446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
31456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d10, d11, d15", d10, d11, i32, 24, d15, i32, 120);
31466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 31);
31476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 31);
31486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 30, d31, i32, 1 << 31);
31496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 30);
31506b564a035bff6173937a9ddf0811af10236286absewardj
3151918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
31526b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQDMULH (by scalar) ----\n");
31536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d0, d1, d6[0]", d0, d1, i32, 24, d6, i32, 120);
31546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d6, d7, d1[1]", d6, d7, i32, 140, d1, i32, -120);
31556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d9, d11, d7[0]", d9, d11, i32, 0x140, d7, i32, 0x120);
31566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
31576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9[1]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
31586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6[1]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2);
31596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31), d9, i32, 12);
31606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d4, d5, d6[2]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
31616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
31626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d10, d31, d15[0]", d10, d31, i32, 24, d15, i32, 120);
31636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 31, d7, i32, 1 << 31);
31646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d10, d14, d7[3]", d10, d14, i32, 1 << 31, q15, i32, 1 << 31);
31656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 30, d15, i32, 1 << 31);
31666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqdmulh.s16 d31, d14, d7[1]", d31, d14, i32, 1 << 31, d7, i32, 1 << 30);
31676b564a035bff6173937a9ddf0811af10236286absewardj
3168918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
31696b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSHRN ----\n");
31706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d2, q2, #1", d2, q2, i32, 0xabc4657);
31716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d3, q3, #0", d3, q3, i32, 0x7a1b3);
31726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d1, q0, #3", d1, q0, i32, 0x713aaa);
31736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d0, q4, #5", d0, q4, i32, 0xaa713);
31746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i64 d4, q8, #11", d4, q8, i32, 0x7b1c3);
31756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d7, q12, #6", d7, q12, i32, 0x713ffff);
31766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d15, q11, #2", d15, q11, i32, 0x7f00fa);
31776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d6, q2, #4", d6, q2, i32, 0xffabc);
31786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d8, q12, #3", d8, q12, i32, 0x713);
31796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i16 d9, q2, #7", d9, q2, i32, 0x713);
31806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d10, q13, #2", d10, q13, i32, 0x713);
31816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d15, q11, #1", d15, q11, i32, 0x3);
31826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d10, q9, #5", d10, q9, i32, 0xf00000aa);
31836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d12, q0, #6", d12, q0, i32, 0xf);
31846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshrn.i32 d13, q13, #2", d13, q13, i32, -1);
31856b564a035bff6173937a9ddf0811af10236286absewardj
3186918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
31876b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQSHRN ----\n");
31886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s16 d0, q1, #1", d0, q1, i32, -1);
31896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s16 d3, q4, #2", d3, q4, i32, -0x7c);
31906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s32 d2, q5, #10", d2, q5, i32, -1);
31916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
31926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
31936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d6, q7, #7", d6, q7, i32, 0xffff);
31946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s16 d8, q9, #8", d8, q9, i32, -10);
31956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s32 d10, q11, #5", d10, q11, i32, 10234);
31966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d12, q13, #1", d12, q13, i32, -1);
31976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s16 d14, q15, #6", d14, q15, i32, -1);
31986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s32 d10, q11, #9", d10, q11, i32, 1000);
31996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d7, q13, #7", d7, q13, i32, -1);
32006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
32016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
32026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
32036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d0, q1, #22", d0, q1, i32, -1);
32046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d6, q7, #12", d6, q7, i32, 0xfac);
32056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d8, q4, #9", d8, q4, i32, 13560);
32066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.s64 d9, q12, #11", d9, q12, i32, 98710);
32076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u16 d0, q1, #1", d0, q1, i32, -1);
32086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u16 d3, q4, #2", d3, q4, i32, -0x7c);
32096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u32 d2, q5, #10", d2, q5, i32, -1);
32106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
32116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u16 d2, q5, #1", d2, q5, i16, 0x7fff);
32126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d6, q7, #7", d6, q7, i32, 0xffff);
32136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u16 d8, q9, #8", d8, q9, i32, -10);
32146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u32 d10, q11, #5", d10, q11, i32, 10234);
32156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d12, q13, #1", d12, q13, i32, -1);
32166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u16 d14, q15, #6", d14, q15, i32, -1);
32176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u32 d10, q11, #9", d10, q11, i32, 1000);
32186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d7, q13, #7", d7, q13, i32, -1);
32196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u16 d8, q1, #1", d8, q1, i32, 0xabcf);
32206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u32 d8, q1, #1", d8, q1, i32, 0xabcf);
32216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u32 d12, q3, #15", d12, q3, i32, -0x1b0);
32226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d0, q1, #22", d0, q1, i32, -1);
32236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d6, q7, #12", d6, q7, i32, 0xfac);
32246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d8, q4, #9", d8, q4, i32, 13560);
32256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrn.u64 d9, q12, #11", d9, q12, i32, 98710);
32266b564a035bff6173937a9ddf0811af10236286absewardj
3227918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
32286b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQSHRUN ----\n");
32296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s16 d0, q1, #1", d0, q1, i32, -1);
32306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s16 d3, q4, #2", d3, q4, i32, -0x7c);
32316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s32 d2, q5, #10", d2, q5, i32, -1);
32326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
32336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
32346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d6, q7, #7", d6, q7, i32, 0xffff);
32356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s16 d8, q9, #8", d8, q9, i32, -10);
32366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s32 d10, q11, #5", d10, q11, i32, 10234);
32376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d12, q13, #1", d12, q13, i32, -1);
32386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s16 d14, q15, #6", d14, q15, i32, -1);
32396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s32 d10, q11, #9", d10, q11, i32, 1000);
32406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d7, q13, #7", d7, q13, i32, -1);
32416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
32426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
32436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
32446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d0, q1, #22", d0, q1, i32, -1);
32456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d6, q7, #12", d6, q7, i32, 0xfac);
32466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d8, q4, #9", d8, q4, i32, 13560);
32476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqshrun.s64 d9, q12, #11", d9, q12, i32, 98710);
32486b564a035bff6173937a9ddf0811af10236286absewardj
3249918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
32506b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQRSHRN ----\n");
32516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s16 d0, q1, #1", d0, q1, i32, -1);
32526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s16 d3, q4, #2", d3, q4, i32, -0x7c);
32536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s32 d2, q5, #10", d2, q5, i32, -1);
32546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
32556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
32566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d6, q7, #7", d6, q7, i32, 0xffff);
32576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s16 d8, q9, #8", d8, q9, i32, -10);
32586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s32 d10, q11, #5", d10, q11, i32, 10234);
32596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d12, q13, #1", d12, q13, i32, -1);
32606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s16 d14, q15, #6", d14, q15, i32, -1);
32616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s32 d10, q11, #9", d10, q11, i32, 1000);
32626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d7, q13, #7", d7, q13, i32, -1);
32636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
32646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
32656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
32666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d0, q1, #22", d0, q1, i32, -1);
32676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d6, q7, #12", d6, q7, i32, 0xfac);
32686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d8, q4, #9", d8, q4, i32, 13560);
32696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.s64 d9, q12, #11", d9, q12, i32, 98710);
32706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u16 d0, q1, #1", d0, q1, i32, -1);
32716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u16 d3, q4, #2", d3, q4, i32, -0x7c);
32726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u32 d2, q5, #10", d2, q5, i32, -1);
32736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
32746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u16 d2, q5, #1", d2, q5, i16, 0x7fff);
32756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d6, q7, #7", d6, q7, i32, 0xffff);
32766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u16 d8, q9, #8", d8, q9, i32, -10);
32776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u32 d10, q11, #5", d10, q11, i32, 10234);
32786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d12, q13, #1", d12, q13, i32, -1);
32796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u16 d14, q15, #6", d14, q15, i32, -1);
32806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u32 d10, q11, #9", d10, q11, i32, 1000);
32816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d7, q13, #7", d7, q13, i32, -1);
32826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u16 d8, q1, #1", d8, q1, i32, 0xabcf);
32836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u32 d8, q1, #1", d8, q1, i32, 0xabcf);
32846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u32 d12, q3, #15", d12, q3, i32, -0x1b0);
32856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d0, q1, #22", d0, q1, i32, -1);
32866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d6, q7, #12", d6, q7, i32, 0xfac);
32876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d8, q4, #9", d8, q4, i32, 13560);
32886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrn.u64 d9, q12, #11", d9, q12, i32, 98710);
32896b564a035bff6173937a9ddf0811af10236286absewardj
3290918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
32916b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQRSHRUN ----\n");
32926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s16 d0, q1, #1", d0, q1, i32, -1);
32936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s16 d3, q4, #2", d3, q4, i32, -0x7c);
32946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s32 d2, q5, #10", d2, q5, i32, -1);
32956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s32 d2, q5, #1", d2, q5, i32, 0x7fffffff);
32966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s16 d2, q5, #1", d2, q5, i16, 0x7fff);
32976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d6, q7, #7", d6, q7, i32, 0xffff);
32986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s16 d8, q9, #8", d8, q9, i32, -10);
32996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s32 d10, q11, #5", d10, q11, i32, 10234);
33006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d12, q13, #1", d12, q13, i32, -1);
33016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s16 d14, q15, #6", d14, q15, i32, -1);
33026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s32 d10, q11, #9", d10, q11, i32, 1000);
33036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d7, q13, #7", d7, q13, i32, -1);
33046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s16 d8, q1, #1", d8, q1, i32, 0xabcf);
33056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s32 d8, q1, #1", d8, q1, i32, 0xabcf);
33066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s32 d12, q3, #15", d12, q3, i32, -0x1b0);
33076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d0, q1, #22", d0, q1, i32, -1);
33086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d6, q7, #12", d6, q7, i32, 0xfac);
33096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d8, q4, #9", d8, q4, i32, 13560);
33106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqrshrun.s64 d9, q12, #11", d9, q12, i32, 98710);
33116b564a035bff6173937a9ddf0811af10236286absewardj
3312918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
33136b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSHRN ----\n");
33146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i64 d2, q2, #1", d2, q2, i32, 0xabc4657);
33156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i64 d3, q3, #0", d3, q3, i32, 0x7a1b3);
33166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i64 d1, q0, #3", d1, q0, i32, 0x713aaa);
33176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i64 d0, q4, #5", d0, q4, i32, 0xaa713);
33186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i64 d4, q8, #11", d4, q8, i32, 0x7b1c3);
33196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i16 d7, q12, #6", d7, q12, i32, 0x713ffff);
33206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i16 d15, q11, #2", d15, q11, i32, 0x7f00fa);
33216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i16 d6, q2, #4", d6, q2, i32, 0xffabc);
33226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i16 d8, q12, #3", d8, q12, i32, 0x713);
33236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i16 d9, q2, #7", d9, q2, i32, 0x713);
33246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i32 d10, q13, #2", d10, q13, i32, 0x713);
33256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i32 d15, q11, #1", d15, q11, i32, 0x3);
33266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i32 d10, q9, #5", d10, q9, i32, 0xf00000aa);
33276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i32 d12, q0, #6", d12, q0, i32, 0xf);
33286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrshrn.i32 d13, q13, #2", d13, q13, i32, -1);
33296b564a035bff6173937a9ddf0811af10236286absewardj
3330918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
33316b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSHL (immediate) ----\n");
33326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i64 d0, d1, #1", d0, d1, i32, 24);
33336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i64 d5, d2, #1", d5, d2, i32, (1 << 30));
33346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i64 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
33356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i64 d11, d2, #12", d11, d2, i32, -1);
33366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i64 d15, d12, #63", d15, d12, i32, 5);
33376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i64 d5, d12, #62", d5, d12, i32, (1 << 31) + 1);
33386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i32 d0, d1, #1", d0, d1, i32, 24);
33396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i32 d5, d2, #1", d5, d2, i32, (1 << 30));
33406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i32 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
33416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i32 d11, d2, #12", d11, d2, i32, -1);
33426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i32 d15, d12, #20", d15, d12, i32, 5);
33436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i32 d5, d12, #30", d5, d12, i32, (1 << 31) + 1);
33446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i16 d0, d1, #1", d0, d1, i16, 24);
33456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i16 d5, d2, #1", d5, d2, i32, (1 << 30));
33466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i16 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
33476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i16 d11, d2, #12", d11, d2, i16, -1);
33486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i16 d15, d12, #3", d15, d12, i16, 5);
33496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i16 d5, d12, #14", d5, d12, i32, (1 << 31) + 1);
33506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i8 d0, d1, #1", d0, d1, i8, 24);
33516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i8 d5, d2, #1", d5, d2, i32, (1 << 30));
33526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i8 d9, d12, #2", d9, d12, i32, (1 << 31) + 2);
33536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i8 d11, d2, #7", d11, d2, i8, -1);
33546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i8 d15, d12, #3", d15, d12, i8, 5);
33556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vshl.i8 d5, d12, #6", d5, d12, i32, (1 << 31) + 1);
33566b564a035bff6173937a9ddf0811af10236286absewardj
3357918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
33586b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VNEG ----\n");
33596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s32 d0, d1", d0, d1, i32, 0x73);
33606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s16 d15, d4", d15, d4, i32, 0x73);
33616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s8 d8, d7", d8, d7, i32, 0x73);
33626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s32 d0, d1", d0, d1, i32, 0xfe);
33636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s16 d31, d4", d31, d4, i32, 0xef);
33646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s8 d8, d7", d8, d7, i32, 0xde);
33656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s32 d0, d1", d0, d1, i16, 0xfe0a);
33666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s16 d15, d4", d15, d4, i16, 0xef0b);
33676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.s8 d8, d7", d8, d7, i16, 0xde0c);
33686b564a035bff6173937a9ddf0811af10236286absewardj
3369918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
33706b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQNEG ----\n");
33716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i32, 0x73);
33726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i32, 1 << 31);
33736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s16 d0, d1", d0, d1, i32, 1 << 31);
33746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s8 d0, d1", d0, d1, i32, 1 << 31);
33756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s16 d15, d4", d15, d4, i32, 0x73);
33766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s8 d8, d7", d8, d7, i32, 0x73);
33776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i32, 0xfe);
33786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s16 d31, d4", d31, d4, i32, 0xef);
33796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s8 d8, d7", d8, d7, i32, 0xde);
33806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s32 d0, d1", d0, d1, i16, 0xfe0a);
33816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s16 d15, d4", d15, d4, i16, 0xef0b);
33826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un_q("vqneg.s8 d8, d7", d8, d7, i16, 0xde0c);
33836b564a035bff6173937a9ddf0811af10236286absewardj
3384918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
33856b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VREV ----\n");
33866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrev64.8 d0, d1", d0, d1, i32, 0xaabbccdd);
33876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrev64.16 d10, d31", d10, d31, i32, 0xaabbccdd);
33886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrev64.32 d1, d14", d1, d14, i32, 0xaabbccdd);
33896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrev32.8 d0, d1", d0, d1, i32, 0xaabbccdd);
33906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrev32.16 d30, d15", d30, d15, i32, 0xaabbccdd);
33916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrev16.8 d0, d1", d0, d1, i32, 0xaabbccdd);
33926b564a035bff6173937a9ddf0811af10236286absewardj
3393918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
33946b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VTBL ----\n");
33956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d0, {d2}, d1", d0, d1, i8, 0, d2, i32, 0x12345678);
33966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d0, {d31}, d1", d0, d1, i8, 0x07, d31, i32, 0x12345678);
33976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d0, {d20}, d1", d0, d1, i8, 1, d20, i32, 0x12345678);
33986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d0, {d2}, d31", d0, d31, i8, 2, d2, i32, 0x12345678);
33996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d30, {d2}, d1", d30, d1, i32, 0x07030501, d2, i32, 0x12345678);
34006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d31, {d2}, d1", d31, d1, i16, 0x0104, d2, i32, 0x12345678);
34016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d30, {d2}, d1", d30, d1, i32, 0x07080501, d2, i32, 0x12345678);
34026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbl.8 d30, {d2}, d1", d30, d1, i32, 0x07ed05ee, d2, i32, 0x12345678);
34036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d2-d3}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d1-d2}, d3", d0, d3, i8, 0xa, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4);
34056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d30-d31}, d1", d0, d1, i8, 0xf, d30, i32, 0x12345678, d31, i32, 0xa1a2a3a4);
34066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 14, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x070e0e01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0d130f01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbl.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d2-d4}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d1-d3}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd);
34186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d29-d31}, d1", d0, d1, i8, 0x17, d29, i32, 0x12345678, d30, i32, 0xa1a2a3a4, d31, i32, 0xcacbcccd);
34196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d0, {d22-d24}, d1", d0, d1, i8, 17, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0a031504, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x170efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0d130f11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbl.8 d30, {d2-d4}, d31", d30, d31, i32, 0x070f1511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d2-d5}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d1-d4}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd, d4, i32, 0xfefdfcfb);
34316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d28-d31}, d1", d0, d1, i8, 0x17, d28, i32, 0x12345678, d29, i32, 0xa1a2a3a4, d30, i32, 0xcacbcccd, d31, i32, 0xfefdfcfb);
34326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1a, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 0x16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1f, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1a0315ff, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x171efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1d130f1a, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbl.8 d30, {d2-d5}, d31", d30, d31, i32, 0x17101c11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34426b564a035bff6173937a9ddf0811af10236286absewardj
3443918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
34446b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VTBX ----\n");
34456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d0, {d2}, d1", d0, d1, i8, 0, d2, i32, 0x12345678);
34466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d0, {d31}, d1", d0, d1, i8, 0x07, d31, i32, 0x12345678);
34476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d0, {d20}, d1", d0, d1, i8, 1, d20, i32, 0x12345678);
34486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d0, {d2}, d31", d0, d31, i8, 2, d2, i32, 0x12345678);
34496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d30, {d2}, d1", d30, d1, i32, 0x07030501, d2, i32, 0x12345678);
34506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d31, {d2}, d1", d31, d1, i16, 0x0104, d2, i32, 0x12345678);
34516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d30, {d2}, d1", d30, d1, i32, 0x07080501, d2, i32, 0x12345678);
34526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_1("vtbx.8 d30, {d2}, d1", d30, d1, i32, 0x07ed05ee, d2, i32, 0x12345678);
34536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d2-d3}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d1-d2}, d3", d0, d3, i8, 0xa, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4);
34556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d30-d31}, d1", d0, d1, i8, 0xf, d30, i32, 0x12345678, d31, i32, 0xa1a2a3a4);
34566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 14, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d0, {d22-d23}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4);
34616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x070e0e01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x0d130f01, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_2("vtbx.8 d30, {d2-d3}, d31", d30, d31, i32, 0x07030511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4);
34666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d2-d4}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d1-d3}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd);
34686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d29-d31}, d1", d0, d1, i8, 0x17, d29, i32, 0x12345678, d30, i32, 0xa1a2a3a4, d31, i32, 0xcacbcccd);
34696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 15, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d0, {d22-d24}, d1", d0, d1, i8, 17, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd);
34746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0a031504, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x170efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x0d130f11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_3("vtbx.8 d30, {d2-d4}, d31", d30, d31, i32, 0x070f1511, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd);
34796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d2-d5}, d1", d0, d1, i8, 0, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d1-d4}, d10", d0, d10, i8, 0x11, d1, i32, 0x12345678, d2, i32, 0xa1a2a3a4, d3, i32, 0xcacbcccd, d4, i32, 0xfefdfcfb);
34816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d28-d31}, d1", d0, d1, i8, 0x17, d28, i32, 0x12345678, d29, i32, 0xa1a2a3a4, d30, i32, 0xcacbcccd, d31, i32, 0xfefdfcfb);
34826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 9, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1a, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 4, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 0x16, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d0, {d22-d25}, d1", d0, d1, i8, 0x1f, d22, i32, 0x12345678, d23, i32, 0xa1a2a3a4, d24, i32, 0xcacbcccd, d25, i32, 0xfefdfcfb);
34876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1a0315ff, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x0c0a0501, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x171efe0f, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x1d130f1a, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_tbl_4("vtbx.8 d30, {d2-d5}, d31", d30, d31, i32, 0x17101c11, d2, i32, 0x12345678, d3, i32, 0xa1a2a3a4, d4, i32, 0xcacbcccd, d5, i32, 0xfefdfcfb);
34926b564a035bff6173937a9ddf0811af10236286absewardj
3493918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
34946b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPMAX (integer) ----\n");
34956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
34966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
34976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
34986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
34996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
35006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
35016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
35046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
35076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
35106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
35116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
35126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
35136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
35146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, 0x01202120, d2, i32, 120);
35156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
35256b564a035bff6173937a9ddf0811af10236286absewardj
3526918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
35276b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPMIN (integer) ----\n");
35286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 121);
35296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 121);
35306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
35316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
35326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s8 d0, d1, d2", d0, d1, i32, 120, d2, i32, 120);
35336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2);
35346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3);
35376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s8 d5, d7, d5", d5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2);
35406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.s32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
35436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, 25, d2, i32, 120);
35446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, 250, d2, i32, 120);
35456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, 140, d2, i32, 140);
35466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, 0x01200140, d2, i32, 120);
35476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, 0x01202120, d2, i32, 120);
35486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2);
35516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3);
35546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u8 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u16 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d0, d1, d2", d0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2);
35576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.u32 d10, d11, d12", d10, d11, i32, 24, d12, i32, 120);
35586b564a035bff6173937a9ddf0811af10236286absewardj
3559918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
35606b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQRDMULH ----\n");
35616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d0, d1, d2", d0, d1, i32, 24, d2, i32, 120);
35626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d6, d7, d8", d6, d7, i32, 140, d8, i32, -120);
35636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d9, d11, d12", d9, d11, i32, 0x140, d12, i32, 0x120);
35646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
35656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
35666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2);
35676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31), d9, i32, 12);
35686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
35696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
35706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d10, d11, d15", d10, d11, i32, 24, d15, i32, 120);
35716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 31);
35726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, (1 << 31) + 1);
35736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d10, d30, d31", d10, d30, i32, 1 << 30, d31, i32, 1 << 31);
35746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d10, d30, d31", d10, d30, i32, 1 << 31, d31, i32, 1 << 30);
35756b564a035bff6173937a9ddf0811af10236286absewardj
3576918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
35776b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VQRDMULH (by scalar) ----\n");
35786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d0, d1, d6[0]", d0, d1, i32, 24, d6, i32, 120);
35796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d6, d7, d1[1]", d6, d7, i32, 140, d1, i32, -120);
35806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d9, d11, d7[0]", d9, d11, i32, 0x140, d7, i32, 0x120);
35816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6[0]", d4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2);
35826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9[1]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
35836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6[1]", d4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2);
35846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31), d9, i32, 12);
35856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d4, d5, d6[2]", d4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2);
35866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d7, d8, d9[0]", d7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2);
35876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d10, d31, d15[0]", d10, d31, i32, 24, d15, i32, 120);
35886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 31, d7, i32, 1 << 31);
35896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d10, d14, d7[3]", d10, d14, i32, 1 << 31, q15, i32, (1 << 31) + 1);
35906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s32 d10, d14, d15[1]", d10, d14, i32, 1 << 30, d15, i32, 1 << 31);
35916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_q("vqrdmulh.s16 d31, d14, d7[1]", d31, d14, i32, 1 << 31, d7, i32, 1 << 30);
35926b564a035bff6173937a9ddf0811af10236286absewardj
3593918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
35946b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VADD (fp) ----\n");
35956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
35966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
35976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
35986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
35996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
36006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
36016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
36026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
36036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
36046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
36056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
36066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
36076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
36086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
36096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
36106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
36116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
36126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
36136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
36146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
36156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
36166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
36176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
36186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
36196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
36206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
36216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
36226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
36236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
36246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
36256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
36266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
36276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
36286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
36296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
36306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
36316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
36326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
36336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
36346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
36356b564a035bff6173937a9ddf0811af10236286absewardj
3636918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
36376b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VSUB (fp) ----\n");
36386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
36396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
36406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
36416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
36426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
36436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
36446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
36456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
36466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
36476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
36486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
36496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
36506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
36516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
36526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
36536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
36546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
36556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
36566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
36576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
36586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
36596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
36606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
36616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
36626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
36636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
36646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
36656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
36666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
36676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
36686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
36696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
36706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
36716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
36726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
36736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
36746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
36756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
36766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
36776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vsub.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
36786b564a035bff6173937a9ddf0811af10236286absewardj
3679918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
36806b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMUL (fp) ----\n");
36816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
36826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
36836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
36846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
36856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
36866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
36876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
36886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
36896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
36906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
36916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
36926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
36936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
36946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
36956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
36966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
36976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
36986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
36996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
37006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
37016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
37026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
37036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
37046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
37056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
37066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
37076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
37086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
37096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
37106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
37116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
37126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
37136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
37146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
37156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
37166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
37176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
37186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
37196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
37206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmul.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
37216b564a035bff6173937a9ddf0811af10236286absewardj
3722918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
372311b40674ec0857602b74f7649c3c09c706dccb0dsewardj    printf("---- VMUL (fp by scalar) ----\n");
372411b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d4[0]", d0, d1, i32, f2u(24), d4, i32, f2u(120));
372511b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d31, d8, d7[1]", d31, d8, i32, f2u(140), d7, i32, f2u(-120));
372611b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
372711b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
372811b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d17, d8, d1[1]", d17, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
372911b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d7, d8, d1[0]", d7, d8, i32, f2u(1e22), d1, i32, f2u(1e-19));
373011b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d7, d24, d1[0]", d7, d24, i32, f2u(1e12), d1, i32, f2u(1e11));
373111b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
373211b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
373311b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
373411b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
373511b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
373611b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
373711b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
373811b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
373911b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
374011b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
374111b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
374211b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
374311b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
374411b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
374511b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
374611b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
374711b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
374811b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
374911b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
375011b40674ec0857602b74f7649c3c09c706dccb0dsewardj    TESTINSN_bin("vmul.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
375111b40674ec0857602b74f7649c3c09c706dccb0dsewardj
3752918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
37536b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLA (fp) ----\n");
37546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
37556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
37566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
37576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
37586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
37596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
37606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
37616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
37626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
37636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
37646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
37656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
37666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
37676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
37686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
37696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
37706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
37716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
37726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
37736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
37746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
37756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
37766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
37776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
37786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
37796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
37806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
37816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
37826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
37836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
37846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
37856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
37866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
37876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
37886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
37896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
37906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
37916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
37926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
37936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
37946b564a035bff6173937a9ddf0811af10236286absewardj
3795918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
37966b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLA (fp by scalar) ----\n");
37976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d4[0]", d0, d1, i32, f2u(24), d4, i32, f2u(120));
37986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d31, d8, d7[1]", d31, d8, i32, f2u(140), d7, i32, f2u(-120));
37996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
38006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
38016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d17, d8, d1[1]", d17, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
38026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d7, d8, d1[0]", d7, d8, i32, f2u(1e22), d1, i32, f2u(1e-19));
38036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d7, d24, d1[0]", d7, d24, i32, f2u(1e12), d1, i32, f2u(1e11));
38046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
38056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
38066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
38076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
38086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
38096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
38106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
38116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
38126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
38136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
38146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
38156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
38166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
38176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
38186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
38196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
38206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
38216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
38226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
38236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmla.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
38246b564a035bff6173937a9ddf0811af10236286absewardj
3825918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
38266b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLS (fp) ----\n");
38276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
38286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
38296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
38306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
38316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
38326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
38336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
38346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
38356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
38366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
38376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
38386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
38396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
38406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
38416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
38426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
38436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
38446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
38456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
38466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
38476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
38486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
38496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
38506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
38516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
38526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
38536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
38546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
38556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
38566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
38576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
38586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
38596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
38606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
38616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
38626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
38636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
38646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
38656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
38666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
38676b564a035bff6173937a9ddf0811af10236286absewardj
3868918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
38696b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMLS (fp by scalar) ----\n");
38706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d4[0]", d0, d1, i32, f2u(24), d4, i32, f2u(120));
38716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d31, d8, d7[1]", d31, d8, i32, f2u(140), d7, i32, f2u(-120));
38726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d4, d8, d15[1]", d4, d8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2);
38736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d7, d8, d1[1]", d7, d8, i32, (1 << 31), d1, i16, 12);
38746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d17, d8, d1[1]", d17, d8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2);
38756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d7, d8, d1[0]", d7, d8, i32, f2u(1e22), d1, i32, f2u(1e-19));
38766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d7, d24, d1[0]", d7, d24, i32, f2u(1e12), d1, i32, f2u(1e11));
38776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
38786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
38796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
38806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
38816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
38826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
38836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
38846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
38856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
38866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
38876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
38886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
38896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
38906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
38916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
38926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
38936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
38946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
38956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
38966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin_f("vmls.f32 d0, d1, d2[0]", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
38976b564a035bff6173937a9ddf0811af10236286absewardj
3898918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
38996b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VABD (fp) ----\n");
39006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
39016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
39026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
39036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
39046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
39056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
39066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
39076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
39086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
39096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
39106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
39116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
39126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
39136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
39146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
39156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
39166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
39176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
39186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
39196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vabd.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
39206b564a035bff6173937a9ddf0811af10236286absewardj
3921918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
39226b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPADD (fp) ----\n");
39236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
39246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
39256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
39266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
39276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
39286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
39296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
39306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
39316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
39326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
39336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
39346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
39356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
39366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
39376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
39386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
39396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
39406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
39416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
39426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
39436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
39446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
39456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
39466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
39476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
39486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
39496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
39506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
39516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
39526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
39536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
39546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
39556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
39566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
39576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
39586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
39596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
39606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
39616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
39626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpadd.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
39636b564a035bff6173937a9ddf0811af10236286absewardj
3964918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
39656b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCVT (integer <-> fp) ----\n");
39666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(3.2));
39676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d10, d11", d10, d11, i32, f2u(3e22));
39686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d15, d4", d15, d4, i32, f2u(3e9));
39696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d15, d4", d15, d4, i32, f2u(-0.5));
39706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d15, d4", d15, d4, i32, f2u(-7.1));
39716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
39726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
39736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(3.2));
39746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d20, d21", d20, d21, i32, f2u(3e22));
39756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d15, d4", d15, d4, i32, f2u(3e9));
39766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d15, d4", d15, d4, i32, f2u(-0.5));
39776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d15, d4", d15, d4, i32, f2u(-7.1));
39786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
39796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
39806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d0, d1", d0, d1, i32, 7);
39816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d10, d11", d10, d11, i32, 1 << 31);
39826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d0, d1", d0, d1, i32, (1U << 31) + 1);
39836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d24, d26", d24, d26, i32, (1U << 31) - 1);
39846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d0, d14", d0, d14, i32, 0x30a0bcef);
39856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d1", d0, d1, i32, 7);
39866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d30, d31", d30, d31, i32, 1 << 31);
39876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d1", d0, d1, i32, (1U << 31) + 1);
39886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d1", d0, d1, i32, (1U << 31) - 1);
39896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(NAN));
39906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(0.0));
39916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
39926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
39936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(NAN));
39946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(0.0));
39956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
39966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
39976b564a035bff6173937a9ddf0811af10236286absewardj
3998918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
39996b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCVT (fixed <-> fp) ----\n");
40006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(3.2));
40016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d10, d11, #1", d10, d11, i32, f2u(3e22));
40026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d15, d4, #32", d15, d4, i32, f2u(3e9));
40036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d15, d4, #7", d15, d4, i32, f2u(-0.5));
40046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d15, d4, #4", d15, d4, i32, f2u(-7.1));
40056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d12, d8, #3", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
40066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d12, d8, #3", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
40076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1, #5", d0, d1, i32, f2u(3.2));
40086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d20, d21, #1", d20, d21, i32, f2u(3e22));
40096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d15, d4, #8", d15, d4, i32, f2u(3e9));
40106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d15, d4, #2", d15, d4, i32, f2u(-0.5));
40116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d15, d4, #1", d15, d4, i32, f2u(-7.1));
40126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d12, d8, #2", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
40136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d12, d8, #2", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
40146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d0, d1, #5", d0, d1, i32, 7);
40156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d10, d11, #9", d10, d11, i32, 1 << 31);
40166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d0, d1, #4", d0, d1, i32, (1U << 31) + 1);
40176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d24, d26, #6", d24, d26, i32, (1U << 31) - 1);
40186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.u32 d0, d14, #5", d0, d14, i32, 0x30a0bcef);
40196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d1, #12", d0, d1, i32, 7);
40206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d30, d31, #8", d30, d31, i32, 1 << 31);
40216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d1, #1", d0, d1, i32, (1U << 31) + 1);
40226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d1, #6", d0, d1, i32, (1U << 31) - 1);
40236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.f32.s32 d0, d14, #2", d0, d14, i32, 0x30a0bcef);
40246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(NAN));
40256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(0.0));
40266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(INFINITY));
40276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.u32.f32 d0, d1, #3", d0, d1, i32, f2u(-INFINITY));
40286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(NAN));
40296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(0.0));
40306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(INFINITY));
40316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcvt.s32.f32 d0, d1, #3", d0, d1, i32, f2u(-INFINITY));
40326b564a035bff6173937a9ddf0811af10236286absewardj
4033918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
40346b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMAX (fp) ----\n");
40356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
40366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
40376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
40386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
40396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
40406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
40416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
40426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
40436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
40446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
40456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
40466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
40476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
40486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
40496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
40506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
40516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
40526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
40536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
40546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
40556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
40566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
40576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
40586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
40596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
40606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
40616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
40626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
40636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
40646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
40656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
40666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
40676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
40686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
40696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
40706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
40716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
40726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
40736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
40746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
40756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
40766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
40776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
40786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
40796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
40806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
40816b564a035bff6173937a9ddf0811af10236286absewardj
4082918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
40836b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VMIN (fp) ----\n");
40846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
40856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
40866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
40876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
40886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
40896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
40906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
40916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
40926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
40936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
40946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
40956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
40966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
40976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
40986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
40996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
41006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
41016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
41026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
41036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
41046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
41056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
41066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
41076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
41086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
41096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
41106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
41116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
41126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
41136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
41146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
41156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
41166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
41176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
41186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
41196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
41206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
41216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
41226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
41236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
41246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
41256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
41266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
41276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
41286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
41296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
41306b564a035bff6173937a9ddf0811af10236286absewardj
4131918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
41326b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPMAX (fp) ----\n");
41336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
41346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
41356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
41366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
41376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
41386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
41396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
41406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
41416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
41426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
41436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
41446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
41456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
41466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
41476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
41486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
41496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
41506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
41516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
41526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
41536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
41546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
41556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
41566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
41576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
41586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
41596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
41606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
41616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
41626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
41636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
41646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
41656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
41666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
41676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
41686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
41696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
41706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
41716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
41726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
41736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
41746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
41756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
41766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
41776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
41786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmax.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
41796b564a035bff6173937a9ddf0811af10236286absewardj
4180918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
41816b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VPMIN (fp) ----\n");
41826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
41836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
41846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
41856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
41866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
41876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
41886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d10, d11, d2", d10, d11, i32, f2u(48755.7), d2, i32, f2u(1089.2));
41896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
41906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
41916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
41926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
41936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
41946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
41956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
41966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
41976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
41986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
41996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
42006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
42016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
42026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
42036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
42046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
42056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
42066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
42076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
42086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
42096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
42106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
42116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
42126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
42136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
42146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
42156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
42166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
42176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
42186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
42196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
42206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
42216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
42226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
42236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
42246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
42256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
42266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
42276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vpmin.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
42286b564a035bff6173937a9ddf0811af10236286absewardj
4229918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
42306b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRECPE ----\n");
42316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d0, d1", d0, d1, i32, f2u(3.2));
42326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d0, d1", d0, d1, i32, f2u(-653.2));
42336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d10, d11", d10, d11, i32, f2u(3e22));
42346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(3e9));
42356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(-0.5));
42366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(-7.1));
42376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
42386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
42396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d0, d1", d0, d1, i32, f2u(3.2));
42406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d10, d11", d10, d11, i32, f2u(3e22));
42416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.u32 d15, d4", d15, d4, i32, f2u(3e9));
42426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d15, d4", d15, d4, i32, f2u(-0.5));
42436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d15, d4", d15, d4, i32, f2u(-7.1));
42446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
42456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
42466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, 7);
42476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d10, d11", d10, d11, i32, 1 << 31);
42486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
42496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
42506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
42516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, 7);
42526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d10, d11", d10, d11, i32, 1 << 31);
42536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
42546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
42556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
42566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(NAN));
42576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(0.0));
42586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
42596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrecpe.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
42606b564a035bff6173937a9ddf0811af10236286absewardj
4261918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
42626b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRECPS ----\n");
42636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
42646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
42656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
42666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
42676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
42686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
42696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
42706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
42716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
42726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
42736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
42746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
42756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
42766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
42776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
42786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
42796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
42806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
42816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
42826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
42836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
42846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
42856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
42866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
42876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
42886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
42896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
42906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
42916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
42926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
42936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
42946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
42956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
42966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
42976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
42986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
42996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
43006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
43016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
43026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrecps.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
43036b564a035bff6173937a9ddf0811af10236286absewardj
4304918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
43056b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VABS (fp) ----\n");
43066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(3.2));
43076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, f2u(3e22));
43086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(3e9));
43096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-0.5));
43106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-7.1));
43116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
43126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
43136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(3.2));
43146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, f2u(3e22));
43156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(3e9));
43166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-0.5));
43176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d15, d4", d15, d4, i32, f2u(-7.1));
43186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
43196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
43206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, 7);
43216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, 1 << 31);
43226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
43236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
43246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
43256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, 7);
43266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d10, d11", d10, d11, i32, 1 << 31);
43276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
43286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
43296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
43306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(NAN));
43316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(0.0));
43326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
43336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vabs.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
43346b564a035bff6173937a9ddf0811af10236286absewardj
4335918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
43366b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGT (fp) ----\n");
43376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
43386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
43396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
43406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
43416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
43426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
43436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
43446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
43456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
43466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
43476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
43486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
43496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
43506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
43516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
43526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
43536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
43546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
43556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
43566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
43576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
43586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
43596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
43606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
43616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
43626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
43636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
43646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
43656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
43666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
43676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
43686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
43696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
43706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
43716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
43726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
43736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
43746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
43756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
43766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
43776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
43786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
43796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
43806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
43816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
43826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
43836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
43846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
43856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
43866b564a035bff6173937a9ddf0811af10236286absewardj
4387918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
43886b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGE (fp) ----\n");
43896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
43906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
43916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
43926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
43936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
43946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
43956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
43966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
43976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
43986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
43996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
44006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
44016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
44026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
44036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
44046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
44056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
44066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
44076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
44086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
44096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
44106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
44116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
44126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
44136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
44146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
44156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
44166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
44176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
44186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
44196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
44206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
44216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
44226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
44236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
44246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
44256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
44266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
44276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
44286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
44296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
44306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
44316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
44326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
44336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
44346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
44356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
44366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
44376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vcge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
44386b564a035bff6173937a9ddf0811af10236286absewardj
4439918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
44406b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VACGT (fp) ----\n");
44416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
44426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
44436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
44446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
44456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
44466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
44476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
44486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
44496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
44506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
44516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
44526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
44536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
44546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
44556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
44566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
44576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
44586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
44596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
44606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
44616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
44626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
44636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
44646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
44656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
44666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
44676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
44686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
44696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
44706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
44716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
44726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
44736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
44746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
44756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
44766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
44776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
44786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
44796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
44806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
44816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
44826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
44836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
44846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
44856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
44866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
44876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
44886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
44896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacgt.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
44906b564a035bff6173937a9ddf0811af10236286absewardj
4491918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
44926b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VACGE (fp) ----\n");
44936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
44946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
44956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
44966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
44976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
44986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
44996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
45006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
45016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
45026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
45036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
45046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
45056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
45066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
45076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
45086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
45096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
45106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
45116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
45126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
45136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
45146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
45156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
45166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
45176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
45186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
45196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
45206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
45216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
45226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
45236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
45246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
45256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
45266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
45276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
45286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
45296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
45306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
45316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
45326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
45336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
45346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
45356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
45366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
45376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
45386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
45396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
45406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
45416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vacge.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
45426b564a035bff6173937a9ddf0811af10236286absewardj
4543918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
45446b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCEQ (fp) ----\n");
45456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.5), d2, i32, f2u(-0.5));
45466b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d2, d15, d12", d2, d15, i32, f2u(-0.53), d12, i32, f2u(0.52));
45476b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d15, d7, d8", d15, d7, i32, f2u(231.45), d7, i32, f2u(231.45));
45486b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
45496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
45506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
45516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
45526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
45536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d3, d4, d5", d3, d4, i32, f2u(24.87556), d5, i32, f2u(1346.0004));
45546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d10, d31, d2", d10, d31, i32, f2u(48755.7), d2, i32, f2u(1089.2));
45556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
45566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
45576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
45586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
45596b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
45606b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d20, d21, d2", d20, d21, i32, f2u(487.587), d2, i32, f2u(109));
45616b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
45626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
45636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
45646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
45656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
45666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
45676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
45686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0), d2, i32, f2u(0));
45696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(1.0/1024.0), d2, i32, f2u(-1.0/1024.0));
45706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-1.0/1024.0), d2, i32, f2u(1.0/1024.0));
45716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(2342+1.0/1024.0), d2, i32, f2u(2342-1.0/1024.0));
45726b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-2342+1.0/1024.0), d2, i32, f2u(-2342-1.0/1024.0));
45736b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(89276+1.0/1024.0), d2, i32, f2u(98276+1.0/1024.0));
45746b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
45756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
45766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
45776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
45786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
45796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
45806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
45816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
45826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
45836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
45846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
45856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
45866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
45876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
45886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
45896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
45906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
45916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
45926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
45936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vceq.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
45946b564a035bff6173937a9ddf0811af10236286absewardj
4595918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
45966b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCEQ (fp) #0 ----\n");
45976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
45986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, 0x1);
45996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
46006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
46016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
46026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d30, d15, #0", d30, d15, i32, 0x0);
46036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
46046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
46056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
46066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vceq.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
46076b564a035bff6173937a9ddf0811af10236286absewardj
4608918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
46096b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGT (fp) #0 ----\n");
46106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
46116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, 0x1);
46126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
46136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
46146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
46156b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d30, d15, #0", d30, d15, i32, 0x0);
46166b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
46176b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
46186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
46196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcgt.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
46206b564a035bff6173937a9ddf0811af10236286absewardj
4621918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
46226b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCLT (fp) #0 ----\n");
46236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
46246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, 0x1);
46256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
46266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
46276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
46286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d30, d15, #0", d30, d15, i32, 0x0);
46296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
46306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
46316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
46326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vclt.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
46336b564a035bff6173937a9ddf0811af10236286absewardj
4634918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
46356b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCGE (fp) #0 ----\n");
46366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
46376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.f32 d0, d1, #0", d0, d1, i32, 0x1);
46386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
46396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
46406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
46416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcge.f32 d30, d15, #0", d30, d15, i32, 0x0);
46426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
46436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
46446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
46456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
46466b564a035bff6173937a9ddf0811af10236286absewardj
4647918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
46486b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VCLE (fp) #0 ----\n");
46496b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, 0x01000000);
46506b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, 0x1);
46516b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d2, d1, #0", d2, d1, i32, 1 << 31);
46526b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d2, d1, #0", d2, d1, i32, f2u(23.04));
46536b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d2, d31, #0", d2, d31, i32, f2u(-23.04));
46546b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d30, d15, #0", d30, d15, i32, 0x0);
46556b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(NAN));
46566b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(0.0));
46576b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(INFINITY));
46586b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vcle.f32 d0, d1, #0", d0, d1, i32, f2u(-INFINITY));
46596b564a035bff6173937a9ddf0811af10236286absewardj
4660918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
46616b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VNEG (fp) ----\n");
46626b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, 0x01000000);
46636b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, 0x1);
46646b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d2, d1", d2, d1, i32, 1 << 31);
46656b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d2, d1", d2, d1, i32, f2u(23.04));
46666b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d2, d31", d2, d31, i32, f2u(-23.04));
46676b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d30, d15", d30, d15, i32, 0x0);
46686b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(NAN));
46696b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(0.0));
46706b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
46716b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vneg.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
46726b564a035bff6173937a9ddf0811af10236286absewardj
4673918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
46746b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSQRTS ----\n");
46756b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d5, d2", d0, d5, i32, f2u(23.04), d2, i32, f2u(-45.5687));
46766b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d3, d4, d5", d3, d4, i32, f2u(-347856.475), d5, i32, f2u(1346));
46776b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(-45786.476));
46786b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d9, d5, d7", d9, d5, i32, f2u(95867.76), d7, i32, f2u(17065));
46796b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d5, d2", d0, d5, i32, f2u(-45667.24), d2, i32, f2u(-248562.76));
46806b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d3, d4, d5", d3, d4, i32, f2u(24), d5, i32, f2u(1346));
46816b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d10, d11, d2", d10, d11, i32, f2u(48755), d2, i32, f2u(1089));
46826b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d9, d5, d7", d9, d5, i32, f2u(214), d7, i32, f2u(1752065));
46836b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d11, d12", d0, d11, i32, f2u(356047.56), d12, i32, f2u(5867.009));
46846b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d7, d1, d6", d7, d1, i32, f2u(34.00046), d6, i32, f2u(0.0024575));
46856b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(2754), d2, i32, f2u(107));
46866b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d3, d4, d5", d3, d4, i32, f2u(874), d5, i32, f2u(1384.6));
46876b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d10, d11, d2", d10, d11, i32, f2u(487.587), d2, i32, f2u(109));
46886b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d9, d5, d7", d9, d5, i32, f2u(2146), d7, i32, f2u(1752));
46896b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d11, d12", d0, d11, i32, f2u(-56.25), d12, i32, f2u(-5786.47));
46906b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d7, d1, d6", d7, d1, i32, f2u(456.2489562), d6, i32, f2u(-7.2945676));
46916b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d5, d2", d0, d5, i32, f2u(532.987), d2, i32, f2u(-0.0045876));
46926b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d10, d13, d15", d10, d13, i32, f2u(-485.2457), d15, i32, f2u(-567.245));
46936b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d10, d13, d15", d10, d13, i32, f2u(278456.45), d15, i32, f2u(8756.0076));
46946b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(876988654), d2, i32, f2u(1224808797));
46956b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(NAN));
46966b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(1.0));
46976b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(0.0));
46986b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(INFINITY));
46996b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(NAN), d2, i32, f2u(-INFINITY));
47006b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(NAN));
47016b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(1.0));
47026b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(0.0));
47036b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(INFINITY));
47046b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(0.0), d2, i32, f2u(-INFINITY));
47056b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(NAN));
47066b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(1.0));
47076b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(0.0));
47086b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY));
47096b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY));
47106b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(NAN));
47116b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(1.0));
47126b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(0.0));
47136b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY));
47146b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_bin("vrsqrts.f32 d0, d1, d2", d0, d1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY));
47156b564a035bff6173937a9ddf0811af10236286absewardj
4716918cc6b185e39eceaa33ba3f12ca815189a6ec1csewardj    fflush(stdout);
47176b564a035bff6173937a9ddf0811af10236286absewardj    printf("---- VRSQRTE (fp) ----\n");
47186b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(3.2));
47196b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, f2u(3e22));
47206b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(3e9));
47216b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-0.5));
47226b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-7.1));
47236b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
47246b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
47256b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(3.2));
47266b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, f2u(3e22));
47276b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(3e9));
47286b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-0.5));
47296b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d15, d4", d15, d4, i32, f2u(-7.1));
47306b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(8.0 - 1.0/1024.0));
47316b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d12, d8", d12, d8, i32, f2u(-8.0 + 1.0/1024.0));
47326b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, 7);
47336b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, 1 << 31);
47346b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
47356b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
47366b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
47376b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, 7);
47386b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d10, d11", d10, d11, i32, 1 << 31);
47396b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) + 1);
47406b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, (1U << 31) - 1);
47416b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d14", d0, d14, i32, 0x30a0bcef);
47426b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(NAN));
47436b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(0.0));
47446b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(INFINITY));
47456b564a035bff6173937a9ddf0811af10236286absewardj    TESTINSN_un("vrsqrte.f32 d0, d1", d0, d1, i32, f2u(-INFINITY));
47466b564a035bff6173937a9ddf0811af10236286absewardj
47476b564a035bff6173937a9ddf0811af10236286absewardj    return 0;
47486b564a035bff6173937a9ddf0811af10236286absewardj}
4749