1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* How to compile: 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \ 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown -marm -o neon128-a neon128.c 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown or 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \ 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown -mthumb -o neon128-t neon128.c 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown*/ 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdio.h> 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <math.h> 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#ifndef __thumb__ 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// ARM 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define MOVE_to_FPSCR_from_R4 \ 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ".word 0xEEE14A10 @ vmsr FPSCR, r4\n\t" 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define MOVE_to_R4_from_FPSCR \ 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ".word 0xEEF14A10 @ vmrs r4, FPSCR\n\t" 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#ifdef __thumb__ 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Thumb 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define MOVE_to_FPSCR_from_R4 \ 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ".word 0x4A10EEE1 @ vmsr FPSCR, r4\n\t" 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define MOVE_to_R4_from_FPSCR \ 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ".word 0x4A10EEF1 @ vmrs r4, FPSCR\n\t" 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownstatic inline unsigned int f2u(float x) { 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown union { 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown float f; 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int u; 37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } cvt; 38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown cvt.f = x; 39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown return cvt.u; 40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* test macros to generate and output the result of a single instruction */ 43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownconst unsigned int mem[] = { 45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0x121f1e1f, 0x131b1a1b, 0x141c1f1c, 0x151d191d, 46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a, 47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a, 48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c 49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}; 50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_imm(instruction, QD, imm) \ 52ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 55ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 56ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 57ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction ", #" #imm "\n\t" \ 58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out) \ 61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, "memory" \ 62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s, #" #imm " :: Qd 0x%08x 0x%08x 0x%08x 0x%08x\n", \ 64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0]); \ 65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}\ 66ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 67ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 68ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 69ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 70ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 71ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %1, %2\n\t" \ 72ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %1!, {" #QD "}\n\t" \ 73ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction ", #" #imm "\n\t" \ 74ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 75ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 76ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (addr), "r" (mem) \ 77ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, "%2", "memory" \ 78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s, #" #imm " :: Qd 0x%08x 0x%08x 0x%08x 0x%08x\n", \ 80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0]); \ 81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 82ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 83ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_un(instruction, QD, QM, QMtype, QMval) \ 84ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 87ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 88ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %1\n\t" \ 90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 91ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 92ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 93ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval) \ 94ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, "memory" \ 95ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x\n", \ 97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval); \ 98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} \ 99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %2, %3\n\t" \ 105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %2!, {" #QD "}\n\t" \ 106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %2!, {" #QM "}\n\t" \ 107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (addr), "r" (mem) \ 111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, "%2", "memory" \ 112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x\n", \ 114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval); \ 115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_un_q(instruction, QD, QM, QMtype, QMval) \ 119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int fpscr; \ 122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov r4, #0\n\t" \ 126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_FPSCR_from_R4 \ 127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %2\n\t" \ 128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QD "}\n\t" \ 130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_R4_from_FPSCR \ 131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %0, r4" \ 132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "=r" (fpscr) \ 133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval) \ 134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, "memory", "r4" \ 135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " fpscr: %08x\n", \ 138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, fpscr); \ 139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} \ 140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int fpscr; \ 143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov r4, #0\n\t" \ 148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_FPSCR_from_R4 \ 149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %3, %4\n\t" \ 150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %3!, {" #QM "}\n\t" \ 151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QD "}\n\t" \ 153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_R4_from_FPSCR \ 154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %0, r4" \ 155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "=r" (fpscr) \ 156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (addr), "r" (mem) \ 157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, "memory", "r4" \ 158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " fpscr: %08x\n", \ 161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, fpscr); \ 162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_bin(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %1\n\t" \ 171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %2\n\t" \ 172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (QNval) \ 176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, #QN, "memory" \ 177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x\n", \ 180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} \ 182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/*{ \ 183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %0, %4\n\t" \ 188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %0!, {" #QM "}\n\t" \ 189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %3\n\t" \ 191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QD "}\n\t" \ 193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "+r" (addr) \ 194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (QNval), "r" (mem) \ 195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, #QN, "memory" \ 196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x\n", \ 199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} */ 201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_bin_f(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup.i32 " #QD ", %3\n\t" \ 208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %1\n\t" \ 209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %2\n\t" \ 210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (QNval), "r" (0x3f800000) \ 214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, #QN, "memory" \ 215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x\n", \ 218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} \ 220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup.i32 " #QD ", %3\n\t" \ 226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %4, %5\n\t" \ 227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %4!, {" #QM "}\n\t" \ 228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %2\n\t" \ 229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (QNval), "r"(0x3f800000), "r" (addr), "r" (mem) \ 233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, #QN, "memory" \ 234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x\n", \ 237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_bin_q(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int fpscr; \ 244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov r4, #0\n\t" \ 248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_FPSCR_from_R4 \ 249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %2\n\t" \ 250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %3\n\t" \ 251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QD "}\n\t" \ 253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_R4_from_FPSCR \ 254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %0, r4" \ 255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "=r" (fpscr) \ 256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (QNval) \ 257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, #QN, "memory", "r4" \ 258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x fpscr: %08x\n", \ 261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, QNval, fpscr); \ 262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} \ 263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int fpscr; \ 266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov r4, #0\n\t" \ 271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_FPSCR_from_R4 \ 272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %4, %5\n\t" \ 273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %4!, {" #QM "}\n\t" \ 274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %3\n\t" \ 275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QD "}\n\t" \ 277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown MOVE_to_R4_from_FPSCR \ 278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %0, r4" \ 279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "=r" (fpscr) \ 280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem) \ 281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, #QN, "memory", "r4" \ 282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x fpscr: %08x\n", \ 285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[1], out[0], QMval, QNval, fpscr); \ 286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qn (" #QNtype ")0x%08x fpscr: %08x\n", \ 288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval, QNval, fpscr); \ 289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_dual(instruction, QM, QMtype, QMval, QN, QNtype, QNval) \ 292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out1[4]; \ 294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out2[4]; \ 295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %2\n\t" \ 298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %3\n\t" \ 299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QM "}\n\t" \ 301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QN "}\n\t" \ 302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval) \ 304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QM, #QN, "memory" \ 305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qm 0x%08x 0x%08x 0x%08x 0x%08x Qn 0x%08x 0x%08x 0x%08x 0x%08x" \ 307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown " Qm (" #QMtype ")0x%08x Qn (" #QNtype ")0x%08x\n", \ 308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out1[3], out1[2], out1[1], out1[0], \ 309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown out2[3], out2[2], out2[1], out2[0], QMval, QNval); \ 310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} \ 311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out1[4]; \ 313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out2[4]; \ 314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int addr = 0; \ 315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown \ 316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "mov %4, %5\n\t" \ 318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vldmia %4!, {" #QM "}\n\t" \ 319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QNtype " " #QN ", %3\n\t" \ 320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction "\n\t" \ 321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QM "}\n\t" \ 322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %1, {" #QN "}\n\t" \ 323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval), "r" (addr), "r" (mem) \ 325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QM, #QN, "%4", "memory" \ 326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s :: Qm 0x%08x 0x%08x 0x%08x 0x%08x Qn 0x%08x 0x%08x 0x%08x 0x%08x\nQm (" \ 328ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#QMtype ")0x%08x" " Qn (" #QNtype ")0x%08x\n", \ 329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out1[3], out1[2], out1[1], out1[0],\ 330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown out2[3], out2[2], out2[1], out2[0], QMval, QNval); \ 331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#if 0 334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TESTINSN_2reg_shift(instruction, QD, QM, QMtype, QMval, imm) \ 335b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 336b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 337b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 338b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 339b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x55" "\n\t" \ 340b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %1\n\t" \ 341b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction ", #" #imm "\n\t" \ 342b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QD "}\n\t" \ 343b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 344b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval) \ 345b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, "memory" \ 346b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 347b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s, #" #imm " :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x", \ 348b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval); \ 349b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 350b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif 351b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 352b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovint main(int argc, char **argv) 353b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 354b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("----- VMOV (immediate) -----\n"); 355b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i32 q0", q0, 0x7); 356b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i16 q1", q1, 0x7); 357b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i8 q2", q2, 0x7); 358b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i32 q5", q5, 0x700); 359b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i16 q7", q7, 0x700); 360b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i32 q10", q10, 0x70000); 361b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i32 q12", q12, 0x7000000); 362b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i32 q13", q13, 0x7FF); 363b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i32 q14", q14, 0x7FFFF); 364b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.i64 q15", q15, 0xFF0000FF00FFFF00); 365b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.f32 q0", q0, 0.328125); 366b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmov.f32 q0", q0, -0.328125); 367b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 368b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("----- VMVN (immediate) -----\n"); 369b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i32 q0", q0, 0x7); 370b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i16 q1", q1, 0x7); 371b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i8 q2", q2, 0x7); 372b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i32 q5", q5, 0x700); 373b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i16 q7", q7, 0x700); 374b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i32 q10", q10, 0x70000); 375b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i32 q13", q13, 0x7000000); 376b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i32 q11", q11, 0x7FF); 377b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i32 q14", q14, 0x7FFFF); 378b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vmvn.i64 q15", q15, 0xFF0000FF00FFFF00); 379b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 380b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("----- VORR (immediate) -----\n"); 381b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vorr.i32 q0", q0, 0x7); 382b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vorr.i16 q2", q2, 0x7); 383b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vorr.i32 q8", q8, 0x700); 384b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vorr.i16 q6", q6, 0x700); 385b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vorr.i32 q14", q14, 0x70000); 386b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vorr.i32 q15", q15, 0x7000000); 387b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 388b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("----- VBIC (immediate) -----\n"); 389b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vbic.i32 q0", q0, 0x7); 390b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vbic.i16 q3", q3, 0x7); 391b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vbic.i32 q5", q5, 0x700); 392b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vbic.i16 q8", q8, 0x700); 393b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vbic.i32 q10", q10, 0x70000); 394b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_imm("vbic.i32 q15", q15, 0x7000000); 395b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 396b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMVN (register) ----\n"); 397b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmvn q0, q1", q0, q1, i32, 24); 398b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmvn q10, q15", q10, q15, i32, 24); 399b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmvn q0, q14", q0, q14, i32, 24); 400b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 401b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMOV (register) ----\n"); 402b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmov q0, q1", q0, q1, i32, 24); 403b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmov q10, q15", q10, q15, i32, 24); 404b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmov q0, q14", q0, q14, i32, 24); 405b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 406b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VDUP (ARM core register) (tested indirectly) ----\n"); 407b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmov q0, q1", q0, q1, i8, 7); 408b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmov q10, q11", q10, q11, i16, 7); 409b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmov q0, q15", q0, q15, i32, 7); 410b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 411b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VADD ----\n"); 412b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 413b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i64 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 414b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 415b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 416b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 417b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 418b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 419b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 420b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i64 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 421b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 422b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.i64 q13, q14, q15", q13, q14, i32, 140, q15, i32, 120); 423b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 424b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSUB ----\n"); 425b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 426b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i64 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 427b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 428b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 429b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 430b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 431b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 432b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 433b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i64 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 434b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 435b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.i64 q13, q14, q15", q13, q14, i32, 140, q15, i32, 120); 436b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 437b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VAND ----\n"); 438b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vand q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 439b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vand q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 440b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vand q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 441b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vand q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 442b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 443b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VBIC ----\n"); 444b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbic q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 445b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbic q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 446b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbic q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 447b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbic q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 448b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 449b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VORR ----\n"); 450b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorr q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 451b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorr q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 452b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorr q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 453b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorr q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 454b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 455b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VORN ----\n"); 456b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorn q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 457b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorn q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 458b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorn q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 459b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vorn q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 460b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 461b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VEOR ----\n"); 462b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 463b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 464b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 465b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 466b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 467b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 468b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 469b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("veor q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 470b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 471b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VBSL ----\n"); 472b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 473b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 474b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 475b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 476b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 477b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 478b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 479b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbsl q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 480b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 481b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VBIT ----\n"); 482b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 483b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 484b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 485b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 486b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 487b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 488b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 489b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbit q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 490b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 491b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VBIF ----\n"); 492b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 493b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 494b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 495b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 496b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 497b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 498b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 499b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vbif q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 500b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 501b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VEXT ----\n"); 502b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vext.8 q0, q1, q2, #0", q0, q1, i8, 0x77, q2, i8, 0xff); 503b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vext.8 q0, q1, q2, #1", q0, q1, i8, 0x77, q2, i8, 0xff); 504b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vext.8 q0, q1, q2, #9", q0, q1, i8, 0x77, q2, i8, 0xff); 505b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vext.8 q0, q1, q2, #15", q0, q1, i8, 0x77, q2, i8, 0xff); 506b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vext.8 q10, q11, q12, #4", q10, q11, i8, 0x77, q12, i8, 0xff); 507b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vext.8 q0, q5, q15, #12", q0, q5, i8, 0x77, q15, i8, 0xff); 508b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 509b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VHADD ----\n"); 510b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 511b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 512b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 513b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 514b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s8 q0, q1, q2", q0, q1, i8, 141, q2, i8, 121); 515b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 516b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 517b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 518b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 519b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 520b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 521b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 522b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 523b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u8 q0, q1, q2", q0, q1, i8, 141, q2, i8, 121); 524b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 525b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 526b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 527b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhadd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 528b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 529b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VHSUB ----\n"); 530b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 531b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 532b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 533b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 534b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 535b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 536b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 537b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 538b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 539b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 540b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 541b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 542b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 543b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 544b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 545b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vhsub.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 546b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 547b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQADD ----\n"); 548b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 549b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 550b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 551b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 552b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 553b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 554b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 555b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 556b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 557b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 558b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 559b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 560b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 561b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 562b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 563b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqadd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 564b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 565b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQSUB ----\n"); 566b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 567b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 568b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 569b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 570b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 571b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 572b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 573b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 574b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 575b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 576b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 577b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 578b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 579b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 580b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 581b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqsub.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 582b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 583b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRHADD ----\n"); 584b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 585b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 586b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 587b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 588b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 589b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 590b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 591b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 592b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 593b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 594b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 595b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 596b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 597b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 598b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 599b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 600b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 601b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 602b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 603b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 604b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 605b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 606b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 607b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 608b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 609b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 610b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 611b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 612b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrhadd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 613b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 614b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGT ----\n"); 615b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 616b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 617b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 618b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 619b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 620b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 621b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 622b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 623b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 624b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 625b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 626b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 3, q5, i32, (1 << 31) + 2); 627b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 628b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 629b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 630b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 631b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 632b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 2, q5, i32, (1 << 31) + 2); 633b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 634b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 635b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 636b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 637b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 638b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 639b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 640b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 641b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 642b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 643b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 644b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 645b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 646b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 647b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 648b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 649b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 650b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 651b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 652b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 653b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 654b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 655b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 656b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 657b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGE ----\n"); 658b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 659b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 660b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 661b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 662b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 663b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 664b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 665b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 666b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 667b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 668b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 669b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 3, q5, i32, (1 << 31) + 2); 670b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 671b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 672b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 673b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 674b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 675b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 2, q5, i32, (1 << 31) + 2); 676b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 677b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 678b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 679b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 680b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 681b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 682b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 683b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 684b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 685b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 686b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 687b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 688b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 689b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 690b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 691b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 692b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 693b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 694b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 695b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 696b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 697b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 698b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 699b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 700b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSHL (register) ----\n"); 701b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s8 q0, q1, q2", q0, q1, i32, 24, q2, i32, 1); 702b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s8 q8, q1, q12", q8, q1, i32, 24, q12, i32, 8); 703b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s8 q10, q11, q7", q10, q11, i32, 24, q7, i32, 4); 704b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s16 q3, q8, q11", q3, q8, i32, 14, q11, i32, 2); 705b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s16 q5, q12, q14", q5, q12, i32, (1 << 30), q14, i32, 1); 706b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s16 q15, q2, q1", q15, q2, i32, (1 << 30), q1, i32, 11); 707b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s32 q9, q12, q15", q9, q12, i32, (1 << 31) + 2, q15, i32, 2); 708b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s32 q11, q2, q0", q11, q2, i32, -1, q0, i32, 12); 709b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s32 q5, q2, q3", q5, q2, i32, (1 << 30), q3, i32, 21); 710b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s64 q15, q12, q4", q15, q12, i32, 5, q4, i32, 20); 711b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s64 q8, q2, q4", q8, q2, i32, 15, q4, i32, 4); 712b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.s64 q5, q12, q4", q5, q12, i32, (1 << 31) + 1, q4, i32, 30); 713b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u8 q0, q1, q2", q0, q1, i32, 24, q2, i32, 1); 714b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u8 q8, q1, q12", q8, q1, i32, 24, q12, i32, 8); 715b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u8 q10, q11, q7", q10, q11, i32, 24, q7, i32, 4); 716b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u16 q3, q8, q11", q3, q8, i32, 14, q11, i32, 2); 717b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u16 q5, q12, q14", q5, q12, i32, (1 << 30), q14, i32, 1); 718b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u16 q15, q2, q1", q15, q2, i32, (1 << 30), q1, i32, 11); 719b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u32 q9, q12, q15", q9, q12, i32, (1 << 31) + 2, q15, i32, 2); 720b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u32 q11, q2, q0", q11, q2, i32, -1, q0, i32, 12); 721b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u32 q5, q2, q3", q5, q2, i32, (1 << 30), q3, i32, 21); 722b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u64 q15, q12, q4", q15, q12, i32, 5, q4, i32, 20); 723b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u64 q8, q2, q4", q8, q2, i32, 15, q4, i32, 4); 724b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vshl.u64 q5, q12, q4", q5, q12, i32, (1 << 31) + 1, q4, i32, 30); 725b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 726b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQSHL (register) ----\n"); 727b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 728b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 729b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 730b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 731b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 732b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 733b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 734b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 735b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 736b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 737b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 738b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 739b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 740b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 741b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 742b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 743b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 744b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 745b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 746b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 747b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 748b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 749b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 750b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.s8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 751b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 752b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 753b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 754b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 755b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 756b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 757b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 758b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 759b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 760b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 761b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 762b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 763b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 764b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 765b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 766b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 767b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 768b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 769b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 770b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 771b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 772b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 773b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 774b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqshl.u8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 775b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 776b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQSHL / VQSHLU (immediate) ----\n"); 777b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q0, q1, #1", q0, q1, i32, 1); 778b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q15, q14, #1", q15, q14, i32, -127); 779b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #0", q5, q4, i32, -127); 780b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #63", q5, q4, i32, 16); 781b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #60", q5, q4, i32, 16); 782b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #59", q5, q4, i32, 16); 783b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #58", q5, q4, i32, 16); 784b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #17", q5, q4, i32, 16); 785b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #63", q5, q4, i32, -1); 786b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #60", q5, q4, i32, -1); 787b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s64 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 788b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q10, q11, #1", q10, q11, i32, 1); 789b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q15, q14, #1", q15, q14, i32, -127); 790b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #0", q5, q4, i32, -127); 791b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #31", q5, q4, i32, 16); 792b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #28", q5, q4, i32, 16); 793b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #27", q5, q4, i32, 16); 794b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #26", q5, q4, i32, 16); 795b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #17", q5, q4, i32, 16); 796b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #31", q5, q4, i32, -1); 797b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #29", q5, q4, i32, -1); 798b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s32 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 799b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q9, q8, #1", q9, q8, i32, 1); 800b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q15, q14, #1", q15, q14, i32, -127); 801b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #0", q5, q4, i32, -127); 802b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q9, q8, #15", q9, q8, i32, 16); 803b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #12", q5, q4, i32, 16); 804b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #11", q5, q4, i32, 16); 805b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #10", q5, q4, i32, 16); 806b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #4", q5, q4, i32, 16); 807b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #15", q5, q4, i32, -1); 808b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #12", q5, q4, i32, -1); 809b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s16 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 810b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q0, q1, #1", q0, q1, i32, 1); 811b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q15, q14, #1", q15, q14, i32, -127); 812b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #0", q5, q4, i32, -127); 813b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #7", q5, q4, i32, 16); 814b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #4", q5, q4, i32, 16); 815b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #3", q5, q4, i32, 16); 816b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #2", q5, q4, i32, 16); 817b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #1", q5, q4, i32, 16); 818b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #7", q5, q4, i32, -1); 819b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #5", q5, q4, i32, -1); 820b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.s8 q5, q4, #2", q5, q4, i32, (1 << 31) + 2); 821b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q0, q1, #1", q0, q1, i32, 1); 822b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q15, q14, #1", q15, q14, i32, -127); 823b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #0", q5, q4, i32, -127); 824b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #63", q5, q4, i32, 16); 825b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #60", q5, q4, i32, 16); 826b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #59", q5, q4, i32, 16); 827b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #58", q5, q4, i32, 16); 828b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #17", q5, q4, i32, 16); 829b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #63", q5, q4, i32, -1); 830b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #60", q5, q4, i32, -1); 831b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u64 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 832b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q10, q11, #1", q10, q11, i32, 1); 833b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q15, q14, #1", q15, q14, i32, -127); 834b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #0", q5, q4, i32, -127); 835b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #31", q5, q4, i32, 16); 836b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #28", q5, q4, i32, 16); 837b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #27", q5, q4, i32, 16); 838b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #26", q5, q4, i32, 16); 839b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #17", q5, q4, i32, 16); 840b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #31", q5, q4, i32, -1); 841b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #29", q5, q4, i32, -1); 842b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u32 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 843b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q9, q8, #1", q9, q8, i32, 1); 844b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q15, q14, #1", q15, q14, i32, -127); 845b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #0", q5, q4, i32, -127); 846b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q9, q8, #15", q9, q8, i32, 16); 847b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #12", q5, q4, i32, 16); 848b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #11", q5, q4, i32, 16); 849b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #10", q5, q4, i32, 16); 850b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #4", q5, q4, i32, 16); 851b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #15", q5, q4, i32, -1); 852b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #12", q5, q4, i32, -1); 853b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u16 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 854b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q0, q1, #1", q0, q1, i32, 1); 855b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q15, q14, #1", q15, q14, i32, -127); 856b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #0", q5, q4, i32, -127); 857b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #7", q5, q4, i32, 16); 858b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #4", q5, q4, i32, 16); 859b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #3", q5, q4, i32, 16); 860b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #2", q5, q4, i32, 16); 861b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #1", q5, q4, i32, 16); 862b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #7", q5, q4, i32, -1); 863b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #5", q5, q4, i32, -1); 864b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshl.u8 q5, q4, #2", q5, q4, i32, (1 << 31) + 2); 865b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q0, q1, #1", q0, q1, i32, 1); 866b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q15, q14, #1", q15, q14, i32, -127); 867b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #0", q5, q4, i32, -127); 868b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #63", q5, q4, i32, 16); 869b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #60", q5, q4, i32, 16); 870b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #59", q5, q4, i32, 16); 871b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #58", q5, q4, i32, 16); 872b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #17", q5, q4, i32, 16); 873b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #63", q5, q4, i32, -1); 874b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #60", q5, q4, i32, -1); 875b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s64 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 876b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q10, q11, #1", q10, q11, i32, 1); 877b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q15, q14, #1", q15, q14, i32, -127); 878b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #0", q5, q4, i32, -127); 879b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #31", q5, q4, i32, 16); 880b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #28", q5, q4, i32, 16); 881b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #27", q5, q4, i32, 16); 882b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #26", q5, q4, i32, 16); 883b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #17", q5, q4, i32, 16); 884b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #31", q5, q4, i32, -1); 885b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #29", q5, q4, i32, -1); 886b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s32 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 887b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q9, q8, #1", q9, q8, i32, 1); 888b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q15, q14, #1", q15, q14, i32, -127); 889b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #0", q5, q4, i32, -127); 890b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q9, q8, #15", q9, q8, i32, 16); 891b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #12", q5, q4, i32, 16); 892b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #11", q5, q4, i32, 16); 893b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #10", q5, q4, i32, 16); 894b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #4", q5, q4, i32, 16); 895b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #15", q5, q4, i32, -1); 896b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #12", q5, q4, i32, -1); 897b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s16 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 898b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q0, q1, #1", q0, q1, i32, 1); 899b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q15, q14, #1", q15, q14, i32, -127); 900b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #0", q5, q4, i32, -127); 901b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #7", q5, q4, i32, 16); 902b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #4", q5, q4, i32, 16); 903b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #3", q5, q4, i32, 16); 904b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #2", q5, q4, i32, 16); 905b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #1", q5, q4, i32, 16); 906b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #7", q5, q4, i32, -1); 907b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #5", q5, q4, i32, -1); 908b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqshlu.s8 q5, q4, #2", q5, q4, i32, (1 << 31) + 2); 909b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 910b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQRSHL (register) ----\n"); 911b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 912b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 913b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 914b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 915b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 916b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 917b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 918b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 919b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 920b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 921b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 922b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 923b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 924b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 925b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 926b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 927b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 928b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 929b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 930b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 931b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 932b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 933b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 934b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 935b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 936b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 937b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 938b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 939b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 940b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 941b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 942b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 943b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 944b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 945b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 946b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.s8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 947b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 948b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 949b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 950b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 951b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 952b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 953b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 954b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 955b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 956b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 957b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 958b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 959b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 960b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 961b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 962b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 963b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 964b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 965b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 966b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 967b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 968b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 969b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 970b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 971b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 972b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 973b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 974b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u16 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 975b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u32 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 976b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 977b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 978b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 979b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 980b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrshl.u8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 981b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 982b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRSHL (register) ----\n"); 983b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 984b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 985b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 986b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 987b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 988b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 989b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 990b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 991b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 992b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 993b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 994b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 995b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 996b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 997b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 998b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 999b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 1000b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 1001b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 1002b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 1003b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 1004b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1005b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1006b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1007b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 1008b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 1009b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 1010b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 1011b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 1012b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 1013b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 1014b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 1015b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 1016b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 1017b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 1018b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.s8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1019b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 1020b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 1021b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 1022b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 1023b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 1024b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 1025b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 1026b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 1027b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 1028b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 1029b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 1030b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 1031b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 1032b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 1033b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 1034b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 1035b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 1036b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 1037b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 1038b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1039b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 1040b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 1041b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 1042b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1043b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1044b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 1045b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 1046b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 1047b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 1048b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 1049b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 1050b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 1051b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 1052b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrshl.u8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1053b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1054b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMAX (integer) ----\n"); 1055b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 1056b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 121); 1057b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 1058b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1059b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 1060b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 1061b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1062b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1063b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 1064b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1065b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1066b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 1067b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1068b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1069b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1070b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 1071b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 120); 1072b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 1073b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1074b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 1075b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1076b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1077b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1078b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1079b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1080b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1081b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1082b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1083b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1084b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1085b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1086b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMIN (integer) ----\n"); 1087b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 1088b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 121); 1089b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1090b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 1091b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 1092b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 1093b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1094b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1095b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 1096b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1097b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1098b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 1099b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1100b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1101b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1102b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 1103b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 120); 1104b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1105b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 1106b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 1107b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1108b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1109b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1110b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1111b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1112b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1113b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1114b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1115b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1116b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1117b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1118b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABD ----\n"); 1119b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 1120b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 1121b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, -120); 1122b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1123b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1124b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 1125b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 1126b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 1127b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1128b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1129b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 1130b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1131b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1132b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 1133b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1134b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1135b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1136b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 1137b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1138b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, -140, q2, i32, 120); 1139b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1140b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 1141b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 1142b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1143b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1144b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1145b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1146b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1147b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1148b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1149b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1150b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1151b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1152b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1153b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABA ----\n"); 1154b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 1155b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 1156b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1157b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1158b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1159b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 1160b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 1161b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 1162b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1163b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1164b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 1165b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1166b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1167b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 1168b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1169b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1170b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1171b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 1172b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1173b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1174b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1175b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 1176b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 1177b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1178b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1179b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1180b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1181b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1182b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 1183b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1184b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1185b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 1186b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaba.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1187b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1188b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABAL ----\n"); 1189b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 1190b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 121); 1191b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1192b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1193b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1194b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2); 1195b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 1196b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 1197b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1198b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1199b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3); 1200b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1201b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1202b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2); 1203b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1204b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1205b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.s32 q10, d31, d12", q10, d31, i32, 24, d12, i32, 120); 1206b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 1207b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1208b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1209b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1210b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 1211b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 1212b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1213b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1214b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1215b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1216b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1217b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1218b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1219b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1220b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1221b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabal.u32 q10, d11, d12", q10, d11, i32, 24, d12, i32, 120); 1222b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1223b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABDL ----\n"); 1224b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 1225b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 121); 1226b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1227b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1228b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1229b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2); 1230b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 1231b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 1232b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1233b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1234b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3); 1235b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1236b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1237b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2); 1238b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1239b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1240b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.s32 q10, d31, d12", q10, d31, i32, 24, d12, i32, 120); 1241b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 1242b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1243b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1244b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 1245b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 1246b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 1247b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1248b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1249b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 1250b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1251b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1252b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 1253b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1254b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1255b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 1256b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabdl.u32 q10, d11, d12", q10, d11, i32, 24, d12, i32, 120); 1257b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1258b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VTST ----\n"); 1259b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 1260b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.32 q3, q4, q5", q3, q4, i32, 140, q5, i32, 120); 1261b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.16 q6, q7, q8", q6, q7, i32, 120, q8, i32, 120); 1262b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.8 q9, q10, q12", q9, q10, i32, 140, q12, i32, 120); 1263b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1264b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.16 q0, q1, q2", q0, q1, i32, (1 << 14) + 1, q2, i32, (1 << 14) + 1); 1265b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1266b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, 2); 1267b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.16 q0, q1, q2", q0, q1, i32, (1 << 14) + 1, q2, i32, (1 << 14) + 1); 1268b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.32 q0, q1, q2", q0, q1, i32, 1, q2, i32, (1 << 31) + 2); 1269b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vtst.32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1270b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1271b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCEQ ----\n"); 1272b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 1273b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i32 q3, q4, q5", q3, q4, i32, 140, q5, i32, 120); 1274b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i16 q6, q7, q8", q6, q7, i32, 120, q8, i32, 120); 1275b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i8 q9, q10, q12", q9, q10, i32, 140, q12, i32, 120); 1276b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1277b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i16 q0, q1, q2", q0, q1, i32, (1 << 14) + 1, q2, i32, (1 << 14) + 1); 1278b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 1279b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, 2); 1280b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i16 q0, q1, q2", q0, q1, i32, 1, q2, i32, (1 << 14) + 1); 1281b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i32 q0, q1, q2", q0, q1, i32, 1, q2, i32, (1 << 31) + 2); 1282b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.i32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 1283b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1284b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLA ----\n"); 1285b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q0, q1, q2", q0, q1, i32, -24, q2, i32, 120); 1286b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q6, q7, q8", q6, q7, i32, 140, q8, i32, 120); 1287b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 1288b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q7, q1, q2", q7, q1, i32, 0x140, q2, i32, 0x120); 1289b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, -120); 1290b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i8 q10, q11, q12", q10, q11, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 1291b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 1292b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q14, q5, q9", q14, q5, i32, (1 << 14) + 1, q9, i32, (1 << 13) + 2); 1293b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1294b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i8 q10, q13, q12", q10, q13, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 1295b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 1296b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1297b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q10, q11, q15", q10, q11, i32, 24, q15, i32, -120); 1298b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1299b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLS ----\n"); 1300b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q0, q1, q2", q0, q1, i32, -24, q2, i32, 120); 1301b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 1302b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 1303b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1304b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i8 q10, q11, q12", q10, q11, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 1305b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 1306b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1307b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i8 q10, q13, q12", q10, q13, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 1308b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 1309b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1310b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q10, q11, q15", q10, q11, i32, -24, q15, i32, 120); 1311b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1312b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMUL ----\n"); 1313b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 1314b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 1315b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 1316b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 1317b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i8 q10, q11, q12", q10, q11, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 1318b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 1319b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1320b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i8 q10, q11, q12", q10, q11, i32, (1 << 25) + 0xfeb2, q12, i32, (1 << 13) + 0xdf); 1321b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q4, q5, q6", q4, q5, i32, (1 << 14) - 0xabcd, q6, i32, (1 << 13) + 2); 1322b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q7, q8, q9", q7, q8, i32, (1 << 31), q9, i32, 12); 1323b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i8 q10, q13, q12", q10, q13, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 1324b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 1325b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1326b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q10, q11, q15", q10, q11, i32, 24, q15, i32, 120); 1327b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 3, q2, i32, 3); 1328b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 12, q2, i8, 0x0f); 1329b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1330b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMUL (by scalar) ----\n"); 1331b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q0, q1, d4[0]", q0, q1, i32, 24, d4, i32, 120); 1332b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q15, q8, d7[1]", q15, q8, i32, 140, d4, i32, -120); 1333b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q10, q9, d7[3]", q10, q9, i32, 0x140, d7, i32, 0x120); 1334b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q4, q5, d6[2]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1335b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1336b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1337b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 1338b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1339b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1340b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1341b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLA (by scalar) ----\n"); 1342b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q0, q1, d4[0]", q0, q1, i32, 24, d4, i32, 120); 1343b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q15, q8, d7[1]", q15, q8, i32, 140, d7, i32, -120); 1344b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q10, q9, d7[3]", q10, q9, i32, 0x140, d7, i32, 0x120); 1345b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q4, q5, d6[2]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1346b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1347b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1348b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 1349b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1350b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmla.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1351b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1352b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLS (by scalar) ----\n"); 1353b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q0, q1, d4[0]", q0, q1, i32, 24, d4, i32, 120); 1354b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q15, q8, d7[1]", q15, q8, i32, 140, d7, i32, -120); 1355b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q10, q9, d7[3]", q10, q9, i32, 0x140, d7, i32, 0x120); 1356b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q4, q5, d6[2]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1357b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1358b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1359b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 1360b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1361b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmls.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1362b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1363b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMULL (by scalar) ----\n"); 1364b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q0, d2, d4[0]", q0, d2, i32, 24, d4, i32, 120); 1365b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q15, d8, d7[1]", q15, d8, i32, 140, d7, i32, -120); 1366b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 1367b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1368b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1369b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1370b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 1371b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1372b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1373b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q0, d1, d4[0]", q0, d1, i32, 24, d4, i32, 120); 1374b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q15, d8, d7[1]", q15, d8, i32, 140, d4, i32, -120); 1375b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 1376b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1377b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1378b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1379b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 1380b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1381b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1382b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1383b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLAL (by scalar) ----\n"); 1384b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q0, d2, d4[0]", q0, d2, i32, 24, d4, i32, 120); 1385b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q15, d8, d7[1]", q15, d8, i32, 140, d7, i32, -120); 1386b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 1387b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1388b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1389b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1390b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 1391b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1392b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1393b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q0, d1, d4[0]", q0, d1, i32, 24, d4, i32, 120); 1394b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q15, d8, d7[1]", q15, d8, i32, 140, d4, i32, -120); 1395b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 1396b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1397b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1398b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1399b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 1400b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1401b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1402b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1403b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLSL (by scalar) ----\n"); 1404b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q0, d2, d4[0]", q0, d2, i32, 24, d4, i32, 120); 1405b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q15, d8, d7[1]", q15, d8, i32, 140, d7, i32, -120); 1406b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 1407b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1408b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1409b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1410b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 1411b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1412b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1413b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q0, d1, d4[0]", q0, d1, i32, 24, d4, i32, 120); 1414b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q15, d8, d7[1]", q15, d8, i32, 140, d4, i32, -120); 1415b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 1416b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1417b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 1418b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1419b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 1420b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1421b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 1422b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1423b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRSHR ----\n"); 1424b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s8 q0, q1, #0", q0, q1, i32, -1); 1425b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s8 q0, q1, #1", q0, q1, i32, -1); 1426b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s16 q3, q4, #2", q3, q4, i32, -0x7c); 1427b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s32 q2, q5, #31", q2, q5, i32, -1); 1428b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s8 q6, q7, #7", q6, q7, i32, 0xffff); 1429b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s16 q8, q9, #12", q8, q9, i32, -10); 1430b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s32 q10, q11, #5", q10, q11, i32, 10234); 1431b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u8 q12, q13, #1", q12, q13, i32, -1); 1432b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u16 q14, q15, #11", q14, q15, i32, -1); 1433b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u32 q10, q11, #9", q10, q11, i32, 1000); 1434b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u8 q7, q13, #7", q7, q13, i32, -1); 1435b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 1436b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 1437b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u64 q0, q1, #42", q0, q1, i32, -1); 1438b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s64 q6, q7, #12", q6, q7, i32, 0xfac); 1439b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.u64 q8, q4, #9", q8, q4, i32, 13560); 1440b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrshr.s64 q9, q12, #11", q9, q12, i32, 98710); 1441b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1442b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRSRA ----\n"); 1443b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s8 q0, q1, #1", q0, q1, i32, -1); 1444b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s16 q3, q4, #2", q3, q4, i32, -0x7c); 1445b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s32 q2, q5, #31", q2, q5, i32, -1); 1446b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s8 q6, q7, #7", q6, q7, i32, 0xffff); 1447b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s16 q8, q9, #12", q8, q9, i32, -10); 1448b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s32 q10, q11, #5", q10, q11, i32, 10234); 1449b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u8 q12, q13, #1", q12, q13, i32, -1); 1450b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u16 q14, q15, #11", q14, q15, i32, -1); 1451b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u32 q10, q11, #9", q10, q11, i32, 1000); 1452b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u8 q7, q13, #7", q7, q13, i32, -1); 1453b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 1454b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 1455b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u64 q0, q1, #42", q0, q1, i32, -1); 1456b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s64 q6, q7, #12", q6, q7, i32, 0xfac); 1457b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.u64 q8, q4, #9", q8, q4, i32, 13560); 1458b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsra.s64 q9, q12, #11", q9, q12, i32, 98710); 1459b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1460b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSHR ----\n"); 1461b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s8 q0, q1, #0", q0, q1, i32, -1); 1462b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s8 q0, q1, #1", q0, q1, i32, -1); 1463b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s16 q3, q4, #2", q3, q4, i32, -0x7c); 1464b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s32 q2, q5, #31", q2, q5, i32, -1); 1465b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s8 q6, q7, #7", q6, q7, i32, 0xffff); 1466b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s16 q8, q9, #12", q8, q9, i32, -10); 1467b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s32 q10, q11, #5", q10, q11, i32, 10234); 1468b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u8 q12, q13, #1", q12, q13, i32, -1); 1469b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u16 q14, q15, #11", q14, q15, i32, -1); 1470b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u32 q10, q11, #9", q10, q11, i32, 1000); 1471b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u8 q7, q13, #7", q7, q13, i32, -1); 1472b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 1473b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 1474b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u64 q0, q1, #42", q0, q1, i32, -1); 1475b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s64 q6, q7, #12", q6, q7, i32, 0xfac); 1476b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.u64 q8, q4, #9", q8, q4, i32, 13560); 1477b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshr.s64 q9, q12, #11", q9, q12, i32, 98710); 1478b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1479b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSRA ----\n"); 1480b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s8 q0, q1, #1", q0, q1, i32, -1); 1481b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s16 q3, q4, #2", q3, q4, i32, -0x7c); 1482b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s32 q2, q5, #31", q2, q5, i32, -1); 1483b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s8 q6, q7, #7", q6, q7, i32, 0xffff); 1484b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s16 q8, q9, #12", q8, q9, i32, -10); 1485b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s32 q10, q11, #5", q10, q11, i32, 10234); 1486b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u8 q12, q13, #1", q12, q13, i32, -1); 1487b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u16 q14, q15, #11", q14, q15, i32, -1); 1488b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u32 q10, q11, #9", q10, q11, i32, 1000); 1489b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u8 q7, q13, #7", q7, q13, i32, -1); 1490b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 1491b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 1492b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u64 q0, q1, #42", q0, q1, i32, -1); 1493b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s64 q6, q7, #12", q6, q7, i32, 0xfac); 1494b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.u64 q8, q4, #9", q8, q4, i32, 13560); 1495b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsra.s64 q9, q12, #11", q9, q12, i32, 98710); 1496b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1497b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSRI ----\n"); 1498b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.16 q0, q1, #1", q0, q1, i32, -1); 1499b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.16 q3, q4, #2", q3, q4, i32, -0x7c); 1500b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.32 q2, q5, #31", q2, q5, i32, -1); 1501b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.8 q6, q7, #7", q6, q7, i32, 0xffff); 1502b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.16 q8, q9, #12", q8, q9, i32, -10); 1503b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.32 q10, q11, #5", q10, q11, i32, 10234); 1504b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.8 q12, q13, #1", q12, q13, i32, -1); 1505b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.16 q14, q15, #11", q14, q15, i32, -1); 1506b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.32 q10, q11, #9", q10, q11, i32, 1000); 1507b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.8 q7, q13, #7", q7, q13, i32, -1); 1508b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.16 q8, q1, #5", q8, q1, i32, 0xabcf); 1509b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.32 q12, q3, #15", q12, q3, i32, -0x1b0); 1510b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.64 q0, q1, #42", q0, q1, i32, -1); 1511b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.64 q6, q7, #12", q6, q7, i32, 0xfac); 1512b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.64 q8, q4, #9", q8, q4, i32, 13560); 1513b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsri.64 q9, q12, #11", q9, q12, i32, 98710); 1514b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1515b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMOVL ----\n"); 1516b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.u32 q0, d2", q0, d2, i32, 0x42); 1517b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.u16 q15, d2", q15, d2, i32, 0x42); 1518b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.u8 q3, d31", q0, d31, i32, 0x42); 1519b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.s32 q0, d2", q0, d2, i32, 0x42); 1520b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.s16 q15, d2", q15, d2, i32, 0x42); 1521b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.s8 q3, d31", q0, d31, i32, 0x42); 1522b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.u32 q0, d2", q0, d2, i8, 0xed); 1523b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.u16 q15, d2", q15, d2, i8, 0xed); 1524b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.u8 q3, d31", q0, d31, i8, 0xed); 1525b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.s32 q0, d2", q0, d2, i8, 0xed); 1526b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.s16 q15, d2", q15, d2, i8, 0xed); 1527b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vmovl.s8 q3, d31", q0, d31, i8, 0xed); 1528b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1529b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABS ----\n"); 1530b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s32 q0, q1", q0, q1, i32, 0x73); 1531b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s16 q15, q4", q15, q4, i32, 0x73); 1532b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s8 q8, q7", q8, q7, i32, 0x73); 1533b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s32 q0, q1", q0, q1, i32, 0xfe); 1534b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s16 q15, q4", q15, q4, i32, 0xef); 1535b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s8 q8, q7", q8, q7, i32, 0xde); 1536b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s32 q0, q1", q0, q1, i16, 0xfe0a); 1537b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s16 q15, q4", q15, q4, i16, 0xef0b); 1538b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.s8 q8, q7", q8, q7, i16, 0xde0c); 1539b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1540b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQABS ----\n"); 1541b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i32, 0x73); 1542b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i32, 1 << 31); 1543b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s16 q0, q1", q0, q1, i32, 1 << 31); 1544b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s8 q0, q1", q0, q1, i32, 1 << 31); 1545b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s16 q15, q4", q15, q4, i32, 0x73); 1546b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s8 q8, q7", q8, q7, i32, 0x73); 1547b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i32, 0xfe); 1548b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s16 q15, q4", q15, q4, i32, 0xef); 1549b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s8 q8, q7", q8, q7, i32, 0xde); 1550b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i16, 0xfe0a); 1551b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s16 q15, q4", q15, q4, i16, 0xef0b); 1552b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqabs.s8 q8, q7", q8, q7, i16, 0xde0c); 1553b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1554b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VADDW ----\n"); 1555b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1556b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0x12); 1557b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0x12); 1558b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1559b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1560b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1561b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1562b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0xe2); 1563b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0xe2); 1564b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1565b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1566b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1567b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1568b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VADDL ----\n"); 1569b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1570b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0x12); 1571b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0x12); 1572b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1573b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1574b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1575b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1576b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0xe2); 1577b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0xe2); 1578b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1579b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1580b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1581b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1582b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0x12); 1583b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i8, 0x99, d31, i8, 0x12); 1584b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1585b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1586b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1587b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1588b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0xe2); 1589b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i8, 0x93, d31, i8, 0xe2); 1590b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1591b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1592b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1593b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1594b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSUBW ----\n"); 1595b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1596b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0x12); 1597b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0x12); 1598b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1599b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1600b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 1601b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1602b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0xe2); 1603b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0xe2); 1604b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1605b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1606b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 1607b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1608b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSUBL ----\n"); 1609b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1610b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0x12); 1611b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0x12); 1612b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1613b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1614b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 1615b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1616b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0xe2); 1617b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0xe2); 1618b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1619b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1620b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 1621b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1622b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0x12); 1623b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i8, 0x99, d31, i8, 0x12); 1624b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1625b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1626b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 1627b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1628b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0xe2); 1629b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i8, 0x93, d31, i8, 0xe2); 1630b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1631b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1632b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 1633b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1634b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCEQ #0 ----\n"); 1635b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.i32 q0, q1, #0", q0, q1, i32, 0x21); 1636b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.i16 q2, q1, #0", q2, q1, i32, 0x21); 1637b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.i8 q10, q11, #0", q10, q11, i32, 0x21); 1638b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.i32 q0, q1, #0", q0, q1, i32, 0x0); 1639b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.i16 q2, q1, #0", q2, q1, i32, 0x0); 1640b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.i8 q10, q11, #0", q10, q11, i32, 0x0); 1641b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1642b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGT #0 ----\n"); 1643b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s32 q0, q1, #0", q0, q1, i32, 0x21); 1644b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s16 q2, q1, #0", q2, q1, i32, 0x21); 1645b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s8 q10, q11, #0", q10, q11, i32, 0x21); 1646b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s32 q0, q1, #0", q0, q1, i32, 0x0); 1647b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s16 q2, q1, #0", q2, q1, i32, 0x0); 1648b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s8 q10, q11, #0", q10, q11, i32, 0x0); 1649b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s32 q0, q1, #0", q0, q1, i8, 0xef); 1650b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s16 q2, q1, #0", q2, q1, i8, 0xed); 1651b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.s8 q10, q11, #0", q10, q11, i8, 0xae); 1652b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1653b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGE #0 ----\n"); 1654b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i32, 0x21); 1655b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i32, 0x21); 1656b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i32, 0x21); 1657b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i32, 0x0); 1658b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i32, 0x0); 1659b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i32, 0x0); 1660b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i8, 0xef); 1661b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i8, 0xed); 1662b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i8, 0xae); 1663b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i32, 0xef); 1664b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i32, 0xed); 1665b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i32, 0xae); 1666b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1667b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCLE #0 ----\n"); 1668b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s32 q0, q1, #0", q0, q1, i32, 0x21); 1669b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s16 q2, q1, #0", q2, q1, i32, 0x21); 1670b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s8 q10, q11, #0", q10, q11, i32, 0x21); 1671b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s32 q0, q1, #0", q0, q1, i32, 0x0); 1672b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s16 q2, q1, #0", q2, q1, i32, 0x0); 1673b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s8 q10, q11, #0", q10, q11, i32, 0x0); 1674b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s32 q0, q1, #0", q0, q1, i8, 0xef); 1675b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s16 q2, q1, #0", q2, q1, i8, 0xed); 1676b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.s8 q10, q11, #0", q10, q11, i8, 0xae); 1677b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1678b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCLT #0 ----\n"); 1679b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i32, 0x21); 1680b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i32, 0x21); 1681b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i32, 0x21); 1682b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i32, 0x0); 1683b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i32, 0x0); 1684b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i32, 0x0); 1685b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i8, 0xef); 1686b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i8, 0xed); 1687b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i8, 0xae); 1688b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i32, 0xef); 1689b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i32, 0xed); 1690b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i32, 0xae); 1691b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1692b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCNT ----\n"); 1693b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcnt.8 q0, q1", q0, q1, i32, 0xac3d25eb); 1694b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcnt.8 q11, q14", q11, q14, i32, 0xac3d25eb); 1695b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcnt.8 q6, q2", q6, q2, i32, 0xad0eb); 1696b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1697b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCLS ----\n"); 1698b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s8 q0, q1", q0, q1, i32, 0x21); 1699b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s8 q10, q15", q10, q15, i8, 0x82); 1700b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s16 q0, q1", q0, q1, i32, 0x21); 1701b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s16 q15, q10", q15, q10, i8, 0x82); 1702b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s32 q6, q1", q6, q1, i32, 0x21); 1703b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s32 q10, q5", q10, q5, i8, 0x82); 1704b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s8 q2, q4", q2, q4, i8, 0xff); 1705b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s16 q2, q4", q2, q4, i8, 0xff); 1706b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s32 q2, q4", q2, q4, i8, 0xff); 1707b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s8 q2, q4", q2, q4, i16, 0xffef); 1708b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s16 q2, q4", q2, q4, i16, 0xffef); 1709b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s32 q2, q4", q2, q4, i16, 0xffef); 1710b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s8 q2, q4", q2, q4, i8, 0x00); 1711b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s16 q2, q4", q2, q4, i8, 0x00); 1712b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s32 q2, q4", q2, q4, i8, 0x00); 1713b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s8 q2, q4", q2, q4, i16, 0x00ef); 1714b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s16 q2, q4", q2, q4, i16, 0x00ef); 1715b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcls.s32 q2, q4", q2, q4, i16, 0x00ef); 1716b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1717b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCLZ ----\n"); 1718b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i8 q0, q1", q0, q1, i32, 0x21); 1719b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i8 q10, q15", q10, q15, i8, 0x82); 1720b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i16 q0, q1", q0, q1, i32, 0x21); 1721b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i16 q15, q10", q15, q10, i8, 0x82); 1722b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i32 q6, q1", q6, q1, i32, 0x21); 1723b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i32 q10, q5", q10, q5, i8, 0x82); 1724b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i8 q2, q4", q2, q4, i8, 0xff); 1725b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i16 q2, q4", q2, q4, i8, 0xff); 1726b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i32 q2, q4", q2, q4, i8, 0xff); 1727b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i8 q2, q4", q2, q4, i16, 0xffef); 1728b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i16 q2, q4", q2, q4, i16, 0xffef); 1729b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i32 q2, q4", q2, q4, i16, 0xffef); 1730b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i8 q2, q4", q2, q4, i8, 0x00); 1731b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i16 q2, q4", q2, q4, i8, 0x00); 1732b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i32 q2, q4", q2, q4, i8, 0x00); 1733b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i8 q2, q4", q2, q4, i16, 0x00ef); 1734b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i16 q2, q4", q2, q4, i16, 0x00ef); 1735b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclz.i32 q2, q4", q2, q4, i16, 0x00ef); 1736b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1737b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSLI ----\n"); 1738b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.16 q0, q1, #1", q0, q1, i32, -1); 1739b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.16 q3, q4, #2", q3, q4, i32, -0x7c); 1740b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.32 q2, q5, #31", q2, q5, i32, -1); 1741b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.8 q6, q7, #7", q6, q7, i32, 0xffff); 1742b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.16 q8, q9, #12", q8, q9, i32, -10); 1743b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.32 q10, q11, #5", q10, q11, i32, 10234); 1744b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.8 q12, q13, #1", q12, q13, i32, -1); 1745b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.16 q14, q15, #11", q14, q15, i32, -1); 1746b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.32 q10, q11, #9", q10, q11, i32, 1000); 1747b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.8 q7, q13, #7", q7, q13, i32, -1); 1748b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.16 q8, q1, #1", q8, q1, i32, 0xabcf); 1749b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.32 q12, q3, #15", q12, q3, i32, -0x1b0); 1750b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.64 q0, q1, #42", q0, q1, i32, -1); 1751b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.64 q6, q7, #12", q6, q7, i32, 0xfac); 1752b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.64 q8, q4, #9", q8, q4, i32, 13560); 1753b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vsli.64 q9, q12, #11", q9, q12, i32, 98710); 1754b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1755b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VPADDL ----\n"); 1756b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u32 q0, q1", q0, q1, i32, 24); 1757b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u32 q0, q1", q0, q1, i32, 140); 1758b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u16 q0, q1", q0, q1, i32, 140); 1759b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u8 q0, q1", q0, q1, i32, 140); 1760b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u8 q0, q1", q0, q1, i32, (1 << 31) + 1); 1761b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u16 q0, q1", q0, q1, i32, (1 << 31) + 1); 1762b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u32 q0, q1", q0, q1, i32, (1 << 31) + 1); 1763b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.u32 q10, q11", q10, q11, i32, 24); 1764b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s32 q0, q1", q0, q1, i32, 24); 1765b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s32 q0, q1", q0, q1, i32, 140); 1766b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s16 q0, q1", q0, q1, i32, 140); 1767b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s8 q0, q1", q0, q1, i32, 140); 1768b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s8 q0, q1", q0, q1, i32, (1 << 31) + 1); 1769b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s16 q0, q1", q0, q1, i32, (1 << 31) + 1); 1770b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s32 q0, q1", q0, q1, i32, (1 << 31) + 1); 1771b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpaddl.s32 q10, q11", q10, q11, i32, 24); 1772b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1773b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VPADAL ----\n"); 1774b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u32 q0, q1", q0, q1, i32, 24); 1775b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u32 q0, q1", q0, q1, i32, 140); 1776b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u16 q0, q1", q0, q1, i32, 140); 1777b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u8 q0, q1", q0, q1, i8, 140); 1778b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u8 q0, q1", q0, q1, i32, (1 << 31) + 1); 1779b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u16 q0, q1", q0, q1, i32, (1 << 31) + 1); 1780b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u32 q0, q1", q0, q1, i32, (1 << 31) + 1); 1781b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.u32 q10, q11", q10, q11, i32, 24); 1782b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s32 q0, q1", q0, q1, i32, 24); 1783b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s32 q0, q1", q0, q1, i32, 140); 1784b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s16 q0, q1", q0, q1, i32, 140); 1785b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s8 q0, q1", q0, q1, i8, 140); 1786b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s8 q0, q1", q0, q1, i32, (1 << 31) + 1); 1787b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s16 q0, q1", q0, q1, i32, (1 << 31) + 1); 1788b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s32 q0, q1", q0, q1, i32, (1 << 31) + 1); 1789b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vpadal.s32 q10, q11", q10, q11, i32, 24); 1790b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1791b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VZIP ----\n"); 1792b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vzip.32 q0, q1", q0, i8, 0x12, q1, i8, 0x34); 1793b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vzip.16 q1, q0", q0, i8, 0x12, q1, i8, 0x34); 1794b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vzip.8 q10, q11", q10, i8, 0x12, q11, i8, 0x34); 1795b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vzip.32 q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1796b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vzip.16 q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1797b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vzip.8 q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 1798b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1799b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VUZP ----\n"); 1800b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vuzp.32 q0, q1", q0, i8, 0x12, q1, i8, 0x34); 1801b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vuzp.16 q1, q0", q0, i8, 0x12, q1, i8, 0x34); 1802b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vuzp.8 q10, q11", q10, i8, 0x12, q11, i8, 0x34); 1803b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vuzp.32 q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1804b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vuzp.16 q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1805b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vuzp.8 q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 1806b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1807b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VTRN ----\n"); 1808b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vtrn.32 q0, q1", q0, i8, 0x12, q1, i8, 0x34); 1809b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vtrn.16 q1, q0", q0, i8, 0x12, q1, i8, 0x34); 1810b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vtrn.8 q10, q11", q10, i8, 0x12, q11, i8, 0x34); 1811b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vtrn.32 q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1812b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vtrn.16 q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1813b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vtrn.8 q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 1814b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1815b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSWP ----\n"); 1816b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vswp q0, q1", q0, i8, 0x12, q1, i8, 0x34); 1817b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vswp q1, q0", q0, i8, 0x12, q1, i8, 0x34); 1818b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vswp q10, q11", q10, i8, 0x12, q11, i8, 0x34); 1819b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vswp q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1820b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vswp q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 1821b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_dual("vswp q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 1822b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1823b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VDUP ----\n"); 1824b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.8 q2, d2[0]", q2, d2, i32, 0xabc4657); 1825b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.8 q3, d3[2]", q3, d3, i32, 0x7a1b3); 1826b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.8 q1, d0[7]", q1, d0, i32, 0x713aaa); 1827b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.8 q0, d4[3]", q0, d4, i32, 0xaa713); 1828b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.8 q4, d28[4]", q4, d28, i32, 0x7b1c3); 1829b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.16 q7, d19[3]", q7, d19, i32, 0x713ffff); 1830b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.16 q15, d31[0]", q15, d31, i32, 0x7f00fa); 1831b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.16 q6, d2[0]", q6, d2, i32, 0xffabcde); 1832b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.16 q8, d22[3]", q8, d22, i32, 0x713); 1833b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.16 q9, d2[0]", q9, d2, i32, 0x713); 1834b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.32 q10, d17[1]", q10, d17, i32, 0x713); 1835b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.32 q15, d11[0]", q15, d11, i32, 0x3); 1836b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.32 q10, d29[1]", q10, d29, i32, 0xf00000aa); 1837b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.32 q12, d0[1]", q12, d0, i32, 0xf); 1838b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vdup.32 q13, d13[0]", q13, d13, i32, -1); 1839b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1840b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMULL ----\n"); 1841b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q0, d1, d2", q0, d1, i32, 24, d2, i32, 120); 1842b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 1843b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 1844b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1845b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1846b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1847b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 1848b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1849b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1850b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 1851b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 1852b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 1853b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 1854b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 1855b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1856b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMULL (by scalar) ----\n"); 1857b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q0, d1, d7[0]", q0, d1, i32, 24, d7, i32, 120); 1858b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q6, d7, d6[0]", q6, d7, i32, 140, d6, i32, -120); 1859b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q9, d11, d7[2]", q9, d11, i32, 0x140, d7, i32, 0x120); 1860b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1861b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 1862b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q4, d5, d6[1]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 1863b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q7, d8, d3[0]", q7, d8, i32, (1 << 31), d3, i32, 12); 1864b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1865b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 1866b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q10, d11, d15[1]", q10, d11, i32, 24, d15, i32, 120); 1867b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q10, d30, d1[0]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 1868b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q10, d30, d1[1]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 1869b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s32 q10, d30, d1[1]", q10, d30, i32, 1 << 30, d1, i32, 1 << 31); 1870b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmull.s16 q10, d30, d1[3]", q10, d30, i32, 1 << 31, d1, i32, 1 << 30); 1871b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1872b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMLSL ----\n"); 1873b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q0, d1, d2", q0, d1, i32, 24, d2, i32, 120); 1874b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 1875b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 1876b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1877b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1878b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1879b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 1880b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1881b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1882b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 1883b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 1884b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 1885b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 1886b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 1887b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1888b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMLSL (by scalar) ----\n"); 1889b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q0, d1, d7[0]", q0, d1, i32, 24, d7, i32, 120); 1890b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q6, d7, d6[0]", q6, d7, i32, 140, d6, i32, -120); 1891b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q9, d11, d7[2]", q9, d11, i32, 0x140, d7, i32, 0x120); 1892b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1893b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 1894b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6[1]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 1895b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d3[0]", q7, d8, i32, (1 << 31), d3, i32, 12); 1896b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1897b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 1898b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q10, d11, d15[1]", q10, d11, i32, 24, d15, i32, 120); 1899b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d1[0]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 1900b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d1[1]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 1901b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d1[1]", q10, d30, i32, 1 << 30, d1, i32, 1 << 31); 1902b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d1[3]", q10, d30, i32, 1 << 31, d1, i32, 1 << 30); 1903b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1904b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMLAL ----\n"); 1905b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q0, d1, d2", q0, d1, i32, 24, d2, i32, 120); 1906b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 1907b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 1908b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1909b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1910b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 1911b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 1912b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1913b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1914b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 1915b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 1916b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 1917b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 1918b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 1919b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1920b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMLAL (by scalar) ----\n"); 1921b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q0, d1, d7[0]", q0, d1, i32, 24, d7, i32, 120); 1922b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q6, d7, d6[0]", q6, d7, i32, 140, d6, i32, -120); 1923b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q9, d11, d7[2]", q9, d11, i32, 0x140, d7, i32, 0x120); 1924b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1925b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 1926b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6[1]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 1927b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q7, d8, d3[0]", q7, d8, i32, (1 << 31), d3, i32, 12); 1928b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1929b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 1930b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q10, d11, d15[1]", q10, d11, i32, 24, d15, i32, 120); 1931b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q10, d30, d1[0]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 1932b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q10, d30, d1[1]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 1933b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s32 q10, d30, d1[1]", q10, d30, i32, 1 << 30, d1, i32, 1 << 31); 1934b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmlal.s16 q10, d30, d1[3]", q10, d30, i32, 1 << 31, d1, i32, 1 << 30); 1935b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1936b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMULH ----\n"); 1937b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 1938b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 1939b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 1940b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 1941b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1942b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) - 0xabcd, q6, i32, (1 << 13) + 2); 1943b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31), q9, i32, 12); 1944b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 1945b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 1946b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q10, q11, q15", q10, q11, i32, 24, q15, i32, 120); 1947b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 1948b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 1949b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 30, q15, i32, 1 << 31); 1950b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 30); 1951b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1952b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQDMULH (by scalar) ----\n"); 1953b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q0, q1, d6[0]", q0, q1, i32, 24, d6, i32, 120); 1954b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q6, q7, d1[1]", q6, q7, i32, 140, d1, i32, -120); 1955b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q9, q11, d7[0]", q9, q11, i32, 0x140, d7, i32, 0x120); 1956b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 1957b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q7, q8, d9[1]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1958b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q4, q5, d6[1]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 1959b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31), d9, i32, 12); 1960b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q4, q5, d6[2]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 1961b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 1962b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q10, q11, d15[0]", q10, q11, i32, 24, d15, i32, 120); 1963b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 31); 1964b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q10, q14, d7[3]", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 1965b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 30, d15, i32, 1 << 31); 1966b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqdmulh.s16 q10, q14, d7[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 30); 1967b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1968b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSHL (immediate) ----\n"); 1969b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i64 q0, q1, #1", q0, q1, i32, 24); 1970b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i64 q5, q2, #1", q5, q2, i32, (1 << 30)); 1971b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i64 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 1972b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i64 q11, q2, #12", q11, q2, i32, -1); 1973b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i64 q15, q12, #63", q15, q12, i32, 5); 1974b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i64 q5, q12, #62", q5, q12, i32, (1 << 31) + 1); 1975b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i32 q0, q1, #1", q0, q1, i32, 24); 1976b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i32 q5, q2, #1", q5, q2, i32, (1 << 30)); 1977b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i32 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 1978b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i32 q11, q2, #12", q11, q2, i32, -1); 1979b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i32 q15, q12, #20", q15, q12, i32, 5); 1980b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i32 q5, q12, #30", q5, q12, i32, (1 << 31) + 1); 1981b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i16 q0, q1, #1", q0, q1, i16, 24); 1982b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i16 q5, q2, #1", q5, q2, i32, (1 << 30)); 1983b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i16 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 1984b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i16 q11, q2, #12", q11, q2, i16, -1); 1985b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i16 q15, q12, #3", q15, q12, i16, 5); 1986b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i16 q5, q12, #14", q5, q12, i32, (1 << 31) + 1); 1987b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i8 q0, q1, #1", q0, q1, i8, 24); 1988b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i8 q5, q2, #1", q5, q2, i32, (1 << 30)); 1989b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i8 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 1990b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i8 q11, q2, #7", q11, q2, i8, -1); 1991b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i8 q15, q12, #3", q15, q12, i8, 5); 1992b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshl.i8 q5, q12, #6", q5, q12, i32, (1 << 31) + 1); 1993b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 1994b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VNEG ----\n"); 1995b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s32 q0, q1", q0, q1, i32, 0x73); 1996b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s16 q15, q4", q15, q4, i32, 0x73); 1997b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s8 q8, q7", q8, q7, i32, 0x73); 1998b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s32 q0, q1", q0, q1, i32, 0xfe); 1999b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s16 q15, q4", q15, q4, i32, 0xef); 2000b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s8 q8, q7", q8, q7, i32, 0xde); 2001b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s32 q0, q1", q0, q1, i16, 0xfe0a); 2002b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s16 q15, q4", q15, q4, i16, 0xef0b); 2003b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.s8 q8, q7", q8, q7, i16, 0xde0c); 2004b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2005b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQNEG ----\n"); 2006b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i32, 0x73); 2007b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i32, 1 << 31); 2008b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s16 q0, q1", q0, q1, i32, 1 << 31); 2009b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s8 q0, q1", q0, q1, i32, 1 << 31); 2010b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s16 q15, q4", q15, q4, i32, 0x73); 2011b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s8 q8, q7", q8, q7, i32, 0x73); 2012b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i32, 0xfe); 2013b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s16 q15, q4", q15, q4, i32, 0xef); 2014b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s8 q8, q7", q8, q7, i32, 0xde); 2015b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i16, 0xfe0a); 2016b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s16 q15, q4", q15, q4, i16, 0xef0b); 2017b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un_q("vqneg.s8 q8, q7", q8, q7, i16, 0xde0c); 2018b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2019b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VREV ----\n"); 2020b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrev64.8 q0, q1", q0, q1, i32, 0xaabbccdd); 2021b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrev64.16 q10, q15", q10, q15, i32, 0xaabbccdd); 2022b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrev64.32 q1, q14", q1, q14, i32, 0xaabbccdd); 2023b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrev32.8 q0, q1", q0, q1, i32, 0xaabbccdd); 2024b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrev32.16 q10, q15", q10, q15, i32, 0xaabbccdd); 2025b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrev16.8 q0, q1", q0, q1, i32, 0xaabbccdd); 2026b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2027b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSHLL ----\n"); 2028b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s32 q0, d1, #1", q0, d1, i32, 24); 2029b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s32 q5, d2, #1", q5, d2, i32, (1 << 30)); 2030b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s32 q9, d12, #2", q9, d12, i32, (1 << 31) + 2); 2031b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u32 q11, d2, #12", q11, d2, i32, -1); 2032b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u32 q15, d12, #20", q15, d12, i32, 5); 2033b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u32 q5, d22, #30", q5, d22, i32, (1 << 31) + 1); 2034b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s16 q0, d1, #1", q0, d1, i16, 24); 2035b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s16 q5, d2, #1", q5, d2, i32, (1 << 30)); 2036b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s16 q9, d12, #2", q9, d12, i32, (1 << 31) + 2); 2037b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u16 q11, d2, #12", q11, d2, i16, -1); 2038b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u16 q15, d22, #3", q15, d22, i16, 5); 2039b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u16 q5, d12, #14", q5, d12, i32, (1 << 31) + 1); 2040b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s8 q0, d1, #1", q0, d1, i8, 24); 2041b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s8 q5, d2, #1", q5, d2, i32, (1 << 30)); 2042b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.s8 q9, d12, #2", q9, d12, i32, (1 << 31) + 2); 2043b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u8 q11, d2, #7", q11, d2, i8, -1); 2044b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u8 q15, d19, #3", q15, d19, i8, 5); 2045b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.u8 q5, d12, #6", q5, d12, i32, (1 << 31) + 1); 2046b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2047b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSHLL (max shift) ----\n"); 2048b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i32 q0, d1, #32", q0, d1, i32, 24); 2049b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i32 q5, d2, #32", q5, d2, i32, (1 << 30)); 2050b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i32 q11, d2, #32", q11, d2, i32, -1); 2051b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i32 q15, d12, #32", q15, d12, i32, 5); 2052b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i16 q0, d1, #16", q0, d1, i16, 24); 2053b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i16 q5, d2, #16", q5, d2, i32, (1 << 30)); 2054b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i16 q11, d2, #16", q11, d2, i16, -1); 2055b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i16 q15, d22, #16", q15, d22, i16, 5); 2056b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i8 q0, d1, #8", q0, d1, i8, 24); 2057b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i8 q5, d2, #8", q5, d2, i32, (1 << 30)); 2058b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i8 q11, d2, #8", q11, d2, i8, -1); 2059b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vshll.i8 q15, d19, #8", q15, d19, i8, 5); 2060b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2061b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMULL ----\n"); 2062b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2063b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2064b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2065b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2066b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2067b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2068b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2069b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2070b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2071b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2072b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2073b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2074b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2075b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2076b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2077b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2078b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2079b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2080b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2081b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2082b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2083b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2084b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2085b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2086b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2087b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2088b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2089b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2090b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 2091b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 2092b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2093b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 2094b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2095b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 2096b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2097b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 2098b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 2099b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 2100b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2101b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 2102b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2103b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 2104b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2105b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.u32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 2106b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q9, d11, d12", q9, d11, i32, 0x1a4b0c, d12, i32, 0xd1e2f0); 2107b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2108b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q4, d15, d26", q4, d15, i32, (1 << 14) - 0xabcd, d26, i32, (1 << 13) + 0xaa2); 2109b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q14, d5, d6", q14, d5, i32, (1 << 28) + 0xefe, d6, i32, (1 << 13) + 0x2bbc2d); 2110b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2111b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q10, d27, d31", q10, d27, i32, 1 << 31, d31, i32, 1 << 30); 2112b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2113b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2114b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmull.p8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2115b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2116b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLAL ----\n"); 2117b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2118b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2119b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2120b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2121b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2122b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2123b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2124b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2125b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2126b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2127b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2128b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2129b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2130b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2131b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2132b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2133b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2134b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2135b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2136b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2137b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2138b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2139b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2140b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2141b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2142b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2143b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2144b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2145b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 2146b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 2147b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2148b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 2149b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2150b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 2151b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2152b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 2153b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 2154b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 2155b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2156b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 2157b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2158b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 2159b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2160b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlal.u32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 2161b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2162b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLSL ----\n"); 2163b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2164b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2165b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2166b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2167b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2168b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2169b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2170b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2171b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2172b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2173b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2174b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2175b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2176b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2177b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2178b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2179b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2180b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2181b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2182b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2183b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2184b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 2185b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 2186b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2187b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 2188b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 2189b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2190b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 2191b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 2192b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 2193b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2194b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 2195b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2196b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 2197b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2198b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 2199b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 2200b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 2201b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2202b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 2203b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2204b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 2205b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 2206b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmlsl.u32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 2207b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2208b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQRDMULH ----\n"); 2209b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 2210b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 2211b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 2212b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 2213b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 2214b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) - 0xabcd, q6, i32, (1 << 13) + 2); 2215b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31), q9, i32, 12); 2216b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 2217b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 2218b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q11, q15", q10, q11, i32, 24, q15, i32, 120); 2219b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 2220b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, (1 << 31) + 1); 2221b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 2222b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 30, q15, i32, 1 << 31); 2223b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 30); 2224b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2225b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VQRDMULH (by scalar) ----\n"); 2226b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q0, q1, d6[0]", q0, q1, i32, 24, d6, i32, 120); 2227b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q6, q7, d1[1]", q6, q7, i32, 140, d1, i32, -120); 2228b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q9, q11, d7[0]", q9, q11, i32, 0x140, d7, i32, 0x120); 2229b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 2230b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q7, q8, d9[1]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2231b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q4, q5, d6[1]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 2232b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31), d9, i32, 12); 2233b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q4, q5, d6[2]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 2234b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 2235b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q11, d15[0]", q10, q11, i32, 24, d15, i32, 120); 2236b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 31); 2237b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q10, q14, d7[3]", q10, q14, i32, 1 << 31, q15, i32, (1 << 31) + 1); 2238b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 30, d15, i32, 1 << 31); 2239b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_q("vqrdmulh.s16 q10, q14, d7[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 30); 2240b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2241b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VADD (fp) ----\n"); 2242b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2243b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2244b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2245b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2246b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2247b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2248b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2249b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2250b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2251b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2252b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2253b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2254b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2255b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2256b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2257b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2258b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2259b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2260b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2261b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2262b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2263b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2264b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2265b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2266b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2267b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2268b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2269b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2270b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2271b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2272b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2273b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2274b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2275b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2276b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2277b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2278b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2279b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2280b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2281b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2282b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2283b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VSUB (fp) ----\n"); 2284b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2285b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2286b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2287b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2288b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2289b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q3, q4, q5", q3, q4, i32, f2u(24.89), q5, i32, f2u(1346)); 2290b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2291b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2292b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2293b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2294b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2295b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2296b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2297b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2298b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2299b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2300b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2301b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2302b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2303b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2304b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2305b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2306b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2307b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2308b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2309b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2310b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2311b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2312b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2313b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2314b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2315b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2316b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2317b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2318b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2319b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2320b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2321b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2322b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2323b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2324b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2325b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABD (fp) ----\n"); 2326b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2327b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2328b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2329b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2330b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2331b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2332b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2333b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2334b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2335b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2336b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2337b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2338b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2339b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2340b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2341b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2342b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2343b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2344b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2345b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2346b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2347b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2348b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2349b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2350b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2351b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2352b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2353b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2354b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2355b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2356b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2357b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2358b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2359b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2360b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2361b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2362b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2363b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2364b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2365b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2366b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2367b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMUL (fp) ----\n"); 2368b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2369b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2370b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2371b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2372b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2373b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2374b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2375b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2376b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2377b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2378b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2379b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2380b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2381b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2382b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2383b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2384b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2385b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2386b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2387b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2388b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2389b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2390b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2391b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2392b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2393b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2394b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2395b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2396b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2397b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2398b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2399b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2400b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2401b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2402b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2403b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2404b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2405b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2406b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2407b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2408b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2409b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMUL (fp by scalar) ----\n"); 2410b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d4[0]", q0, q1, i32, f2u(24), d4, i32, f2u(120)); 2411b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q15, q8, d7[1]", q15, q8, i32, f2u(140), d7, i32, f2u(-120)); 2412b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 2413b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 2414b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 2415b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e22), d1, i32, f2u(1e-19)); 2416b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e12), d1, i32, f2u(1e11)); 2417b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(NAN)); 2418b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(1.0)); 2419b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(0.0)); 2420b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(INFINITY)); 2421b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(-INFINITY)); 2422b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(NAN)); 2423b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(1.0)); 2424b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(0.0)); 2425b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(INFINITY)); 2426b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(-INFINITY)); 2427b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(NAN)); 2428b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(1.0)); 2429b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(0.0)); 2430b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY)); 2431b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY)); 2432b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(NAN)); 2433b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(1.0)); 2434b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(0.0)); 2435b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY)); 2436b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmul.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY)); 2437b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2438b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLA (fp) ----\n"); 2439b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2440b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2441b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2442b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2443b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2444b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2445b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2446b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2447b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2448b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2449b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2450b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2451b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2452b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2453b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2454b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2455b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2456b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2457b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2458b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2459b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2460b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2461b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2462b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2463b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2464b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2465b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2466b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2467b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2468b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2469b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2470b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2471b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2472b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2473b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2474b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2475b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2476b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2477b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2478b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2479b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2480b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLA (fp by scalar) ----\n"); 2481b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d4[0]", q0, q1, i32, f2u(24), d4, i32, f2u(120)); 2482b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q15, q8, d7[1]", q15, q8, i32, f2u(140), d7, i32, f2u(-120)); 2483b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 2484b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 2485b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 2486b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e22), d1, i32, f2u(1e-19)); 2487b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e12), d1, i32, f2u(1e11)); 2488b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(NAN)); 2489b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(1.0)); 2490b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(0.0)); 2491b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(INFINITY)); 2492b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(-INFINITY)); 2493b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(NAN)); 2494b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(1.0)); 2495b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(0.0)); 2496b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(INFINITY)); 2497b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(-INFINITY)); 2498b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(NAN)); 2499b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(1.0)); 2500b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(0.0)); 2501b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY)); 2502b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY)); 2503b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(NAN)); 2504b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(1.0)); 2505b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(0.0)); 2506b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY)); 2507b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY)); 2508b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2509b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLS (fp) ----\n"); 2510b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2511b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2512b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2513b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2514b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2515b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2516b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2517b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2518b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2519b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2520b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2521b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2522b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2523b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2524b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2525b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2526b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2527b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2528b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2529b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2530b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2531b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2532b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2533b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2534b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2535b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2536b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2537b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2538b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2539b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2540b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2541b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2542b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2543b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2544b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2545b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2546b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2547b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2548b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2549b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2550b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2551b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMLS (fp by scalar) ----\n"); 2552b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d4[0]", q0, q1, i32, f2u(24), d4, i32, f2u(120)); 2553b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q15, q8, d7[1]", q15, q8, i32, f2u(140), d7, i32, f2u(-120)); 2554b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 2555b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 2556b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 2557b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e22), d1, i32, f2u(1e-19)); 2558b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e12), d1, i32, f2u(1e11)); 2559b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(NAN)); 2560b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(1.0)); 2561b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(0.0)); 2562b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(INFINITY)); 2563b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(-INFINITY)); 2564b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(NAN)); 2565b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(1.0)); 2566b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(0.0)); 2567b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(INFINITY)); 2568b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(-INFINITY)); 2569b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(NAN)); 2570b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(1.0)); 2571b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(0.0)); 2572b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY)); 2573b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY)); 2574b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(NAN)); 2575b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(1.0)); 2576b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(0.0)); 2577b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY)); 2578b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY)); 2579b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2580b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCVT (integer <-> fp) ----\n"); 2581b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(3.2)); 2582b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q10, q11", q10, q11, i32, f2u(3e22)); 2583b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q15, q4", q15, q4, i32, f2u(3e9)); 2584b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 2585b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 2586b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2587b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2588b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(3.2)); 2589b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q10, q11", q10, q11, i32, f2u(3e22)); 2590b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q15, q4", q15, q4, i32, f2u(3e9)); 2591b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 2592b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 2593b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2594b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2595b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q1", q0, q1, i32, 7); 2596b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q10, q11", q10, q11, i32, 1 << 31); 2597b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q1", q0, q1, i32, (1U << 31) + 1); 2598b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q1", q0, q1, i32, (1U << 31) - 1); 2599b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q14", q0, q14, i32, 0x30a0bcef); 2600b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q1", q0, q1, i32, 7); 2601b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q10, q11", q10, q11, i32, 1 << 31); 2602b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q1", q0, q1, i32, (1U << 31) + 1); 2603b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q1", q0, q1, i32, (1U << 31) - 1); 2604b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q14", q0, q14, i32, 0x30a0bcef); 2605b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(NAN)); 2606b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(0.0)); 2607b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 2608b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 2609b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(NAN)); 2610b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(0.0)); 2611b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 2612b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 2613b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2614b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCVT (fixed <-> fp) ----\n"); 2615b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(3.2)); 2616b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q10, q11, #1", q10, q11, i32, f2u(3e22)); 2617b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q15, q4, #32", q15, q4, i32, f2u(3e9)); 2618b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q15, q4, #7", q15, q4, i32, f2u(-0.5)); 2619b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q15, q4, #4", q15, q4, i32, f2u(-7.1)); 2620b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q12, q8, #3", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2621b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q12, q8, #3", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2622b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1, #5", q0, q1, i32, f2u(3.2)); 2623b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q10, q11, #1", q10, q11, i32, f2u(3e22)); 2624b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q15, q4, #8", q15, q4, i32, f2u(3e9)); 2625b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q15, q4, #2", q15, q4, i32, f2u(-0.5)); 2626b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q15, q4, #1", q15, q4, i32, f2u(-7.1)); 2627b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q12, q8, #2", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2628b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q12, q8, #2", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2629b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q1, #5", q0, q1, i32, 7); 2630b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q10, q11, #9", q10, q11, i32, 1 << 31); 2631b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q1, #4", q0, q1, i32, (1U << 31) + 1); 2632b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q1, #6", q0, q1, i32, (1U << 31) - 1); 2633b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.u32 q0, q14, #5", q0, q14, i32, 0x30a0bcef); 2634b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q1, #12", q0, q1, i32, 7); 2635b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q10, q11, #8", q10, q11, i32, 1 << 31); 2636b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q1, #2", q0, q1, i32, (1U << 31) + 1); 2637b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q1, #1", q0, q1, i32, (1U << 31) - 1); 2638b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.f32.s32 q0, q14, #6", q0, q14, i32, 0x30a0bcef); 2639b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(NAN)); 2640b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(0.0)); 2641b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(INFINITY)); 2642b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(-INFINITY)); 2643b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(NAN)); 2644b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(0.0)); 2645b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(INFINITY)); 2646b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(-INFINITY)); 2647b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2648b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMAX (fp) ----\n"); 2649b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2650b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2651b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2652b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2653b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2654b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2655b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2656b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2657b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2658b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2659b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2660b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2661b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2662b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2663b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2664b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2665b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2666b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2667b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2668b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2669b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 2670b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 2671b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 2672b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 2673b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 2674b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 2675b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2676b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2677b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2678b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2679b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2680b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2681b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2682b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2683b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2684b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2685b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2686b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2687b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2688b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2689b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2690b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2691b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2692b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2693b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2694b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2695b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2696b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VMIN (fp) ----\n"); 2697b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2698b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2699b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2700b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2701b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2702b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2703b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2704b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2705b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2706b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2707b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2708b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2709b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2710b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2711b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2712b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2713b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2714b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2715b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2716b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2717b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 2718b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 2719b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 2720b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 2721b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 2722b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 2723b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2724b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2725b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2726b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2727b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2728b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2729b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2730b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2731b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2732b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2733b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2734b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2735b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2736b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2737b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2738b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2739b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2740b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2741b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2742b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2743b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2744b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRECPE ----\n"); 2745b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q0, q1", q0, q1, i32, f2u(3.2)); 2746b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q10, q11", q10, q11, i32, f2u(3e22)); 2747b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(3e9)); 2748b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(-0.5)); 2749b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(-7.1)); 2750b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2751b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2752b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q0, q1", q0, q1, i32, f2u(3.2)); 2753b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q10, q11", q10, q11, i32, f2u(3e22)); 2754b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(3e9)); 2755b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 2756b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 2757b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2758b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2759b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, 7); 2760b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q10, q11", q10, q11, i32, 1 << 31); 2761b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 2762b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 2763b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 2764b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, 7); 2765b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q10, q11", q10, q11, i32, 1 << 31); 2766b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 2767b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 2768b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 2769b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(NAN)); 2770b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(0.0)); 2771b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 2772b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 2773b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(NAN)); 2774b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(0.0)); 2775b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 2776b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 2777b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2778b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRECPS ----\n"); 2779b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2780b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2781b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2782b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2783b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2784b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2785b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2786b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2787b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2788b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2789b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2790b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2791b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2792b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2793b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2794b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2795b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2796b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2797b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2798b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2799b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2800b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2801b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2802b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2803b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2804b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2805b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2806b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2807b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2808b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2809b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2810b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2811b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2812b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2813b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2814b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2815b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2816b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2817b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2818b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2819b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2820b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VABS (fp) ----\n"); 2821b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(3.2)); 2822b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, f2u(3e22)); 2823b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(3e9)); 2824b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 2825b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 2826b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2827b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2828b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(3.2)); 2829b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, f2u(3e22)); 2830b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(3e9)); 2831b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 2832b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 2833b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 2834b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 2835b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, 7); 2836b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, 1 << 31); 2837b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 2838b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 2839b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 2840b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, 7); 2841b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, 1 << 31); 2842b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 2843b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 2844b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 2845b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(NAN)); 2846b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(0.0)); 2847b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 2848b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 2849b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(NAN)); 2850b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(0.0)); 2851b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 2852b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 2853b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2854b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGT (fp) ----\n"); 2855b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 2856b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 2857b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 2858b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2859b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2860b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2861b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2862b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2863b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2864b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2865b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2866b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2867b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2868b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2869b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2870b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2871b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2872b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2873b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2874b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2875b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2876b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2877b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2878b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 2879b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 2880b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 2881b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 2882b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 2883b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 2884b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2885b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2886b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2887b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2888b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2889b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2890b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2891b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2892b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2893b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2894b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2895b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2896b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2897b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2898b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2899b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2900b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2901b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2902b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2903b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2904b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2905b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGE (fp) ----\n"); 2906b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 2907b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 2908b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 2909b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2910b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2911b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2912b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2913b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2914b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2915b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2916b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2917b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2918b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2919b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2920b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2921b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2922b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2923b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2924b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2925b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2926b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2927b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2928b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2929b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 2930b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 2931b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 2932b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 2933b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 2934b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 2935b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2936b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2937b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2938b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2939b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2940b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2941b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2942b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2943b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2944b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2945b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2946b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2947b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2948b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 2949b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 2950b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 2951b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 2952b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 2953b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 2954b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 2955b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2956b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VACGT (fp) ----\n"); 2957b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 2958b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 2959b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 2960b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 2961b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 2962b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 2963b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 2964b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 2965b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 2966b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 2967b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 2968b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 2969b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 2970b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 2971b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 2972b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 2973b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 2974b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 2975b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 2976b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 2977b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 2978b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 2979b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 2980b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 2981b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 2982b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 2983b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 2984b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 2985b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 2986b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 2987b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 2988b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 2989b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 2990b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 2991b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 2992b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 2993b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 2994b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 2995b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 2996b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 2997b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 2998b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 2999b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 3000b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 3001b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 3002b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 3003b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 3004b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 3005b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 3006b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3007b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VACGE (fp) ----\n"); 3008b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 3009b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 3010b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 3011b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 3012b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 3013b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 3014b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 3015b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 3016b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 3017b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 3018b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 3019b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 3020b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 3021b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 3022b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 3023b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 3024b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 3025b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 3026b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 3027b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 3028b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 3029b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 3030b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 3031b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 3032b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 3033b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 3034b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 3035b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 3036b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 3037b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 3038b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 3039b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 3040b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 3041b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 3042b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 3043b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 3044b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 3045b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 3046b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 3047b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 3048b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 3049b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 3050b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 3051b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 3052b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 3053b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 3054b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 3055b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 3056b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 3057b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3058b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCEQ (fp) ----\n"); 3059b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 3060b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 3061b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 3062b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 3063b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 3064b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 3065b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 3066b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 3067b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 3068b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 3069b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 3070b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 3071b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 3072b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 3073b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 3074b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 3075b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 3076b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 3077b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 3078b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 3079b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 3080b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 3081b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 3082b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 3083b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 3084b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 3085b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 3086b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 3087b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 3088b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 3089b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 3090b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 3091b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 3092b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 3093b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 3094b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 3095b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 3096b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 3097b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 3098b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 3099b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 3100b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 3101b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 3102b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 3103b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 3104b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 3105b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 3106b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 3107b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 3108b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3109b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCEQ (fp) #0 ----\n"); 3110b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 3111b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, 0x1); 3112b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 3113b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 3114b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 3115b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q10, q15, #0", q10, q15, i32, 0x0); 3116b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 3117b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 3118b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 3119b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 3120b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3121b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGT (fp) #0 ----\n"); 3122b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 3123b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, 0x1); 3124b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 3125b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 3126b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 3127b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q10, q15, #0", q10, q15, i32, 0x0); 3128b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 3129b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 3130b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 3131b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 3132b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3133b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCLT (fp) #0 ----\n"); 3134b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 3135b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, 0x1); 3136b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 3137b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 3138b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 3139b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q10, q15, #0", q10, q15, i32, 0x0); 3140b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 3141b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 3142b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 3143b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 3144b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3145b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCGE (fp) #0 ----\n"); 3146b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 3147b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, 0x1); 3148b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 3149b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 3150b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 3151b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q10, q15, #0", q10, q15, i32, 0x0); 3152b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 3153b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 3154b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 3155b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 3156b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3157b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VCLE (fp) #0 ----\n"); 3158b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 3159b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, 0x1); 3160b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 3161b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 3162b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 3163b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q10, q15, #0", q10, q15, i32, 0x0); 3164b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 3165b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 3166b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 3167b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 3168b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3169b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VNEG (fp) ----\n"); 3170b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, 0x01000000); 3171b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, 0x1); 3172b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q2, q1", q2, q1, i32, 1 << 31); 3173b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q2, q1", q2, q1, i32, f2u(23.04)); 3174b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q2, q1", q2, q1, i32, f2u(-23.04)); 3175b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q10, q15", q10, q15, i32, 0x0); 3176b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(NAN)); 3177b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(0.0)); 3178b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 3179b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 3180b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3181b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRSQRTS ----\n"); 3182b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 3183b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 3184b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 3185b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 3186b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 3187b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 3188b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 3189b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 3190b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 3191b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 3192b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 3193b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 3194b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 3195b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 3196b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 3197b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 3198b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 3199b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 3200b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 3201b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 3202b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 3203b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 3204b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 3205b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 3206b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 3207b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 3208b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 3209b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 3210b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 3211b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 3212b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 3213b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 3214b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 3215b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 3216b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 3217b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 3218b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 3219b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 3220b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 3221b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 3222b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3223b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("---- VRSQRTE (fp) ----\n"); 3224b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(3.2)); 3225b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, f2u(3e22)); 3226b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(3e9)); 3227b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 3228b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 3229b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 3230b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 3231b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(3.2)); 3232b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, f2u(3e22)); 3233b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(3e9)); 3234b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 3235b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 3236b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 3237b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 3238b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, 7); 3239b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, 1 << 31); 3240b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 3241b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 3242b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 3243b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, 7); 3244b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, 1 << 31); 3245b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 3246b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 3247b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 3248b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(NAN)); 3249b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(0.0)); 3250b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 3251b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 3252b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3253b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov return 0; 3254b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3255b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3256b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov/* How to compile: 3257b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3258b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \ 3259b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov -marm -o neon128-a neon128.c 3260b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3261b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov or 3262b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3263b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov gcc -O -g -Wall -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp \ 3264b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov -mthumb -o neon128-t neon128.c 3265b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3266b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov*/ 3267b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3268b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdio.h> 3269b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <math.h> 3270b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3271b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#ifndef __thumb__ 3272b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov// ARM 3273b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define MOVE_to_FPSCR_from_R4 \ 3274b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ".word 0xEEE14A10 @ vmsr FPSCR, r4\n\t" 3275b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define MOVE_to_R4_from_FPSCR \ 3276b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ".word 0xEEF14A10 @ vmrs r4, FPSCR\n\t" 3277b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif 3278b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3279b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#ifdef __thumb__ 3280b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov// Thumb 3281b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define MOVE_to_FPSCR_from_R4 \ 3282b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ".word 0x4A10EEE1 @ vmsr FPSCR, r4\n\t" 3283b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define MOVE_to_R4_from_FPSCR \ 3284b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ".word 0x4A10EEF1 @ vmrs r4, FPSCR\n\t" 3285b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif 3286b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3287b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovstatic inline unsigned int f2u(float x) { 3288b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov union { 3289b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov float f; 3290b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int u; 3291b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov } cvt; 3292b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov cvt.f = x; 3293b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov return cvt.u; 3294b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3295b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3296b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov/* test macros to generate and output the result of a single instruction */ 3297b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3298b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_imm(instruction, QD, imm) \ 3299b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3300b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3301b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3302b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3303b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x55" "\n\t" \ 3304b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction ", #" #imm "\n\t" \ 3305b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QD "}\n\t" \ 3306b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 3307b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out) \ 3308b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, "memory" \ 3309b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3310b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s, #" #imm " :: Qd 0x%08x 0x%08x 0x%08x 0x%08x\n", \ 3311b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0]); \ 3312b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3313b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3314b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_un(instruction, QD, QM, QMtype, QMval) \ 3315b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3316b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3317b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3318b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3319b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x55" "\n\t" \ 3320b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %1\n\t" \ 3321b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3322b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QD "}\n\t" \ 3323b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 3324b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval) \ 3325b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, "memory" \ 3326b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3327b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x\n", \ 3328b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval); \ 3329b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3330b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3331b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_un_q(instruction, QD, QM, QMtype, QMval) \ 3332b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3333b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3334b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int fpscr; \ 3335b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3336b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3337b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x55" "\n\t" \ 3338b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "mov r4, #0\n\t" \ 3339b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov MOVE_to_FPSCR_from_R4 \ 3340b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %2\n\t" \ 3341b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3342b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %1, {" #QD "}\n\t" \ 3343b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov MOVE_to_R4_from_FPSCR \ 3344b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "mov %0, r4" \ 3345b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "=r" (fpscr) \ 3346b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval) \ 3347b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, "memory", "r4" \ 3348b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3349b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 3350b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " fpscr: %08x\n", \ 3351b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval, fpscr); \ 3352b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3353b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3354b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_bin(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 3355b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3356b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3357b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3358b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3359b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x55" "\n\t" \ 3360b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %1\n\t" \ 3361b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QNtype " " #QN ", %2\n\t" \ 3362b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3363b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QD "}\n\t" \ 3364b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 3365b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval), "r" (QNval) \ 3366b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, #QN, "memory" \ 3367b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3368b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 3369b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " Qn (" #QNtype ")0x%08x\n", \ 3370b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 3371b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3372b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3373b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_bin_f(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 3374b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3375b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3376b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3377b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3378b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup.i32 " #QD ", %3\n\t" \ 3379b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %1\n\t" \ 3380b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QNtype " " #QN ", %2\n\t" \ 3381b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3382b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QD "}\n\t" \ 3383b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 3384b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval), "r" (QNval), "r" (0x3f800000) \ 3385b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, #QN, "memory" \ 3386b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3387b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 3388b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " Qn (" #QNtype ")0x%08x\n", \ 3389b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 3390b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3391b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3392b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_bin_q(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 3393b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3394b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3395b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int fpscr; \ 3396b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3397b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3398b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x55" "\n\t" \ 3399b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "mov r4, #0\n\t" \ 3400b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov MOVE_to_FPSCR_from_R4 \ 3401b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %2\n\t" \ 3402b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QNtype " " #QN ", %3\n\t" \ 3403b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3404b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %1, {" #QD "}\n\t" \ 3405b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov MOVE_to_R4_from_FPSCR \ 3406b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "mov %0, r4" \ 3407b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "=r" (fpscr) \ 3408b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval), "r" (QNval) \ 3409b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, #QN, "memory", "r4" \ 3410b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3411b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 3412b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " Qn (" #QNtype ")0x%08x fpscr: %08x\n", \ 3413b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval, QNval, fpscr); \ 3414b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3415b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3416b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_dual(instruction, QM, QMtype, QMval, QN, QNtype, QNval) \ 3417b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3418b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out1[4]; \ 3419b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out2[4]; \ 3420b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3421b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3422b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %2\n\t" \ 3423b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QNtype " " #QN ", %3\n\t" \ 3424b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3425b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QM "}\n\t" \ 3426b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %1, {" #QN "}\n\t" \ 3427b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 3428b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out1), "r" (out2), "r" (QMval), "r" (QNval) \ 3429b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QM, #QN, "memory" \ 3430b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3431b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qm 0x%08x 0x%08x 0x%08x 0x%08x Qn 0x%08x 0x%08x 0x%08x 0x%08x" \ 3432b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " Qm (" #QMtype ")0x%08x Qn (" #QNtype ")0x%08x\n", \ 3433b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out1[3], out1[2], out1[1], out1[0], \ 3434b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov out2[3], out2[2], out2[1], out2[0], QMval, QNval); \ 3435b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3436b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3437b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov// Ditto TESTING_bin(), but in QD all zeros 3438b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_bin_0s(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \ 3439b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ \ 3440b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov unsigned int out[4]; \ 3441b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov\ 3442b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __asm__ volatile( \ 3443b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vmov.i8 " #QD ", #0x00" "\n\t" \ 3444b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QMtype " " #QM ", %1\n\t" \ 3445b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vdup." #QNtype " " #QN ", %2\n\t" \ 3446b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction "\n\t" \ 3447b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "vstmia %0, {" #QD "}\n\t" \ 3448b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : \ 3449b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "r" (out), "r" (QMval), "r" (QNval) \ 3450b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : #QD, #QM, #QN, "memory" \ 3451b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov ); \ 3452b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%s :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \ 3453b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " Qn (" #QNtype ")0x%08x\n", \ 3454b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov instruction, out[3], out[2], out[1], out[0], QMval, QNval); \ 3455b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 3456b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3457b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#if 0 3458b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define TESTINSN_2reg_shift(instruction, QD, QM, QMtype, QMval, imm) \ 3459ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ \ 3460ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned int out[4]; \ 3461ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown\ 3462ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __asm__ volatile( \ 3463ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vmov.i8 " #QD ", #0x55" "\n\t" \ 3464ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vdup." #QMtype " " #QM ", %1\n\t" \ 3465ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction ", #" #imm "\n\t" \ 3466ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown "vstmia %0, {" #QD "}\n\t" \ 3467ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : \ 3468ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : "r" (out), "r" (QMval) \ 3469ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown : #QD, #QM, "memory" \ 3470ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ); \ 3471ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("%s, #" #imm " :: Qd 0x%08x 0x%08x 0x%08x 0x%08x Qm (" #QMtype ")0x%08x", \ 3472ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown instruction, out[3], out[2], out[1], out[0], QMval); \ 3473ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 3474ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 3475ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3476ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(int argc, char **argv) 3477ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ 3478ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("----- VMOV (immediate) -----\n"); 3479ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i32 q0", q0, 0x7); 3480ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i16 q1", q1, 0x7); 3481ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i8 q2", q2, 0x7); 3482ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i32 q5", q5, 0x700); 3483ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i16 q7", q7, 0x700); 3484ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i32 q10", q10, 0x70000); 3485ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i32 q12", q12, 0x7000000); 3486ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i32 q13", q13, 0x7FF); 3487ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i32 q14", q14, 0x7FFFF); 3488ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmov.i64 q15", q15, 0xFF0000FF00FFFF00); 3489ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3490ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("----- VMVN (immediate) -----\n"); 3491ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i32 q0", q0, 0x7); 3492ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i16 q1", q1, 0x7); 3493ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i8 q2", q2, 0x7); 3494ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i32 q5", q5, 0x700); 3495ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i16 q7", q7, 0x700); 3496ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i32 q10", q10, 0x70000); 3497ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i32 q13", q13, 0x7000000); 3498ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i32 q11", q11, 0x7FF); 3499ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i32 q14", q14, 0x7FFFF); 3500ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vmvn.i64 q15", q15, 0xFF0000FF00FFFF00); 3501ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3502ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("----- VORR (immediate) -----\n"); 3503ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vorr.i32 q0", q0, 0x7); 3504ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vorr.i16 q2", q2, 0x7); 3505ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vorr.i32 q8", q8, 0x700); 3506ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vorr.i16 q6", q6, 0x700); 3507ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vorr.i32 q14", q14, 0x70000); 3508ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vorr.i32 q15", q15, 0x7000000); 3509ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3510ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("----- VBIC (immediate) -----\n"); 3511ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vbic.i32 q0", q0, 0x7); 3512ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vbic.i16 q3", q3, 0x7); 3513ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vbic.i32 q5", q5, 0x700); 3514ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vbic.i16 q8", q8, 0x700); 3515ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vbic.i32 q10", q10, 0x70000); 3516ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_imm("vbic.i32 q15", q15, 0x7000000); 3517ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3518ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMVN (register) ----\n"); 3519ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmvn q0, q1", q0, q1, i32, 24); 3520ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmvn q10, q15", q10, q15, i32, 24); 3521ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmvn q0, q14", q0, q14, i32, 24); 3522ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3523ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMOV (register) ----\n"); 3524ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmov q0, q1", q0, q1, i32, 24); 3525ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmov q10, q15", q10, q15, i32, 24); 3526ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmov q0, q14", q0, q14, i32, 24); 3527ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3528ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VDUP (ARM core register) (tested indirectly) ----\n"); 3529ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmov q0, q1", q0, q1, i8, 7); 3530ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmov q10, q11", q10, q11, i16, 7); 3531ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmov q0, q15", q0, q15, i32, 7); 3532ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3533ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VADD ----\n"); 3534ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3535ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i64 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3536ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3537ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3538ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3539ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3540ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3541ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3542ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i64 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3543ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3544ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.i64 q13, q14, q15", q13, q14, i32, 140, q15, i32, 120); 3545ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3546ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSUB ----\n"); 3547ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3548ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i64 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3549ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3550ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3551ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3552ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3553ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3554ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3555ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i64 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3556ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3557ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.i64 q13, q14, q15", q13, q14, i32, 140, q15, i32, 120); 3558ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3559ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VAND ----\n"); 3560ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vand q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 3561ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vand q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 3562ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vand q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 3563ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vand q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 3564ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3565ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VBIC ----\n"); 3566ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbic q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 3567ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbic q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 3568ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbic q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 3569ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbic q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 3570ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3571ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VORR ----\n"); 3572ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorr q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 3573ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorr q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 3574ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorr q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 3575ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorr q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 3576ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3577ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VORN ----\n"); 3578ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorn q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 3579ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorn q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 3580ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorn q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 3581ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vorn q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 3582ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3583ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VEOR ----\n"); 3584ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 3585ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 3586ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 3587ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 3588ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 3589ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 3590ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 3591ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("veor q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 3592ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3593ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VBSL ----\n"); 3594ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 3595ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 3596ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 3597ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 3598ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 3599ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 3600ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 3601ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbsl q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 3602ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3603ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VBIT ----\n"); 3604ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 3605ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 3606ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 3607ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 3608ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 3609ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 3610ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 3611ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbit q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 3612ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3613ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VBIF ----\n"); 3614ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x77); 3615ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q4, q6, q5", q4, q6, i8, 0xff, q5, i16, 0x57); 3616ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q10, q11, q12", q10, q11, i8, 0xfe, q12, i8, 0xed); 3617ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q15, q15, q15", q15, q15, i8, 0xff, q15, i8, 0xff); 3618ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q0, q1, q2", q0, q1, i8, 0x24, q2, i16, 0x73); 3619ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q7, q3, q0", q7, q3, i8, 0x24, q0, i16, 0xff); 3620ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q4, q4, q4", q4, q4, i16, 0xff, q4, i16, 0xff); 3621ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vbif q2, q3, q15", q2, q3, i32, 0x24, q15, i32, 0x1f); 3622ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3623ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VEXT ----\n"); 3624ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vext.8 q0, q1, q2, #0", q0, q1, i8, 0x77, q2, i8, 0xff); 3625ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vext.8 q0, q1, q2, #1", q0, q1, i8, 0x77, q2, i8, 0xff); 3626ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vext.8 q0, q1, q2, #9", q0, q1, i8, 0x77, q2, i8, 0xff); 3627ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vext.8 q0, q1, q2, #15", q0, q1, i8, 0x77, q2, i8, 0xff); 3628ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vext.8 q10, q11, q12, #4", q10, q11, i8, 0x77, q12, i8, 0xff); 3629ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vext.8 q0, q5, q15, #12", q0, q5, i8, 0x77, q15, i8, 0xff); 3630ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3631ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VHADD ----\n"); 3632ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3633ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3634ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3635ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3636ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s8 q0, q1, q2", q0, q1, i8, 141, q2, i8, 121); 3637ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3638ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3639ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3640ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3641ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3642ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3643ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3644ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3645ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u8 q0, q1, q2", q0, q1, i8, 141, q2, i8, 121); 3646ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3647ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3648ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3649ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhadd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3650ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3651ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VHSUB ----\n"); 3652ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3653ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3654ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3655ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3656ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3657ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3658ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3659ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3660ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3661ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3662ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3663ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3664ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3665ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3666ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3667ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vhsub.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3668ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3669ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQADD ----\n"); 3670ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3671ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3672ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3673ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3674ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3675ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3676ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3677ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3678ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3679ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3680ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3681ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3682ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3683ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3684ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3685ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqadd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3686ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3687ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQSUB ----\n"); 3688ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3689ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3690ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3691ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3692ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3693ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3694ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3695ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3696ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 3697ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3698ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3699ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3700ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3701ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3702ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3703ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqsub.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3704ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3705ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRHADD ----\n"); 3706ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 3707ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 3708ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3709ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3710ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3711ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 3712ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3713ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3714ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 3715ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3716ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3717ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 3718ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 3719ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 3720ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3721ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 3722ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3723ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3724ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3725ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3726ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3727ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 3728ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3729ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3730ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3731ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 3732ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 3733ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 3734ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrhadd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3735ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3736ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGT ----\n"); 3737ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 3738ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 3739ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3740ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3741ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3742ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3743ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3744ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3745ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 3746ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 3747ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 3748ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 3, q5, i32, (1 << 31) + 2); 3749ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3750ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3751ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 3752ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3753ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3754ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 2, q5, i32, (1 << 31) + 2); 3755ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3756ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3757ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3758ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 3759ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3760ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3761ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3762ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3763ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3764ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3765ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 3766ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 3767ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 3768ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3769ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3770ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3771ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3772ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3773ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3774ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3775ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3776ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3777ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3778ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3779ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGE ----\n"); 3780ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 3781ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 3782ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3783ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3784ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3785ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3786ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3787ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3788ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 3789ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 3790ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 140); 3791ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 3, q5, i32, (1 << 31) + 2); 3792ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3793ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3794ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 3795ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3796ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3797ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 2, q5, i32, (1 << 31) + 2); 3798ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3799ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3800ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3801ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 3802ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3803ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3804ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 3805ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3806ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3807ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 3808ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 3809ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 3810ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 3811ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3812ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3813ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 3, q2, i32, (1 << 31) + 2); 3814ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3815ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3816ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 3817ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3818ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3819ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 2, q2, i32, (1 << 31) + 2); 3820ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3821ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3822ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSHL (register) ----\n"); 3823ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s8 q0, q1, q2", q0, q1, i32, 24, q2, i32, 1); 3824ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s8 q8, q1, q12", q8, q1, i32, 24, q12, i32, 8); 3825ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s8 q10, q11, q7", q10, q11, i32, 24, q7, i32, 4); 3826ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s16 q3, q8, q11", q3, q8, i32, 14, q11, i32, 2); 3827ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s16 q5, q12, q14", q5, q12, i32, (1 << 30), q14, i32, 1); 3828ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s16 q15, q2, q1", q15, q2, i32, (1 << 30), q1, i32, 11); 3829ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s32 q9, q12, q15", q9, q12, i32, (1 << 31) + 2, q15, i32, 2); 3830ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s32 q11, q2, q0", q11, q2, i32, -1, q0, i32, 12); 3831ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s32 q5, q2, q3", q5, q2, i32, (1 << 30), q3, i32, 21); 3832ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s64 q15, q12, q4", q15, q12, i32, 5, q4, i32, 20); 3833ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s64 q8, q2, q4", q8, q2, i32, 15, q4, i32, 4); 3834ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.s64 q5, q12, q4", q5, q12, i32, (1 << 31) + 1, q4, i32, 30); 3835ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u8 q0, q1, q2", q0, q1, i32, 24, q2, i32, 1); 3836ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u8 q8, q1, q12", q8, q1, i32, 24, q12, i32, 8); 3837ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u8 q10, q11, q7", q10, q11, i32, 24, q7, i32, 4); 3838ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u16 q3, q8, q11", q3, q8, i32, 14, q11, i32, 2); 3839ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u16 q5, q12, q14", q5, q12, i32, (1 << 30), q14, i32, 1); 3840ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u16 q15, q2, q1", q15, q2, i32, (1 << 30), q1, i32, 11); 3841ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u32 q9, q12, q15", q9, q12, i32, (1 << 31) + 2, q15, i32, 2); 3842ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u32 q11, q2, q0", q11, q2, i32, -1, q0, i32, 12); 3843ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u32 q5, q2, q3", q5, q2, i32, (1 << 30), q3, i32, 21); 3844ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u64 q15, q12, q4", q15, q12, i32, 5, q4, i32, 20); 3845ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u64 q8, q2, q4", q8, q2, i32, 15, q4, i32, 4); 3846ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vshl.u64 q5, q12, q4", q5, q12, i32, (1 << 31) + 1, q4, i32, 30); 3847ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3848ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQSHL (register) ----\n"); 3849ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 3850ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 3851ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 3852ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 3853ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 3854ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 3855ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 3856ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 3857ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 3858ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 3859ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 3860ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 3861ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 3862ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 3863ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 3864ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 3865ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 3866ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 3867ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 3868ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 3869ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 3870ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 3871ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 3872ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.s8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3873ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 3874ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 3875ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 3876ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 3877ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 3878ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 3879ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 3880ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 3881ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 3882ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 3883ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 3884ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 3885ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 3886ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 3887ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 3888ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 3889ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 3890ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 3891ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 3892ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 3893ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 3894ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 3895ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 3896ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqshl.u8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 3897ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 3898ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQSHL / VQSHLU (immediate) ----\n"); 3899ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q0, q1, #1", q0, q1, i32, 1); 3900ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q15, q14, #1", q15, q14, i32, -127); 3901ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #0", q5, q4, i32, -127); 3902ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #63", q5, q4, i32, 16); 3903ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #60", q5, q4, i32, 16); 3904ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #59", q5, q4, i32, 16); 3905ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #58", q5, q4, i32, 16); 3906ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #17", q5, q4, i32, 16); 3907ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #63", q5, q4, i32, -1); 3908ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #60", q5, q4, i32, -1); 3909ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s64 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3910ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q10, q11, #1", q10, q11, i32, 1); 3911ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q15, q14, #1", q15, q14, i32, -127); 3912ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #0", q5, q4, i32, -127); 3913ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #31", q5, q4, i32, 16); 3914ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #28", q5, q4, i32, 16); 3915ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #27", q5, q4, i32, 16); 3916ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #26", q5, q4, i32, 16); 3917ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #17", q5, q4, i32, 16); 3918ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #31", q5, q4, i32, -1); 3919ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #29", q5, q4, i32, -1); 3920ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s32 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3921ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q9, q8, #1", q9, q8, i32, 1); 3922ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q15, q14, #1", q15, q14, i32, -127); 3923ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #0", q5, q4, i32, -127); 3924ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q9, q8, #15", q9, q8, i32, 16); 3925ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #12", q5, q4, i32, 16); 3926ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #11", q5, q4, i32, 16); 3927ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #10", q5, q4, i32, 16); 3928ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #4", q5, q4, i32, 16); 3929ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #15", q5, q4, i32, -1); 3930ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #12", q5, q4, i32, -1); 3931ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s16 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3932ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q0, q1, #1", q0, q1, i32, 1); 3933ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q15, q14, #1", q15, q14, i32, -127); 3934ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #0", q5, q4, i32, -127); 3935ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #7", q5, q4, i32, 16); 3936ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #4", q5, q4, i32, 16); 3937ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #3", q5, q4, i32, 16); 3938ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #2", q5, q4, i32, 16); 3939ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #1", q5, q4, i32, 16); 3940ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #7", q5, q4, i32, -1); 3941ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #5", q5, q4, i32, -1); 3942ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.s8 q5, q4, #2", q5, q4, i32, (1 << 31) + 2); 3943ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q0, q1, #1", q0, q1, i32, 1); 3944ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q15, q14, #1", q15, q14, i32, -127); 3945ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #0", q5, q4, i32, -127); 3946ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #63", q5, q4, i32, 16); 3947ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #60", q5, q4, i32, 16); 3948ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #59", q5, q4, i32, 16); 3949ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #58", q5, q4, i32, 16); 3950ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #17", q5, q4, i32, 16); 3951ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #63", q5, q4, i32, -1); 3952ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #60", q5, q4, i32, -1); 3953ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u64 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3954ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q10, q11, #1", q10, q11, i32, 1); 3955ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q15, q14, #1", q15, q14, i32, -127); 3956ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #0", q5, q4, i32, -127); 3957ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #31", q5, q4, i32, 16); 3958ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #28", q5, q4, i32, 16); 3959ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #27", q5, q4, i32, 16); 3960ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #26", q5, q4, i32, 16); 3961ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #17", q5, q4, i32, 16); 3962ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #31", q5, q4, i32, -1); 3963ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #29", q5, q4, i32, -1); 3964ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u32 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3965ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q9, q8, #1", q9, q8, i32, 1); 3966ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q15, q14, #1", q15, q14, i32, -127); 3967ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #0", q5, q4, i32, -127); 3968ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q9, q8, #15", q9, q8, i32, 16); 3969ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #12", q5, q4, i32, 16); 3970ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #11", q5, q4, i32, 16); 3971ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #10", q5, q4, i32, 16); 3972ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #4", q5, q4, i32, 16); 3973ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #15", q5, q4, i32, -1); 3974ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #12", q5, q4, i32, -1); 3975ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u16 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3976ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q0, q1, #1", q0, q1, i32, 1); 3977ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q15, q14, #1", q15, q14, i32, -127); 3978ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #0", q5, q4, i32, -127); 3979ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #7", q5, q4, i32, 16); 3980ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #4", q5, q4, i32, 16); 3981ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #3", q5, q4, i32, 16); 3982ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #2", q5, q4, i32, 16); 3983ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #1", q5, q4, i32, 16); 3984ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #7", q5, q4, i32, -1); 3985ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #5", q5, q4, i32, -1); 3986ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshl.u8 q5, q4, #2", q5, q4, i32, (1 << 31) + 2); 3987ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q0, q1, #1", q0, q1, i32, 1); 3988ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q15, q14, #1", q15, q14, i32, -127); 3989ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #0", q5, q4, i32, -127); 3990ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #63", q5, q4, i32, 16); 3991ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #60", q5, q4, i32, 16); 3992ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #59", q5, q4, i32, 16); 3993ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #58", q5, q4, i32, 16); 3994ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #17", q5, q4, i32, 16); 3995ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #63", q5, q4, i32, -1); 3996ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #60", q5, q4, i32, -1); 3997ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s64 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 3998ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q10, q11, #1", q10, q11, i32, 1); 3999ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q15, q14, #1", q15, q14, i32, -127); 4000ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #0", q5, q4, i32, -127); 4001ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #31", q5, q4, i32, 16); 4002ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #28", q5, q4, i32, 16); 4003ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #27", q5, q4, i32, 16); 4004ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #26", q5, q4, i32, 16); 4005ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #17", q5, q4, i32, 16); 4006ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #31", q5, q4, i32, -1); 4007ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #29", q5, q4, i32, -1); 4008ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s32 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 4009ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q9, q8, #1", q9, q8, i32, 1); 4010ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q15, q14, #1", q15, q14, i32, -127); 4011ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #0", q5, q4, i32, -127); 4012ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q9, q8, #15", q9, q8, i32, 16); 4013ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #12", q5, q4, i32, 16); 4014ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #11", q5, q4, i32, 16); 4015ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #10", q5, q4, i32, 16); 4016ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #4", q5, q4, i32, 16); 4017ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #15", q5, q4, i32, -1); 4018ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #12", q5, q4, i32, -1); 4019ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s16 q5, q4, #7", q5, q4, i32, (1 << 31) + 2); 4020ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q0, q1, #1", q0, q1, i32, 1); 4021ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q15, q14, #1", q15, q14, i32, -127); 4022ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #0", q5, q4, i32, -127); 4023ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #7", q5, q4, i32, 16); 4024ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #4", q5, q4, i32, 16); 4025ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #3", q5, q4, i32, 16); 4026ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #2", q5, q4, i32, 16); 4027ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #1", q5, q4, i32, 16); 4028ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #7", q5, q4, i32, -1); 4029ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #5", q5, q4, i32, -1); 4030ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqshlu.s8 q5, q4, #2", q5, q4, i32, (1 << 31) + 2); 4031ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4032ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQRSHL (register) ----\n"); 4033ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 4034ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 4035ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 4036ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 4037ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 4038ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 4039ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 4040ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 4041ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 4042ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 4043ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 4044ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 4045ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 4046ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 4047ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 4048ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 4049ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 4050ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 4051ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4052ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4053ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4054ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4055ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4056ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4057ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4058ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4059ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4060ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4061ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4062ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4063ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 4064ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 4065ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 4066ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 4067ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 4068ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.s8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4069ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 4070ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 4071ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 4072ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 4073ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 4074ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 4075ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 4076ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 4077ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 4078ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 4079ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 4080ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 4081ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 4082ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 4083ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 4084ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 4085ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 4086ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 4087ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 4088ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4089ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4090ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4091ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4092ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4093ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4094ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4095ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4096ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u16 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4097ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u32 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4098ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 4099ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 4100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 4101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 4102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrshl.u8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRSHL (register) ----\n"); 4105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 4106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 4107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 4108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 4109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 4110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 4111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 4112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 4113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 4114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 4115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 4116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 4117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 4118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 4119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 4120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 4121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 4122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 4123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s16 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s32 q2, q7, q11", q2, q7, i32, -1, q11, i32, 0); 4135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 4136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 4137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 4138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 4139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 4140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.s8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u64 q0, q1, q2", q0, q1, i32, 1, q2, i32, 1); 4142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, 1); 4143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u64 q3, q4, q5", q3, q4, i32, -127, q5, i32, -3); 4144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u64 q0, q1, q2", q0, q1, i32, 16, q2, i32, 14); 4145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u64 q13, q14, q15", q13, q14, i32, -17, q15, i32, -26); 4146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u64 q7, q8, q2", q7, q8, i32, 24, q2, i32, -60); 4147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q3, q4, q15", q3, q4, i32, 127, q15, i32, -30); 4148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q2, q8, q4", q2, q8, i32, -11, q4, i32, -4); 4149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q12, q11, q13", q12, q11, i32, -120, q13, i32, -9); 4150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q0, q1, q2", q0, q1, i32, 34, q2, i32, -7); 4151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q9, q10, q11", q9, q10, i32, (1 << 31) + 8, q11, i32, -1); 4152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q13, q3, q5", q13, q3, i32, (1 << 27), q5, i32, 3); 4153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q11, q10, q2", q11, q10, i32, (1 << 31), q2, i32, -31); 4154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q3, q14, q7", q3, q14, i32, (1 << 31), q7, i32, -3); 4155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q0, q11, q2", q0, q11, i32, (1 << 31) + 256, q2, i32, -1); 4156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q1, q2, q3", q1, q2, i32, (1 << 31) + 256, q3, i32, -31); 4157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q3, q4, q5", q3, q4, i32, (1 << 31) + (1 << 29), q5, i32, -13); 4158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q0, q15, q2", q0, q15, i32, 1, q2, i32, 30); 4159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, 40); 4160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q2, q7, q11", q2, q7, i32, 0xf, q11, i32, -1); 4164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q2, q7, q11", q2, q7, i32, -1, q11, i32, -1); 4167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u16 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u32 q2, q7, q11", q2, q7, i32, -2, q11, i32, -1); 4170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q13, q1, q2", q13, q1, i32, -4, q2, i32, 30); 4171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q3, q7, q5", q3, q7, i32, (1 << 31) + 11, q5, i32, 3); 4172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q10, q11, q12", q10, q11, i32, (1 << 16), q12, i32, 16); 4173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q6, q7, q8", q6, q7, i32, (1 << 30), q8, i32, 2); 4174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrshl.u8 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMAX (integer) ----\n"); 4177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 4178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 121); 4179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 4180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 4182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 4183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 4186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 4189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 4193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 120); 4194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 4195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 4197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMIN (integer) ----\n"); 4209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 4210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 121); 4211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 4213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 4214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 4215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 4218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 4221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 4225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, 250, q2, i32, 120); 4226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, 120, q2, i32, 120); 4228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 140); 4229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABD ----\n"); 4241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 4242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 4243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, -120); 4244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 4247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 4248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 4249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 4252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 4255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 4259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, -140, q2, i32, 120); 4261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 4263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 4264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABA ----\n"); 4276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 4277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 121); 4278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 2); 4282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 4283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 4284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, (1 << 31) + 3); 4287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s8 q5, q7, q5", q5, q7, i32, (1 << 31) + 4, q5, i32, (1 << 31) + 2); 4290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.s32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, 25, q2, i32, 120); 4294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u8 q5, q7, q5", q5, q7, i32, -255, q5, i32, (1 << 31) + 2); 4298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u8 q5, q7, q5", q5, q7, i32, (1 << 31) + 1, q5, i32, -200); 4299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 3); 4305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u8 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u16 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u32 q0, q1, q2", q0, q1, i32, (1 << 31) + 4, q2, i32, (1 << 31) + 2); 4308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaba.u32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABAL ----\n"); 4311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 4312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 121); 4313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2); 4317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 4318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 4319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3); 4322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2); 4325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.s32 q10, d31, d12", q10, d31, i32, 24, d12, i32, 120); 4328ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 4329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 4333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 4334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4335ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4336ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4337ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4338ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4339ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4340ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4341ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4342ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4343ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabal.u32 q10, d11, d12", q10, d11, i32, 24, d12, i32, 120); 4344ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4345ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABDL ----\n"); 4346ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 4347ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 121); 4348ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4349ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4350ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4351ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 2); 4352ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 4353ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 4354ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4355ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4356ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, (1 << 31) + 3); 4357ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4358ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4359ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s8 q5, d7, d5", q5, d7, i32, (1 << 31) + 4, d5, i32, (1 << 31) + 2); 4360ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4361ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4362ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.s32 q10, d31, d12", q10, d31, i32, 24, d12, i32, 120); 4363ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, 25, d2, i32, 120); 4364ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4365ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4366ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, 140, d2, i32, 120); 4367ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u8 q5, d7, d5", q5, d7, i32, -255, d5, i32, (1 << 31) + 2); 4368ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u8 q5, d7, d5", q5, d7, i32, (1 << 31) + 1, d5, i32, -200); 4369ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4370ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4371ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 2); 4372ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4373ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4374ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 1, d2, i32, (1 << 31) + 3); 4375ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u8 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4376ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u16 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4377ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u32 q0, d1, d2", q0, d1, i32, (1 << 31) + 4, d2, i32, (1 << 31) + 2); 4378ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabdl.u32 q10, d11, d12", q10, d11, i32, 24, d12, i32, 120); 4379ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4380ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VTST ----\n"); 4381ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 4382ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.32 q3, q4, q5", q3, q4, i32, 140, q5, i32, 120); 4383ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.16 q6, q7, q8", q6, q7, i32, 120, q8, i32, 120); 4384ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.8 q9, q10, q12", q9, q10, i32, 140, q12, i32, 120); 4385ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4386ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.16 q0, q1, q2", q0, q1, i32, (1 << 14) + 1, q2, i32, (1 << 14) + 1); 4387ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4388ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, 2); 4389ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.16 q0, q1, q2", q0, q1, i32, (1 << 14) + 1, q2, i32, (1 << 14) + 1); 4390ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.32 q0, q1, q2", q0, q1, i32, 1, q2, i32, (1 << 31) + 2); 4391ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vtst.32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4392ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4393ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCEQ ----\n"); 4394ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 4395ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i32 q3, q4, q5", q3, q4, i32, 140, q5, i32, 120); 4396ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i16 q6, q7, q8", q6, q7, i32, 120, q8, i32, 120); 4397ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i8 q9, q10, q12", q9, q10, i32, 140, q12, i32, 120); 4398ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4399ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i16 q0, q1, q2", q0, q1, i32, (1 << 14) + 1, q2, i32, (1 << 14) + 1); 4400ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i32 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, (1 << 31) + 2); 4401ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i8 q0, q1, q2", q0, q1, i32, (1 << 31) + 1, q2, i32, 2); 4402ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i16 q0, q1, q2", q0, q1, i32, 1, q2, i32, (1 << 14) + 1); 4403ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i32 q0, q1, q2", q0, q1, i32, 1, q2, i32, (1 << 31) + 2); 4404ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.i32 q10, q11, q12", q10, q11, i32, 24, q12, i32, 120); 4405ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4406ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLA ----\n"); 4407ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q0, q1, q2", q0, q1, i32, -24, q2, i32, 120); 4408ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q6, q7, q8", q6, q7, i32, 140, q8, i32, 120); 4409ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 4410ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q7, q1, q2", q7, q1, i32, 0x140, q2, i32, 0x120); 4411ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, -120); 4412ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i8 q10, q11, q12", q10, q11, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 4413ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 4414ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q14, q5, q9", q14, q5, i32, (1 << 14) + 1, q9, i32, (1 << 13) + 2); 4415ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 4416ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i8 q10, q13, q12", q10, q13, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 4417ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 4418ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 4419ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q10, q11, q15", q10, q11, i32, 24, q15, i32, -120); 4420ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4421ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLS ----\n"); 4422ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q0, q1, q2", q0, q1, i32, -24, q2, i32, 120); 4423ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 4424ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 4425ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4426ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i8 q10, q11, q12", q10, q11, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 4427ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 4428ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 4429ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i8 q10, q13, q12", q10, q13, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 4430ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 4431ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 4432ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q10, q11, q15", q10, q11, i32, -24, q15, i32, 120); 4433ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4434ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMUL ----\n"); 4435ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 4436ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 4437ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 4438ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i8 q0, q1, q2", q0, q1, i32, 140, q2, i32, 120); 4439ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i8 q10, q11, q12", q10, q11, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 4440ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 4441ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 4442ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i8 q10, q11, q12", q10, q11, i32, (1 << 25) + 0xfeb2, q12, i32, (1 << 13) + 0xdf); 4443ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q4, q5, q6", q4, q5, i32, (1 << 14) - 0xabcd, q6, i32, (1 << 13) + 2); 4444ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q7, q8, q9", q7, q8, i32, (1 << 31), q9, i32, 12); 4445ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i8 q10, q13, q12", q10, q13, i32, (1 << 5) + 1, q12, i32, (1 << 3) + 2); 4446ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 4447ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 4448ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q10, q11, q15", q10, q11, i32, 24, q15, i32, 120); 4449ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 3, q2, i32, 3); 4450ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.p8 q0, q1, q2", q0, q1, i32, 12, q2, i8, 0x0f); 4451ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4452ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMUL (by scalar) ----\n"); 4453ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q0, q1, d4[0]", q0, q1, i32, 24, d4, i32, 120); 4454ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q15, q8, d7[1]", q15, q8, i32, 140, d4, i32, -120); 4455ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q10, q9, d7[3]", q10, q9, i32, 0x140, d7, i32, 0x120); 4456ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q4, q5, d6[2]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4457ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4458ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4459ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 4460ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4461ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4462ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4463ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLA (by scalar) ----\n"); 4464ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q0, q1, d4[0]", q0, q1, i32, 24, d4, i32, 120); 4465ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q15, q8, d7[1]", q15, q8, i32, 140, d7, i32, -120); 4466ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q10, q9, d7[3]", q10, q9, i32, 0x140, d7, i32, 0x120); 4467ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q4, q5, d6[2]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4468ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4469ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4470ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 4471ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4472ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmla.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4473ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4474ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLS (by scalar) ----\n"); 4475ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q0, q1, d4[0]", q0, q1, i32, 24, d4, i32, 120); 4476ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q15, q8, d7[1]", q15, q8, i32, 140, d7, i32, -120); 4477ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q10, q9, d7[3]", q10, q9, i32, 0x140, d7, i32, 0x120); 4478ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q4, q5, d6[2]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4479ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4480ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4481ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 4482ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i16 q4, q5, d6[0]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4483ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmls.i32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4484ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4485ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMULL (by scalar) ----\n"); 4486ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q0, d2, d4[0]", q0, d2, i32, 24, d4, i32, 120); 4487ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q15, d8, d7[1]", q15, d8, i32, 140, d7, i32, -120); 4488ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 4489ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4490ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4491ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4492ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 4493ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4494ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4495ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q0, d1, d4[0]", q0, d1, i32, 24, d4, i32, 120); 4496ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q15, d8, d7[1]", q15, d8, i32, 140, d4, i32, -120); 4497ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 4498ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4499ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4500ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4501ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 4502ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4503ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4504ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4505ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLAL (by scalar) ----\n"); 4506ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q0, d2, d4[0]", q0, d2, i32, 24, d4, i32, 120); 4507ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q15, d8, d7[1]", q15, d8, i32, 140, d7, i32, -120); 4508ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 4509ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4510ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4511ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4512ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 4513ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4514ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4515ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q0, d1, d4[0]", q0, d1, i32, 24, d4, i32, 120); 4516ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q15, d8, d7[1]", q15, d8, i32, 140, d4, i32, -120); 4517ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 4518ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4519ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4520ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4521ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 4522ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4523ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4524ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4525ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLSL (by scalar) ----\n"); 4526ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q0, d2, d4[0]", q0, d2, i32, 24, d4, i32, 120); 4527ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q15, d8, d7[1]", q15, d8, i32, 140, d7, i32, -120); 4528ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 4529ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4530ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4531ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4532ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 4533ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4534ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4535ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q0, d1, d4[0]", q0, d1, i32, 24, d4, i32, 120); 4536ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q15, d8, d7[1]", q15, d8, i32, 140, d4, i32, -120); 4537ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q10, d31, d7[3]", q10, d31, i32, 0x140, d7, i32, 0x120); 4538ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4539ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q4, d7, d15[1]", q4, d7, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 4540ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4541ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31), d1, i16, 12); 4542ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q4, d5, d6[0]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4543ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q7, d7, d1[1]", q7, d7, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 4544ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4545ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRSHR ----\n"); 4546ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s8 q0, q1, #0", q0, q1, i32, -1); 4547ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s8 q0, q1, #1", q0, q1, i32, -1); 4548ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s16 q3, q4, #2", q3, q4, i32, -0x7c); 4549ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s32 q2, q5, #31", q2, q5, i32, -1); 4550ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s8 q6, q7, #7", q6, q7, i32, 0xffff); 4551ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s16 q8, q9, #12", q8, q9, i32, -10); 4552ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s32 q10, q11, #5", q10, q11, i32, 10234); 4553ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u8 q12, q13, #1", q12, q13, i32, -1); 4554ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u16 q14, q15, #11", q14, q15, i32, -1); 4555ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u32 q10, q11, #9", q10, q11, i32, 1000); 4556ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u8 q7, q13, #7", q7, q13, i32, -1); 4557ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 4558ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 4559ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u64 q0, q1, #42", q0, q1, i32, -1); 4560ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s64 q6, q7, #12", q6, q7, i32, 0xfac); 4561ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.u64 q8, q4, #9", q8, q4, i32, 13560); 4562ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrshr.s64 q9, q12, #11", q9, q12, i32, 98710); 4563ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4564ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRSRA ----\n"); 4565ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s8 q0, q1, #1", q0, q1, i32, -1); 4566ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s16 q3, q4, #2", q3, q4, i32, -0x7c); 4567ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s32 q2, q5, #31", q2, q5, i32, -1); 4568ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s8 q6, q7, #7", q6, q7, i32, 0xffff); 4569ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s16 q8, q9, #12", q8, q9, i32, -10); 4570ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s32 q10, q11, #5", q10, q11, i32, 10234); 4571ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u8 q12, q13, #1", q12, q13, i32, -1); 4572ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u16 q14, q15, #11", q14, q15, i32, -1); 4573ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u32 q10, q11, #9", q10, q11, i32, 1000); 4574ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u8 q7, q13, #7", q7, q13, i32, -1); 4575ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 4576ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 4577ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u64 q0, q1, #42", q0, q1, i32, -1); 4578ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s64 q6, q7, #12", q6, q7, i32, 0xfac); 4579ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.u64 q8, q4, #9", q8, q4, i32, 13560); 4580ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsra.s64 q9, q12, #11", q9, q12, i32, 98710); 4581ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4582ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSHR ----\n"); 4583ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s8 q0, q1, #0", q0, q1, i32, -1); 4584ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s8 q0, q1, #1", q0, q1, i32, -1); 4585ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s16 q3, q4, #2", q3, q4, i32, -0x7c); 4586ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s32 q2, q5, #31", q2, q5, i32, -1); 4587ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s8 q6, q7, #7", q6, q7, i32, 0xffff); 4588ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s16 q8, q9, #12", q8, q9, i32, -10); 4589ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s32 q10, q11, #5", q10, q11, i32, 10234); 4590ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u8 q12, q13, #1", q12, q13, i32, -1); 4591ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u16 q14, q15, #11", q14, q15, i32, -1); 4592ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u32 q10, q11, #9", q10, q11, i32, 1000); 4593ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u8 q7, q13, #7", q7, q13, i32, -1); 4594ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 4595ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 4596ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u64 q0, q1, #42", q0, q1, i32, -1); 4597ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s64 q6, q7, #12", q6, q7, i32, 0xfac); 4598ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.u64 q8, q4, #9", q8, q4, i32, 13560); 4599ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshr.s64 q9, q12, #11", q9, q12, i32, 98710); 4600ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4601ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSRA ----\n"); 4602ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s8 q0, q1, #1", q0, q1, i32, -1); 4603ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s16 q3, q4, #2", q3, q4, i32, -0x7c); 4604ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s32 q2, q5, #31", q2, q5, i32, -1); 4605ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s8 q6, q7, #7", q6, q7, i32, 0xffff); 4606ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s16 q8, q9, #12", q8, q9, i32, -10); 4607ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s32 q10, q11, #5", q10, q11, i32, 10234); 4608ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u8 q12, q13, #1", q12, q13, i32, -1); 4609ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u16 q14, q15, #11", q14, q15, i32, -1); 4610ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u32 q10, q11, #9", q10, q11, i32, 1000); 4611ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u8 q7, q13, #7", q7, q13, i32, -1); 4612ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u16 q8, q1, #5", q8, q1, i32, 0xabcf); 4613ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u32 q12, q3, #15", q12, q3, i32, -0x1b0); 4614ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u64 q0, q1, #42", q0, q1, i32, -1); 4615ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s64 q6, q7, #12", q6, q7, i32, 0xfac); 4616ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.u64 q8, q4, #9", q8, q4, i32, 13560); 4617ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsra.s64 q9, q12, #11", q9, q12, i32, 98710); 4618ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4619ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSRI ----\n"); 4620ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.16 q0, q1, #1", q0, q1, i32, -1); 4621ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.16 q3, q4, #2", q3, q4, i32, -0x7c); 4622ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.32 q2, q5, #31", q2, q5, i32, -1); 4623ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.8 q6, q7, #7", q6, q7, i32, 0xffff); 4624ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.16 q8, q9, #12", q8, q9, i32, -10); 4625ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.32 q10, q11, #5", q10, q11, i32, 10234); 4626ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.8 q12, q13, #1", q12, q13, i32, -1); 4627ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.16 q14, q15, #11", q14, q15, i32, -1); 4628ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.32 q10, q11, #9", q10, q11, i32, 1000); 4629ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.8 q7, q13, #7", q7, q13, i32, -1); 4630ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.16 q8, q1, #5", q8, q1, i32, 0xabcf); 4631ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.32 q12, q3, #15", q12, q3, i32, -0x1b0); 4632ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.64 q0, q1, #42", q0, q1, i32, -1); 4633ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.64 q6, q7, #12", q6, q7, i32, 0xfac); 4634ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.64 q8, q4, #9", q8, q4, i32, 13560); 4635ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsri.64 q9, q12, #11", q9, q12, i32, 98710); 4636ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4637ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMOVL ----\n"); 4638ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.u32 q0, d2", q0, d2, i32, 0x42); 4639ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.u16 q15, d2", q15, d2, i32, 0x42); 4640ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.u8 q3, d31", q0, d31, i32, 0x42); 4641ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.s32 q0, d2", q0, d2, i32, 0x42); 4642ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.s16 q15, d2", q15, d2, i32, 0x42); 4643ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.s8 q3, d31", q0, d31, i32, 0x42); 4644ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.u32 q0, d2", q0, d2, i8, 0xed); 4645ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.u16 q15, d2", q15, d2, i8, 0xed); 4646ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.u8 q3, d31", q0, d31, i8, 0xed); 4647ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.s32 q0, d2", q0, d2, i8, 0xed); 4648ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.s16 q15, d2", q15, d2, i8, 0xed); 4649ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vmovl.s8 q3, d31", q0, d31, i8, 0xed); 4650ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4651ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABS ----\n"); 4652ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s32 q0, q1", q0, q1, i32, 0x73); 4653ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s16 q15, q4", q15, q4, i32, 0x73); 4654ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s8 q8, q7", q8, q7, i32, 0x73); 4655ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s32 q0, q1", q0, q1, i32, 0xfe); 4656ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s16 q15, q4", q15, q4, i32, 0xef); 4657ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s8 q8, q7", q8, q7, i32, 0xde); 4658ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s32 q0, q1", q0, q1, i16, 0xfe0a); 4659ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s16 q15, q4", q15, q4, i16, 0xef0b); 4660ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.s8 q8, q7", q8, q7, i16, 0xde0c); 4661ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4662ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQABS ----\n"); 4663ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i32, 0x73); 4664ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i32, 1 << 31); 4665ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s16 q0, q1", q0, q1, i32, 1 << 31); 4666ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s8 q0, q1", q0, q1, i32, 1 << 31); 4667ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s16 q15, q4", q15, q4, i32, 0x73); 4668ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s8 q8, q7", q8, q7, i32, 0x73); 4669ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i32, 0xfe); 4670ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s16 q15, q4", q15, q4, i32, 0xef); 4671ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s8 q8, q7", q8, q7, i32, 0xde); 4672ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s32 q0, q1", q0, q1, i16, 0xfe0a); 4673ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s16 q15, q4", q15, q4, i16, 0xef0b); 4674ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqabs.s8 q8, q7", q8, q7, i16, 0xde0c); 4675ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4676ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VADDW ----\n"); 4677ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4678ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0x12); 4679ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0x12); 4680ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4681ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4682ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4683ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4684ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0xe2); 4685ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0xe2); 4686ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4687ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4688ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4689ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4690ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VADDL ----\n"); 4691ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4692ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0x12); 4693ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0x12); 4694ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4695ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4696ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4697ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4698ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0xe2); 4699ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0xe2); 4700ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4701ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4702ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4703ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4704ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0x12); 4705ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i8, 0x99, d31, i8, 0x12); 4706ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4707ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4708ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4709ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4710ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0xe2); 4711ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.s8 q0, d2, d31", q0, d2, i8, 0x93, d31, i8, 0xe2); 4712ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4713ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4714ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vaddl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4715ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4716ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSUBW ----\n"); 4717ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4718ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0x12); 4719ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0x12); 4720ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4721ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4722ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0x12); 4723ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.s32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4724ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.s16 q15, q14, d4", q15, q14, i32, 0x73, d4, i8, 0xe2); 4725ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.s8 q0, q1, d31", q0, q1, i32, 0x73, d31, i8, 0xe2); 4726ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.u32 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4727ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.u16 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4728ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubw.u8 q0, q1, d4", q0, q1, i32, 0x73, d4, i8, 0xe2); 4729ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4730ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSUBL ----\n"); 4731ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4732ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0x12); 4733ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0x12); 4734ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4735ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4736ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0x12); 4737ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4738ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i32, 0x73, d4, i8, 0xe2); 4739ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i32, 0x73, d31, i8, 0xe2); 4740ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4741ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4742ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i32, 0x73, d4, i8, 0xe2); 4743ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4744ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0x12); 4745ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i8, 0x99, d31, i8, 0x12); 4746ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4747ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4748ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0x12); 4749ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4750ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s16 q15, d14, d4", q15, d14, i8, 0x93, d4, i8, 0xe2); 4751ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.s8 q0, d2, d31", q0, d2, i8, 0x93, d31, i8, 0xe2); 4752ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u32 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4753ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u16 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4754ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsubl.u8 q0, d2, d4", q0, d2, i8, 0x93, d4, i8, 0xe2); 4755ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4756ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCEQ #0 ----\n"); 4757ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.i32 q0, q1, #0", q0, q1, i32, 0x21); 4758ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.i16 q2, q1, #0", q2, q1, i32, 0x21); 4759ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.i8 q10, q11, #0", q10, q11, i32, 0x21); 4760ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.i32 q0, q1, #0", q0, q1, i32, 0x0); 4761ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.i16 q2, q1, #0", q2, q1, i32, 0x0); 4762ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.i8 q10, q11, #0", q10, q11, i32, 0x0); 4763ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4764ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGT #0 ----\n"); 4765ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s32 q0, q1, #0", q0, q1, i32, 0x21); 4766ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s16 q2, q1, #0", q2, q1, i32, 0x21); 4767ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s8 q10, q11, #0", q10, q11, i32, 0x21); 4768ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s32 q0, q1, #0", q0, q1, i32, 0x0); 4769ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s16 q2, q1, #0", q2, q1, i32, 0x0); 4770ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s8 q10, q11, #0", q10, q11, i32, 0x0); 4771ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s32 q0, q1, #0", q0, q1, i8, 0xef); 4772ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s16 q2, q1, #0", q2, q1, i8, 0xed); 4773ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.s8 q10, q11, #0", q10, q11, i8, 0xae); 4774ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4775ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGE #0 ----\n"); 4776ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i32, 0x21); 4777ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i32, 0x21); 4778ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i32, 0x21); 4779ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i32, 0x0); 4780ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i32, 0x0); 4781ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i32, 0x0); 4782ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i8, 0xef); 4783ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i8, 0xed); 4784ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i8, 0xae); 4785ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s32 q0, q1, #0", q0, q1, i32, 0xef); 4786ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s16 q2, q1, #0", q2, q1, i32, 0xed); 4787ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.s8 q10, q11, #0", q10, q11, i32, 0xae); 4788ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4789ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCLE #0 ----\n"); 4790ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s32 q0, q1, #0", q0, q1, i32, 0x21); 4791ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s16 q2, q1, #0", q2, q1, i32, 0x21); 4792ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s8 q10, q11, #0", q10, q11, i32, 0x21); 4793ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s32 q0, q1, #0", q0, q1, i32, 0x0); 4794ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s16 q2, q1, #0", q2, q1, i32, 0x0); 4795ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s8 q10, q11, #0", q10, q11, i32, 0x0); 4796ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s32 q0, q1, #0", q0, q1, i8, 0xef); 4797ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s16 q2, q1, #0", q2, q1, i8, 0xed); 4798ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.s8 q10, q11, #0", q10, q11, i8, 0xae); 4799ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4800ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCLT #0 ----\n"); 4801ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i32, 0x21); 4802ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i32, 0x21); 4803ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i32, 0x21); 4804ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i32, 0x0); 4805ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i32, 0x0); 4806ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i32, 0x0); 4807ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i8, 0xef); 4808ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i8, 0xed); 4809ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i8, 0xae); 4810ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s32 q0, q1, #0", q0, q1, i32, 0xef); 4811ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s16 q2, q1, #0", q2, q1, i32, 0xed); 4812ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.s8 q10, q11, #0", q10, q11, i32, 0xae); 4813ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4814ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCNT ----\n"); 4815ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcnt.8 q0, q1", q0, q1, i32, 0xac3d25eb); 4816ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcnt.8 q11, q14", q11, q14, i32, 0xac3d25eb); 4817ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcnt.8 q6, q2", q6, q2, i32, 0xad0eb); 4818ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4819ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCLS ----\n"); 4820ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s8 q0, q1", q0, q1, i32, 0x21); 4821ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s8 q10, q15", q10, q15, i8, 0x82); 4822ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s16 q0, q1", q0, q1, i32, 0x21); 4823ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s16 q15, q10", q15, q10, i8, 0x82); 4824ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s32 q6, q1", q6, q1, i32, 0x21); 4825ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s32 q10, q5", q10, q5, i8, 0x82); 4826ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s8 q2, q4", q2, q4, i8, 0xff); 4827ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s16 q2, q4", q2, q4, i8, 0xff); 4828ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s32 q2, q4", q2, q4, i8, 0xff); 4829ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s8 q2, q4", q2, q4, i16, 0xffef); 4830ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s16 q2, q4", q2, q4, i16, 0xffef); 4831ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s32 q2, q4", q2, q4, i16, 0xffef); 4832ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s8 q2, q4", q2, q4, i8, 0x00); 4833ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s16 q2, q4", q2, q4, i8, 0x00); 4834ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s32 q2, q4", q2, q4, i8, 0x00); 4835ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s8 q2, q4", q2, q4, i16, 0x00ef); 4836ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s16 q2, q4", q2, q4, i16, 0x00ef); 4837ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcls.s32 q2, q4", q2, q4, i16, 0x00ef); 4838ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4839ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCLZ ----\n"); 4840ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i8 q0, q1", q0, q1, i32, 0x21); 4841ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i8 q10, q15", q10, q15, i8, 0x82); 4842ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i16 q0, q1", q0, q1, i32, 0x21); 4843ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i16 q15, q10", q15, q10, i8, 0x82); 4844ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i32 q6, q1", q6, q1, i32, 0x21); 4845ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i32 q10, q5", q10, q5, i8, 0x82); 4846ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i8 q2, q4", q2, q4, i8, 0xff); 4847ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i16 q2, q4", q2, q4, i8, 0xff); 4848ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i32 q2, q4", q2, q4, i8, 0xff); 4849ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i8 q2, q4", q2, q4, i16, 0xffef); 4850ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i16 q2, q4", q2, q4, i16, 0xffef); 4851ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i32 q2, q4", q2, q4, i16, 0xffef); 4852ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i8 q2, q4", q2, q4, i8, 0x00); 4853ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i16 q2, q4", q2, q4, i8, 0x00); 4854ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i32 q2, q4", q2, q4, i8, 0x00); 4855ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i8 q2, q4", q2, q4, i16, 0x00ef); 4856ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i16 q2, q4", q2, q4, i16, 0x00ef); 4857ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclz.i32 q2, q4", q2, q4, i16, 0x00ef); 4858ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4859ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSLI ----\n"); 4860ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.16 q0, q1, #1", q0, q1, i32, -1); 4861ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.16 q3, q4, #2", q3, q4, i32, -0x7c); 4862ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.32 q2, q5, #31", q2, q5, i32, -1); 4863ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.8 q6, q7, #7", q6, q7, i32, 0xffff); 4864ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.16 q8, q9, #12", q8, q9, i32, -10); 4865ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.32 q10, q11, #5", q10, q11, i32, 10234); 4866ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.8 q12, q13, #1", q12, q13, i32, -1); 4867ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.16 q14, q15, #11", q14, q15, i32, -1); 4868ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.32 q10, q11, #9", q10, q11, i32, 1000); 4869ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.8 q7, q13, #7", q7, q13, i32, -1); 4870ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.16 q8, q1, #1", q8, q1, i32, 0xabcf); 4871ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.32 q12, q3, #15", q12, q3, i32, -0x1b0); 4872ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.64 q0, q1, #42", q0, q1, i32, -1); 4873ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.64 q6, q7, #12", q6, q7, i32, 0xfac); 4874ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.64 q8, q4, #9", q8, q4, i32, 13560); 4875ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vsli.64 q9, q12, #11", q9, q12, i32, 98710); 4876ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4877ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VPADDL ----\n"); 4878ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u32 q0, q1", q0, q1, i32, 24); 4879ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u32 q0, q1", q0, q1, i32, 140); 4880ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u16 q0, q1", q0, q1, i32, 140); 4881ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u8 q0, q1", q0, q1, i32, 140); 4882ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u8 q0, q1", q0, q1, i32, (1 << 31) + 1); 4883ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u16 q0, q1", q0, q1, i32, (1 << 31) + 1); 4884ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u32 q0, q1", q0, q1, i32, (1 << 31) + 1); 4885ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.u32 q10, q11", q10, q11, i32, 24); 4886ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s32 q0, q1", q0, q1, i32, 24); 4887ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s32 q0, q1", q0, q1, i32, 140); 4888ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s16 q0, q1", q0, q1, i32, 140); 4889ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s8 q0, q1", q0, q1, i32, 140); 4890ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s8 q0, q1", q0, q1, i32, (1 << 31) + 1); 4891ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s16 q0, q1", q0, q1, i32, (1 << 31) + 1); 4892ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s32 q0, q1", q0, q1, i32, (1 << 31) + 1); 4893ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpaddl.s32 q10, q11", q10, q11, i32, 24); 4894ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4895ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VPADAL ----\n"); 4896ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u32 q0, q1", q0, q1, i32, 24); 4897ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u32 q0, q1", q0, q1, i32, 140); 4898ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u16 q0, q1", q0, q1, i32, 140); 4899ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u8 q0, q1", q0, q1, i8, 140); 4900ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u8 q0, q1", q0, q1, i32, (1 << 31) + 1); 4901ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u16 q0, q1", q0, q1, i32, (1 << 31) + 1); 4902ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u32 q0, q1", q0, q1, i32, (1 << 31) + 1); 4903ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.u32 q10, q11", q10, q11, i32, 24); 4904ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s32 q0, q1", q0, q1, i32, 24); 4905ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s32 q0, q1", q0, q1, i32, 140); 4906ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s16 q0, q1", q0, q1, i32, 140); 4907ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s8 q0, q1", q0, q1, i8, 140); 4908ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s8 q0, q1", q0, q1, i32, (1 << 31) + 1); 4909ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s16 q0, q1", q0, q1, i32, (1 << 31) + 1); 4910ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s32 q0, q1", q0, q1, i32, (1 << 31) + 1); 4911ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vpadal.s32 q10, q11", q10, q11, i32, 24); 4912ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4913ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VZIP ----\n"); 4914ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vzip.32 q0, q1", q0, i8, 0x12, q1, i8, 0x34); 4915ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vzip.16 q1, q0", q0, i8, 0x12, q1, i8, 0x34); 4916ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vzip.8 q10, q11", q10, i8, 0x12, q11, i8, 0x34); 4917ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vzip.32 q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4918ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vzip.16 q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4919ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vzip.8 q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 4920ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4921ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VUZP ----\n"); 4922ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vuzp.32 q0, q1", q0, i8, 0x12, q1, i8, 0x34); 4923ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vuzp.16 q1, q0", q0, i8, 0x12, q1, i8, 0x34); 4924ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vuzp.8 q10, q11", q10, i8, 0x12, q11, i8, 0x34); 4925ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vuzp.32 q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4926ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vuzp.16 q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4927ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vuzp.8 q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 4928ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4929ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VTRN ----\n"); 4930ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vtrn.32 q0, q1", q0, i8, 0x12, q1, i8, 0x34); 4931ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vtrn.16 q1, q0", q0, i8, 0x12, q1, i8, 0x34); 4932ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vtrn.8 q10, q11", q10, i8, 0x12, q11, i8, 0x34); 4933ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vtrn.32 q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4934ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vtrn.16 q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4935ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vtrn.8 q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 4936ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4937ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSWP ----\n"); 4938ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vswp q0, q1", q0, i8, 0x12, q1, i8, 0x34); 4939ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vswp q1, q0", q0, i8, 0x12, q1, i8, 0x34); 4940ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vswp q10, q11", q10, i8, 0x12, q11, i8, 0x34); 4941ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vswp q0, q1", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4942ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vswp q1, q0", q0, i32, 0x12345678, q1, i32, 0x0a0b0c0d); 4943ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_dual("vswp q10, q11", q10, i32, 0x12345678, q11, i32, 0x0a0b0c0d); 4944ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4945ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VDUP ----\n"); 4946ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.8 q2, d2[0]", q2, d2, i32, 0xabc4657); 4947ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.8 q3, d3[2]", q3, d3, i32, 0x7a1b3); 4948ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.8 q1, d0[7]", q1, d0, i32, 0x713aaa); 4949ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.8 q0, d4[3]", q0, d4, i32, 0xaa713); 4950ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.8 q4, d28[4]", q4, d28, i32, 0x7b1c3); 4951ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.16 q7, d19[3]", q7, d19, i32, 0x713ffff); 4952ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.16 q15, d31[0]", q15, d31, i32, 0x7f00fa); 4953ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.16 q6, d2[0]", q6, d2, i32, 0xffabcde); 4954ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.16 q8, d22[3]", q8, d22, i32, 0x713); 4955ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.16 q9, d2[0]", q9, d2, i32, 0x713); 4956ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.32 q10, d17[1]", q10, d17, i32, 0x713); 4957ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.32 q15, d11[0]", q15, d11, i32, 0x3); 4958ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.32 q10, d29[1]", q10, d29, i32, 0xf00000aa); 4959ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.32 q12, d0[1]", q12, d0, i32, 0xf); 4960ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vdup.32 q13, d13[0]", q13, d13, i32, -1); 4961ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4962ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMULL ----\n"); 4963ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q0, d1, d2", q0, d1, i32, 24, d2, i32, 120); 4964ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 4965ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 4966ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4967ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 4968ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 4969ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 4970ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4971ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 4972ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 4973ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 4974ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 4975ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 4976ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 4977ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4978ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMULL (by scalar) ----\n"); 4979ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q0, d1, d7[0]", q0, d1, i32, 24, d7, i32, 120); 4980ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q6, d7, d6[0]", q6, d7, i32, 140, d6, i32, -120); 4981ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q9, d11, d7[2]", q9, d11, i32, 0x140, d7, i32, 0x120); 4982ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4983ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 4984ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q4, d5, d6[1]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 4985ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q7, d8, d3[0]", q7, d8, i32, (1 << 31), d3, i32, 12); 4986ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 4987ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 4988ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q10, d11, d15[1]", q10, d11, i32, 24, d15, i32, 120); 4989ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q10, d30, d1[0]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 4990ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q10, d30, d1[1]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 4991ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s32 q10, d30, d1[1]", q10, d30, i32, 1 << 30, d1, i32, 1 << 31); 4992ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmull.s16 q10, d30, d1[3]", q10, d30, i32, 1 << 31, d1, i32, 1 << 30); 4993ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 4994ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMLSL ----\n"); 4995ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q0, d1, d2", q0, d1, i32, 24, d2, i32, 120); 4996ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 4997ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 4998ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 4999ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5000ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 5001ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5002ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 5003ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5004ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5005ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5006ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5007ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5008ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5009ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5010ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMLSL (by scalar) ----\n"); 5011ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q0, d1, d7[0]", q0, d1, i32, 24, d7, i32, 120); 5012ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q6, d7, d6[0]", q6, d7, i32, 140, d6, i32, -120); 5013ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q9, d11, d7[2]", q9, d11, i32, 0x140, d7, i32, 0x120); 5014ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5015ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 5016ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6[1]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 5017ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d3[0]", q7, d8, i32, (1 << 31), d3, i32, 12); 5018ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 5019ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 5020ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q10, d11, d15[1]", q10, d11, i32, 24, d15, i32, 120); 5021ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d1[0]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 5022ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d1[1]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 5023ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s32 q10, d30, d1[1]", q10, d30, i32, 1 << 30, d1, i32, 1 << 31); 5024ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlsl.s16 q10, d30, d1[3]", q10, d30, i32, 1 << 31, d1, i32, 1 << 30); 5025ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5026ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMLAL ----\n"); 5027ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q0, d1, d2", q0, d1, i32, 24, d2, i32, 120); 5028ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5029ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5030ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5031ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5032ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 2); 5033ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5034ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 5035ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5036ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5037ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5038ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5039ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5040ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5041ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5042ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMLAL (by scalar) ----\n"); 5043ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q0, d1, d7[0]", q0, d1, i32, 24, d7, i32, 120); 5044ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q6, d7, d6[0]", q6, d7, i32, 140, d6, i32, -120); 5045ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q9, d11, d7[2]", q9, d11, i32, 0x140, d7, i32, 0x120); 5046ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5047ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 5048ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6[1]", q4, d5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 5049ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q7, d8, d3[0]", q7, d8, i32, (1 << 31), d3, i32, 12); 5050ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q4, d5, d6[2]", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 5051ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q7, d8, d3[1]", q7, d8, i32, (1 << 31) + 1, d3, i32, (1 << 31) + 2); 5052ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q10, d11, d15[1]", q10, d11, i32, 24, d15, i32, 120); 5053ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q10, d30, d1[0]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 5054ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q10, d30, d1[1]", q10, d30, i32, 1 << 31, d1, i32, 1 << 31); 5055ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s32 q10, d30, d1[1]", q10, d30, i32, 1 << 30, d1, i32, 1 << 31); 5056ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmlal.s16 q10, d30, d1[3]", q10, d30, i32, 1 << 31, d1, i32, 1 << 30); 5057ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5058ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMULH ----\n"); 5059ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 5060ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 5061ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 5062ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 5063ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 5064ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) - 0xabcd, q6, i32, (1 << 13) + 2); 5065ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31), q9, i32, 12); 5066ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 5067ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 5068ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q10, q11, q15", q10, q11, i32, 24, q15, i32, 120); 5069ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 5070ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 5071ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 30, q15, i32, 1 << 31); 5072ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 30); 5073ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5074ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQDMULH (by scalar) ----\n"); 5075ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q0, q1, d6[0]", q0, q1, i32, 24, d6, i32, 120); 5076ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q6, q7, d1[1]", q6, q7, i32, 140, d1, i32, -120); 5077ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q9, q11, d7[0]", q9, q11, i32, 0x140, d7, i32, 0x120); 5078ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5079ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q7, q8, d9[1]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5080ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q4, q5, d6[1]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 5081ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31), d9, i32, 12); 5082ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q4, q5, d6[2]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 5083ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5084ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q10, q11, d15[0]", q10, q11, i32, 24, d15, i32, 120); 5085ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 31); 5086ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q10, q14, d7[3]", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 5087ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 30, d15, i32, 1 << 31); 5088ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqdmulh.s16 q10, q14, d7[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 30); 5089ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5090ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSHL (immediate) ----\n"); 5091ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i64 q0, q1, #1", q0, q1, i32, 24); 5092ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i64 q5, q2, #1", q5, q2, i32, (1 << 30)); 5093ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i64 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 5094ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i64 q11, q2, #12", q11, q2, i32, -1); 5095ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i64 q15, q12, #63", q15, q12, i32, 5); 5096ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i64 q5, q12, #62", q5, q12, i32, (1 << 31) + 1); 5097ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i32 q0, q1, #1", q0, q1, i32, 24); 5098ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i32 q5, q2, #1", q5, q2, i32, (1 << 30)); 5099ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i32 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 5100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i32 q11, q2, #12", q11, q2, i32, -1); 5101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i32 q15, q12, #20", q15, q12, i32, 5); 5102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i32 q5, q12, #30", q5, q12, i32, (1 << 31) + 1); 5103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i16 q0, q1, #1", q0, q1, i16, 24); 5104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i16 q5, q2, #1", q5, q2, i32, (1 << 30)); 5105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i16 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 5106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i16 q11, q2, #12", q11, q2, i16, -1); 5107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i16 q15, q12, #3", q15, q12, i16, 5); 5108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i16 q5, q12, #14", q5, q12, i32, (1 << 31) + 1); 5109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i8 q0, q1, #1", q0, q1, i8, 24); 5110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i8 q5, q2, #1", q5, q2, i32, (1 << 30)); 5111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i8 q9, q12, #2", q9, q12, i32, (1 << 31) + 2); 5112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i8 q11, q2, #7", q11, q2, i8, -1); 5113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i8 q15, q12, #3", q15, q12, i8, 5); 5114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshl.i8 q5, q12, #6", q5, q12, i32, (1 << 31) + 1); 5115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VNEG ----\n"); 5117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s32 q0, q1", q0, q1, i32, 0x73); 5118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s16 q15, q4", q15, q4, i32, 0x73); 5119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s8 q8, q7", q8, q7, i32, 0x73); 5120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s32 q0, q1", q0, q1, i32, 0xfe); 5121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s16 q15, q4", q15, q4, i32, 0xef); 5122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s8 q8, q7", q8, q7, i32, 0xde); 5123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s32 q0, q1", q0, q1, i16, 0xfe0a); 5124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s16 q15, q4", q15, q4, i16, 0xef0b); 5125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.s8 q8, q7", q8, q7, i16, 0xde0c); 5126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQNEG ----\n"); 5128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i32, 0x73); 5129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i32, 1 << 31); 5130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s16 q0, q1", q0, q1, i32, 1 << 31); 5131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s8 q0, q1", q0, q1, i32, 1 << 31); 5132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s16 q15, q4", q15, q4, i32, 0x73); 5133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s8 q8, q7", q8, q7, i32, 0x73); 5134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i32, 0xfe); 5135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s16 q15, q4", q15, q4, i32, 0xef); 5136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s8 q8, q7", q8, q7, i32, 0xde); 5137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s32 q0, q1", q0, q1, i16, 0xfe0a); 5138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s16 q15, q4", q15, q4, i16, 0xef0b); 5139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un_q("vqneg.s8 q8, q7", q8, q7, i16, 0xde0c); 5140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VREV ----\n"); 5142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrev64.8 q0, q1", q0, q1, i32, 0xaabbccdd); 5143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrev64.16 q10, q15", q10, q15, i32, 0xaabbccdd); 5144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrev64.32 q1, q14", q1, q14, i32, 0xaabbccdd); 5145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrev32.8 q0, q1", q0, q1, i32, 0xaabbccdd); 5146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrev32.16 q10, q15", q10, q15, i32, 0xaabbccdd); 5147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrev16.8 q0, q1", q0, q1, i32, 0xaabbccdd); 5148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSHLL ----\n"); 5150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s32 q0, d1, #1", q0, d1, i32, 24); 5151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s32 q5, d2, #1", q5, d2, i32, (1 << 30)); 5152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s32 q9, d12, #2", q9, d12, i32, (1 << 31) + 2); 5153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u32 q11, d2, #12", q11, d2, i32, -1); 5154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u32 q15, d12, #20", q15, d12, i32, 5); 5155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u32 q5, d22, #30", q5, d22, i32, (1 << 31) + 1); 5156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s16 q0, d1, #1", q0, d1, i16, 24); 5157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s16 q5, d2, #1", q5, d2, i32, (1 << 30)); 5158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s16 q9, d12, #2", q9, d12, i32, (1 << 31) + 2); 5159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u16 q11, d2, #12", q11, d2, i16, -1); 5160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u16 q15, d22, #3", q15, d22, i16, 5); 5161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u16 q5, d12, #14", q5, d12, i32, (1 << 31) + 1); 5162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s8 q0, d1, #1", q0, d1, i8, 24); 5163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s8 q5, d2, #1", q5, d2, i32, (1 << 30)); 5164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.s8 q9, d12, #2", q9, d12, i32, (1 << 31) + 2); 5165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u8 q11, d2, #7", q11, d2, i8, -1); 5166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u8 q15, d19, #3", q15, d19, i8, 5); 5167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.u8 q5, d12, #6", q5, d12, i32, (1 << 31) + 1); 5168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSHLL (max shift) ----\n"); 5170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i32 q0, d1, #32", q0, d1, i32, 24); 5171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i32 q5, d2, #32", q5, d2, i32, (1 << 30)); 5172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i32 q11, d2, #32", q11, d2, i32, -1); 5173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i32 q15, d12, #32", q15, d12, i32, 5); 5174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i16 q0, d1, #16", q0, d1, i16, 24); 5175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i16 q5, d2, #16", q5, d2, i32, (1 << 30)); 5176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i16 q11, d2, #16", q11, d2, i16, -1); 5177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i16 q15, d22, #16", q15, d22, i16, 5); 5178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i8 q0, d1, #8", q0, d1, i8, 24); 5179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i8 q5, d2, #8", q5, d2, i32, (1 << 30)); 5180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i8 q11, d2, #8", q11, d2, i8, -1); 5181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vshll.i8 q15, d19, #8", q15, d19, i8, 5); 5182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMULL ----\n"); 5184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 5213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 5221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.u32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q9, d11, d12", q9, d11, i32, 0x1a4b0c, d12, i32, 0xd1e2f0); 5229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q4, d15, d26", q4, d15, i32, (1 << 14) - 0xabcd, d26, i32, (1 << 13) + 0xaa2); 5231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q14, d5, d6", q14, d5, i32, (1 << 28) + 0xefe, d6, i32, (1 << 13) + 0x2bbc2d); 5232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q10, d27, d31", q10, d27, i32, 1 << 31, d31, i32, 1 << 30); 5234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmull.p8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLAL ----\n"); 5239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 5268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 5276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlal.u32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLSL ----\n"); 5285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u8 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q0, d1, d12", q0, d1, i32, 0xabcd4, d12, i32, 0xcefab1); 5307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q9, d11, d12", q9, d11, i32, 0x140, d12, i32, 0x120); 5308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q4, d5, d6", q4, d5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q4, d5, d6", q4, d5, i32, (1 << 14) - 0xabcd, d6, i32, (1 << 13) + 0xaa2); 5310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q4, d5, d6", q4, d5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 0x2bbc2d); 5311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u16 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 30); 5313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 5314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.s32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q0, d1, d2", q0, d1, i32, 0xaabbcc4, d2, i32, 0x1b2c0a); 5322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q6, d7, d8", q6, d7, i32, 140, d8, i32, -120); 5323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q7, d8, d9", q7, d8, i32, (1 << 31), d9, i32, 12); 5325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q7, d8, d9", q7, d8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q10, d11, d15", q10, d11, i32, 24, d15, i32, 120); 5327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q10, d30, d31", q10, d30, i32, 1 << 31, d31, i32, 1 << 31); 5328ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmlsl.u32 q10, d30, d31", q10, d30, i32, 1 << 30, d31, i32, 1 << 31); 5329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQRDMULH ----\n"); 5331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q0, q1, q2", q0, q1, i32, 24, q2, i32, 120); 5332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q6, q7, q8", q6, q7, i32, 140, q8, i32, -120); 5333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q9, q11, q12", q9, q11, i32, 0x140, q12, i32, 0x120); 5334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) + 1, q6, i32, (1 << 13) + 2); 5335ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 5336ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 14) - 0xabcd, q6, i32, (1 << 13) + 2); 5337ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31), q9, i32, 12); 5338ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q4, q5, q6", q4, q5, i32, (1 << 28) + 0xfe, q6, i32, (1 << 13) + 2); 5339ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q7, q8, q9", q7, q8, i32, (1 << 31) + 1, q9, i32, (1 << 31) + 2); 5340ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q11, q15", q10, q11, i32, 24, q15, i32, 120); 5341ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 5342ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, (1 << 31) + 1); 5343ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 31); 5344ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q14, q15", q10, q14, i32, 1 << 30, q15, i32, 1 << 31); 5345ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q10, q14, q15", q10, q14, i32, 1 << 31, q15, i32, 1 << 30); 5346ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5347ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VQRDMULH (by scalar) ----\n"); 5348ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q0, q1, d6[0]", q0, q1, i32, 24, d6, i32, 120); 5349ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q6, q7, d1[1]", q6, q7, i32, 140, d1, i32, -120); 5350ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q9, q11, d7[0]", q9, q11, i32, 0x140, d7, i32, 0x120); 5351ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q4, q5, d6[0]", q4, q5, i32, (1 << 14) + 1, d6, i32, (1 << 13) + 2); 5352ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q7, q8, d9[1]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5353ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q4, q5, d6[1]", q4, q5, i32, (1 << 14) - 0xabcd, d6, i16, (1 << 13) + 2); 5354ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31), d9, i32, 12); 5355ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q4, q5, d6[2]", q4, q5, i32, (1 << 28) + 0xfe, d6, i32, (1 << 13) + 2); 5356ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q7, q8, d9[0]", q7, q8, i32, (1 << 31) + 1, d9, i32, (1 << 31) + 2); 5357ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q11, d15[0]", q10, q11, i32, 24, d15, i32, 120); 5358ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 31); 5359ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q10, q14, d7[3]", q10, q14, i32, 1 << 31, q15, i32, (1 << 31) + 1); 5360ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s32 q10, q14, d15[1]", q10, q14, i32, 1 << 30, d15, i32, 1 << 31); 5361ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_q("vqrdmulh.s16 q10, q14, d7[1]", q10, q14, i32, 1 << 31, d7, i32, 1 << 30); 5362ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5363ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VADD (fp) ----\n"); 5364ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5365ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5366ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5367ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5368ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5369ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5370ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5371ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5372ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5373ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5374ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5375ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5376ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5377ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5378ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5379ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5380ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5381ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5382ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5383ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5384ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5385ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5386ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5387ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5388ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5389ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5390ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5391ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5392ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5393ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5394ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5395ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5396ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5397ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5398ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5399ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5400ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5401ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5402ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5403ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vadd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5404ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5405ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VSUB (fp) ----\n"); 5406ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5407ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5408ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5409ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5410ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5411ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q3, q4, q5", q3, q4, i32, f2u(24.89), q5, i32, f2u(1346)); 5412ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5413ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5414ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5415ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5416ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5417ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5418ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5419ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5420ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5421ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5422ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5423ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5424ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5425ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5426ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5427ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5428ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5429ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5430ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5431ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5432ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5433ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5434ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5435ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5436ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5437ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5438ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5439ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5440ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5441ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5442ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5443ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5444ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5445ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vsub.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5446ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5447ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABD (fp) ----\n"); 5448ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5449ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5450ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5451ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5452ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5453ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5454ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5455ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5456ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5457ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5458ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5459ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5460ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5461ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5462ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5463ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5464ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5465ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5466ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5467ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5468ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5469ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5470ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5471ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5472ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5473ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5474ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5475ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5476ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5477ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5478ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5479ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5480ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5481ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5482ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5483ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5484ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5485ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5486ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5487ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vabd.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5488ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5489ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMUL (fp) ----\n"); 5490ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5491ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5492ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5493ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5494ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5495ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5496ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5497ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5498ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5499ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5500ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5501ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5502ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5503ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5504ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5505ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5506ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5507ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5508ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5509ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5510ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5511ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5512ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5513ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5514ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5515ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5516ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5517ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5518ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5519ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5520ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5521ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5522ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5523ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5524ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5525ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5526ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5527ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5528ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5529ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmul.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5530ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5531ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLA (fp) ----\n"); 5532ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5533ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5534ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5535ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5536ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5537ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5538ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5539ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5540ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5541ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5542ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5543ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5544ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5545ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5546ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5547ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5548ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5549ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5550ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5551ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5552ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5553ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5554ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5555ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5556ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5557ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5558ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5559ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5560ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5561ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5562ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5563ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5564ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5565ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5566ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5567ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5568ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5569ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5570ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5571ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5572ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5573ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLA (fp by scalar) ----\n"); 5574ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d4[0]", q0, q1, i32, f2u(24), d4, i32, f2u(120)); 5575ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q15, q8, d7[1]", q15, q8, i32, f2u(140), d7, i32, f2u(-120)); 5576ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 5577ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 5578ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 5579ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e22), d1, i32, f2u(1e-19)); 5580ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e12), d1, i32, f2u(1e11)); 5581ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(NAN)); 5582ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(1.0)); 5583ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(0.0)); 5584ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(INFINITY)); 5585ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(-INFINITY)); 5586ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(NAN)); 5587ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(1.0)); 5588ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(0.0)); 5589ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(INFINITY)); 5590ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(-INFINITY)); 5591ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(NAN)); 5592ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(1.0)); 5593ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(0.0)); 5594ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY)); 5595ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY)); 5596ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(NAN)); 5597ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(1.0)); 5598ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(0.0)); 5599ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY)); 5600ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmla.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY)); 5601ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5602ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLS (fp) ----\n"); 5603ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5604ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5605ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5606ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5607ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5608ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5609ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5610ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5611ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5612ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5613ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5614ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5615ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5616ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5617ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5618ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5619ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5620ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5621ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5622ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5623ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5624ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5625ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5626ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5627ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5628ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5629ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5630ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5631ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5632ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5633ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5634ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5635ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5636ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5637ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5638ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5639ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5640ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5641ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5642ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5643ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5644ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMLS (fp by scalar) ----\n"); 5645ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d4[0]", q0, q1, i32, f2u(24), d4, i32, f2u(120)); 5646ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q15, q8, d7[1]", q15, q8, i32, f2u(140), d7, i32, f2u(-120)); 5647ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q4, q8, d15[1]", q4, q8, i32, (1 << 31) + 1, d15, i32, (1 << 31) + 2); 5648ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31), d1, i16, 12); 5649ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q7, q8, d1[1]", q7, q8, i32, (1 << 31) + 1, d1, i32, (1 << 31) + 2); 5650ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e22), d1, i32, f2u(1e-19)); 5651ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q7, q8, d1[0]", q7, q8, i32, f2u(1e12), d1, i32, f2u(1e11)); 5652ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(NAN)); 5653ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(1.0)); 5654ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(0.0)); 5655ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(INFINITY)); 5656ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(NAN), d2, i32, f2u(-INFINITY)); 5657ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(NAN)); 5658ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(1.0)); 5659ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(0.0)); 5660ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(INFINITY)); 5661ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(0.0), d2, i32, f2u(-INFINITY)); 5662ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(NAN)); 5663ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(1.0)); 5664ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(0.0)); 5665ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(INFINITY)); 5666ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(INFINITY), d2, i32, f2u(-INFINITY)); 5667ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(NAN)); 5668ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(1.0)); 5669ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(0.0)); 5670ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(INFINITY)); 5671ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin_f("vmls.f32 q0, q1, d2[0]", q0, q1, i32, f2u(-INFINITY), d2, i32, f2u(-INFINITY)); 5672ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5673ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCVT (integer <-> fp) ----\n"); 5674ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(3.2)); 5675ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q10, q11", q10, q11, i32, f2u(3e22)); 5676ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q15, q4", q15, q4, i32, f2u(3e9)); 5677ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 5678ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 5679ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5680ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5681ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(3.2)); 5682ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q10, q11", q10, q11, i32, f2u(3e22)); 5683ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q15, q4", q15, q4, i32, f2u(3e9)); 5684ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 5685ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 5686ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5687ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5688ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q1", q0, q1, i32, 7); 5689ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q10, q11", q10, q11, i32, 1 << 31); 5690ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q1", q0, q1, i32, (1U << 31) + 1); 5691ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q1", q0, q1, i32, (1U << 31) - 1); 5692ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q14", q0, q14, i32, 0x30a0bcef); 5693ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q1", q0, q1, i32, 7); 5694ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q10, q11", q10, q11, i32, 1 << 31); 5695ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q1", q0, q1, i32, (1U << 31) + 1); 5696ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q1", q0, q1, i32, (1U << 31) - 1); 5697ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q14", q0, q14, i32, 0x30a0bcef); 5698ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(NAN)); 5699ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(0.0)); 5700ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 5701ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 5702ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(NAN)); 5703ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(0.0)); 5704ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 5705ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 5706ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5707ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCVT (fixed <-> fp) ----\n"); 5708ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(3.2)); 5709ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q10, q11, #1", q10, q11, i32, f2u(3e22)); 5710ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q15, q4, #32", q15, q4, i32, f2u(3e9)); 5711ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q15, q4, #7", q15, q4, i32, f2u(-0.5)); 5712ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q15, q4, #4", q15, q4, i32, f2u(-7.1)); 5713ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q12, q8, #3", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5714ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q12, q8, #3", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5715ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1, #5", q0, q1, i32, f2u(3.2)); 5716ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q10, q11, #1", q10, q11, i32, f2u(3e22)); 5717ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q15, q4, #8", q15, q4, i32, f2u(3e9)); 5718ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q15, q4, #2", q15, q4, i32, f2u(-0.5)); 5719ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q15, q4, #1", q15, q4, i32, f2u(-7.1)); 5720ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q12, q8, #2", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5721ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q12, q8, #2", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5722ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q1, #5", q0, q1, i32, 7); 5723ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q10, q11, #9", q10, q11, i32, 1 << 31); 5724ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q1, #4", q0, q1, i32, (1U << 31) + 1); 5725ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q1, #6", q0, q1, i32, (1U << 31) - 1); 5726ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.u32 q0, q14, #5", q0, q14, i32, 0x30a0bcef); 5727ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q1, #12", q0, q1, i32, 7); 5728ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q10, q11, #8", q10, q11, i32, 1 << 31); 5729ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q1, #2", q0, q1, i32, (1U << 31) + 1); 5730ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q1, #1", q0, q1, i32, (1U << 31) - 1); 5731ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.f32.s32 q0, q14, #6", q0, q14, i32, 0x30a0bcef); 5732ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(NAN)); 5733ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(0.0)); 5734ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(INFINITY)); 5735ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.u32.f32 q0, q1, #3", q0, q1, i32, f2u(-INFINITY)); 5736ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(NAN)); 5737ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(0.0)); 5738ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(INFINITY)); 5739ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcvt.s32.f32 q0, q1, #3", q0, q1, i32, f2u(-INFINITY)); 5740ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5741ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMAX (fp) ----\n"); 5742ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5743ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5744ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5745ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5746ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5747ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5748ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5749ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5750ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5751ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5752ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5753ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5754ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5755ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5756ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5757ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5758ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5759ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5760ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5761ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5762ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 5763ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 5764ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 5765ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 5766ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 5767ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 5768ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5769ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5770ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5771ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5772ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5773ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5774ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5775ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5776ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5777ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5778ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5779ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5780ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5781ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5782ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5783ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5784ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5785ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5786ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5787ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmax.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5788ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5789ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VMIN (fp) ----\n"); 5790ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5791ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5792ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5793ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5794ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5795ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5796ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5797ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5798ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5799ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5800ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5801ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5802ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5803ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5804ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5805ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5806ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5807ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5808ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5809ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5810ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 5811ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 5812ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 5813ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 5814ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 5815ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 5816ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5817ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5818ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5819ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5820ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5821ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5822ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5823ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5824ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5825ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5826ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5827ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5828ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5829ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5830ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5831ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5832ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5833ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5834ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5835ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vmin.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5836ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5837ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRECPE ----\n"); 5838ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q0, q1", q0, q1, i32, f2u(3.2)); 5839ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q10, q11", q10, q11, i32, f2u(3e22)); 5840ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(3e9)); 5841ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(-0.5)); 5842ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(-7.1)); 5843ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5844ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5845ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q0, q1", q0, q1, i32, f2u(3.2)); 5846ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q10, q11", q10, q11, i32, f2u(3e22)); 5847ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.u32 q15, q4", q15, q4, i32, f2u(3e9)); 5848ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 5849ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 5850ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5851ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5852ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, 7); 5853ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q10, q11", q10, q11, i32, 1 << 31); 5854ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 5855ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 5856ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 5857ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, 7); 5858ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q10, q11", q10, q11, i32, 1 << 31); 5859ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 5860ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 5861ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 5862ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(NAN)); 5863ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(0.0)); 5864ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 5865ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 5866ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(NAN)); 5867ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(0.0)); 5868ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 5869ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrecpe.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 5870ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5871ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRECPS ----\n"); 5872ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5873ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5874ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5875ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5876ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5877ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5878ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5879ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5880ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5881ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5882ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5883ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5884ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5885ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5886ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5887ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5888ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5889ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5890ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5891ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5892ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5893ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5894ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5895ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5896ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5897ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5898ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5899ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5900ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5901ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5902ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5903ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5904ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5905ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5906ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5907ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5908ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5909ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5910ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5911ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrecps.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5912ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5913ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VABS (fp) ----\n"); 5914ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(3.2)); 5915ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, f2u(3e22)); 5916ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(3e9)); 5917ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 5918ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 5919ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5920ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5921ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(3.2)); 5922ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, f2u(3e22)); 5923ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(3e9)); 5924ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 5925ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 5926ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 5927ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 5928ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, 7); 5929ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, 1 << 31); 5930ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 5931ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 5932ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 5933ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, 7); 5934ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q10, q11", q10, q11, i32, 1 << 31); 5935ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 5936ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 5937ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 5938ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(NAN)); 5939ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(0.0)); 5940ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 5941ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 5942ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(NAN)); 5943ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(0.0)); 5944ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 5945ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vabs.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 5946ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5947ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGT (fp) ----\n"); 5948ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 5949ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 5950ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 5951ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 5952ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 5953ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 5954ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 5955ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 5956ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 5957ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 5958ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 5959ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 5960ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 5961ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 5962ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 5963ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 5964ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 5965ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 5966ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 5967ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 5968ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 5969ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 5970ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 5971ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 5972ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 5973ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 5974ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 5975ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 5976ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 5977ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 5978ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 5979ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 5980ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 5981ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 5982ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 5983ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 5984ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 5985ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 5986ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 5987ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 5988ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 5989ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 5990ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 5991ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 5992ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 5993ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 5994ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 5995ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 5996ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 5997ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 5998ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGE (fp) ----\n"); 5999ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 6000ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 6001ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 6002ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 6003ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 6004ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 6005ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 6006ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 6007ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 6008ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 6009ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 6010ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 6011ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 6012ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 6013ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 6014ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 6015ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 6016ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 6017ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 6018ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 6019ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 6020ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 6021ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 6022ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 6023ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 6024ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 6025ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 6026ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 6027ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 6028ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 6029ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 6030ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 6031ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 6032ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 6033ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 6034ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 6035ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 6036ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 6037ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 6038ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 6039ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 6040ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 6041ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 6042ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 6043ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 6044ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 6045ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 6046ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 6047ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vcge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 6048ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6049ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VACGT (fp) ----\n"); 6050ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 6051ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 6052ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 6053ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 6054ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 6055ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 6056ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 6057ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 6058ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 6059ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 6060ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 6061ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 6062ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 6063ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 6064ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 6065ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 6066ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 6067ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 6068ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 6069ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 6070ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 6071ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 6072ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 6073ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 6074ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 6075ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 6076ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 6077ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 6078ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 6079ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 6080ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 6081ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 6082ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 6083ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 6084ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 6085ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 6086ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 6087ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 6088ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 6089ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 6090ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 6091ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 6092ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 6093ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 6094ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 6095ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 6096ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 6097ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 6098ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacgt.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 6099ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VACGE (fp) ----\n"); 6101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 6102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 6103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 6104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 6105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 6106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 6107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 6108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 6109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 6110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 6111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 6112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 6113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 6114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 6115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 6116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 6117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 6118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 6119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 6120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 6121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 6122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 6123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 6124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 6125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 6126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 6127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 6128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 6129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 6130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 6131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 6132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 6133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 6134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 6135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 6136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 6137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 6138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 6139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 6140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 6141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 6142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 6143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 6144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 6145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 6146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 6147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 6148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 6149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vacge.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 6150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCEQ (fp) ----\n"); 6152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.5), q2, i32, f2u(-0.5)); 6153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q2, q15, q12", q2, q15, i32, f2u(-0.53), q12, i32, f2u(0.52)); 6154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q15, q7, q8", q15, q7, i32, f2u(231.45), q7, i32, f2u(231.45)); 6155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 6156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 6157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 6158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 6159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 6160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 6161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 6162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 6163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 6164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 6165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 6166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 6167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 6168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 6169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 6170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 6171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 6172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 6173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 6174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 6175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0), q2, i32, f2u(0)); 6176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(1.0/1024.0), q2, i32, f2u(-1.0/1024.0)); 6177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-1.0/1024.0), q2, i32, f2u(1.0/1024.0)); 6178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(2342+1.0/1024.0), q2, i32, f2u(2342-1.0/1024.0)); 6179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-2342+1.0/1024.0), q2, i32, f2u(-2342-1.0/1024.0)); 6180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(89276+1.0/1024.0), q2, i32, f2u(89276+1.0/1024.0)); 6181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 6182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 6183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 6184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 6185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 6186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 6187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 6188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 6189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 6190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 6191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 6192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 6193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 6194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 6195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 6196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 6197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 6198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 6199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 6200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vceq.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 6201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCEQ (fp) #0 ----\n"); 6203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 6204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, 0x1); 6205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 6206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 6207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 6208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q10, q15, #0", q10, q15, i32, 0x0); 6209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 6210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 6211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 6212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vceq.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 6213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGT (fp) #0 ----\n"); 6215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 6216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, 0x1); 6217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 6218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 6219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 6220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q10, q15, #0", q10, q15, i32, 0x0); 6221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 6222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 6223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 6224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcgt.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 6225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCLT (fp) #0 ----\n"); 6227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 6228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, 0x1); 6229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 6230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 6231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 6232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q10, q15, #0", q10, q15, i32, 0x0); 6233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 6234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 6235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 6236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vclt.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 6237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCGE (fp) #0 ----\n"); 6239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 6240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, 0x1); 6241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 6242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 6243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 6244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q10, q15, #0", q10, q15, i32, 0x0); 6245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 6246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 6247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 6248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcge.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 6249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VCLE (fp) #0 ----\n"); 6251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, 0x01000000); 6252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, 0x1); 6253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q2, q1, #0", q2, q1, i32, 1 << 31); 6254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q2, q1, #0", q2, q1, i32, f2u(23.04)); 6255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q2, q1, #0", q2, q1, i32, f2u(-23.04)); 6256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q10, q15, #0", q10, q15, i32, 0x0); 6257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(NAN)); 6258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(0.0)); 6259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(INFINITY)); 6260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vcle.f32 q0, q1, #0", q0, q1, i32, f2u(-INFINITY)); 6261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VNEG (fp) ----\n"); 6263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, 0x01000000); 6264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, 0x1); 6265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q2, q1", q2, q1, i32, 1 << 31); 6266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q2, q1", q2, q1, i32, f2u(23.04)); 6267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q2, q1", q2, q1, i32, f2u(-23.04)); 6268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q10, q15", q10, q15, i32, 0x0); 6269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(NAN)); 6270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(0.0)); 6271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 6272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vneg.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 6273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRSQRTS ----\n"); 6275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q5, q2", q0, q5, i32, f2u(23.04), q2, i32, f2u(-45.5687)); 6276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q3, q4, q5", q3, q4, i32, f2u(-347856.475), q5, i32, f2u(1346)); 6277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(-45786.476)); 6278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q9, q5, q7", q9, q5, i32, f2u(95867.76), q7, i32, f2u(17065)); 6279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q5, q2", q0, q5, i32, f2u(-45667.24), q2, i32, f2u(-248562.76)); 6280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q3, q4, q5", q3, q4, i32, f2u(24), q5, i32, f2u(1346)); 6281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q10, q11, q2", q10, q11, i32, f2u(48755), q2, i32, f2u(1089)); 6282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q9, q5, q7", q9, q5, i32, f2u(214), q7, i32, f2u(1752065)); 6283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q11, q12", q0, q11, i32, f2u(356047.56), q12, i32, f2u(5867.009)); 6284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q7, q1, q6", q7, q1, i32, f2u(34.00046), q6, i32, f2u(0.0024575)); 6285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(2754), q2, i32, f2u(107)); 6286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q3, q4, q5", q3, q4, i32, f2u(874), q5, i32, f2u(1384.6)); 6287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q10, q11, q2", q10, q11, i32, f2u(487.587), q2, i32, f2u(109)); 6288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q9, q5, q7", q9, q5, i32, f2u(2146), q7, i32, f2u(1752)); 6289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q11, q12", q0, q11, i32, f2u(-56.25), q12, i32, f2u(-5786.47)); 6290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q7, q1, q6", q7, q1, i32, f2u(456.2489562), q6, i32, f2u(-7.2945676)); 6291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q5, q2", q0, q5, i32, f2u(532.987), q2, i32, f2u(-0.0045876)); 6292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q10, q13, q15", q10, q13, i32, f2u(-485.2457), q15, i32, f2u(-567.245)); 6293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q10, q13, q15", q10, q13, i32, f2u(278456.45), q15, i32, f2u(8756.0076)); 6294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(876988654), q2, i32, f2u(1224808797)); 6295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(NAN)); 6296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(1.0)); 6297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(0.0)); 6298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(INFINITY)); 6299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(NAN), q2, i32, f2u(-INFINITY)); 6300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(NAN)); 6301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(1.0)); 6302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(0.0)); 6303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(INFINITY)); 6304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(0.0), q2, i32, f2u(-INFINITY)); 6305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(NAN)); 6306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(1.0)); 6307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(0.0)); 6308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(INFINITY)); 6309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(INFINITY), q2, i32, f2u(-INFINITY)); 6310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(NAN)); 6311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(1.0)); 6312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(0.0)); 6313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(INFINITY)); 6314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_bin("vrsqrts.f32 q0, q1, q2", q0, q1, i32, f2u(-INFINITY), q2, i32, f2u(-INFINITY)); 6315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown printf("---- VRSQRTE (fp) ----\n"); 6317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(3.2)); 6318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, f2u(3e22)); 6319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(3e9)); 6320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 6321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 6322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 6323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 6324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(3.2)); 6325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, f2u(3e22)); 6326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(3e9)); 6327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-0.5)); 6328ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q15, q4", q15, q4, i32, f2u(-7.1)); 6329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(8.0 - 1.0/1024.0)); 6330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q12, q8", q12, q8, i32, f2u(-8.0 + 1.0/1024.0)); 6331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, 7); 6332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, 1 << 31); 6333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 6334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 6335ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 6336ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, 7); 6337ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q10, q11", q10, q11, i32, 1 << 31); 6338ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) + 1); 6339ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, (1U << 31) - 1); 6340ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q14", q0, q14, i32, 0x30a0bcef); 6341ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(NAN)); 6342ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(0.0)); 6343ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(INFINITY)); 6344ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown TESTINSN_un("vrsqrte.f32 q0, q1", q0, q1, i32, f2u(-INFINITY)); 6345ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 6346ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown return 0; 6347ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 6348