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