--- /dev/null
+
+/* Can be compiled both as ARM or Thumb using
+ gcc -Wall -g -O0 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -m{arm,thumb} -o vfp vfp.c
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#ifndef __thumb__
+// ARM
+#define MOVE_to_FPSCR_from_R4 \
+ ".word 0xEEE14A10 @ vmsr FPSCR, r4\n\t"
+#define MOVE_to_R4_from_FPSCR \
+ ".word 0xEEF14A10 @ vmrs r4, FPSCR\n\t"
+#endif
+
+#ifdef __thumb__
+// Thumb
+#define MOVE_to_FPSCR_from_R4 \
+ ".word 0x4A10EEE1 @ vmsr FPSCR, r4\n\t"
+#define MOVE_to_R4_from_FPSCR \
+ ".word 0x4A10EEF1 @ vmrs r4, FPSCR\n\t"
+#endif
+
+static inline unsigned int f2u(float x) {
+ union {
+ float f;
+ unsigned int u;
+ } cvt;
+ cvt.f = x;
+ return cvt.u;
+}
+
+static inline unsigned int f2u0(double x) {
+ union {
+ double f;
+ unsigned int u[2];
+ } cvt;
+ cvt.f = x;
+ return cvt.u[0];
+}
+
+static inline unsigned int f2u1(double x) {
+ union {
+ double f;
+ unsigned int u[2];
+ } cvt;
+ cvt.f = x;
+ return cvt.u[1];
+}
+
+/* test macros to generate and output the result of a single instruction */
+
+const unsigned int mem[] = {
+ 0x121f1e1f, 0x131b1a1b, 0x141c1f1c, 0x151d191d,
+ 0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
+ 0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
+ 0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
+};
+
+#define TESTINSN_vmovf32_imm(instruction, DD, imm) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ instruction ", #"#imm"\n\t"\
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out) \
+ : #DD, "memory" \
+ ); \
+ printf("%s, #" #imm " :: Sd 0x%08x\n", \
+ instruction, out[0]); \
+}
+
+#define TESTINSN_vmov_core_single(instruction, RN, SD, SDval) \
+{ \
+ unsigned int out[1]; \
+\
+ printf(#SD" 0x%08x\t", SDval); \
+ __asm__ volatile( \
+ "mov " #RN ", #0\n\t" \
+ "vmov.f32 " #SD ", %1\n\t" \
+ instruction "\n\t" \
+ "str " #RN ", [%0]\n\t" \
+ : \
+ : "r" (out), "r" (SDval) \
+ : #SD, #RN, "memory" \
+ ); \
+ printf("%s :: "#RN" 0x%08x\n", \
+ instruction, out[0]); \
+}
+
+#define TESTINSN_vmov_single_core(instruction, SD, RN, RNval) \
+{ \
+ unsigned int out[1]; \
+\
+ printf(#RN" 0x%08x\t", RNval); \
+ __asm__ volatile( \
+ "mov " #RN ", %1\n\t" \
+ "vmov " #SD ", #0x40000000\n\t" \
+ instruction "\n\t"\
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (RNval) \
+ : #SD, #RN, "memory" \
+ ); \
+ printf("%s :: "#SD" 0x%08x\n", \
+ instruction, out[0]); \
+}
+
+#define TESTINSN_vmov_2core_2single(instruction, RD1, RD2, SN, SM, SNval, SMval) \
+{ \
+ unsigned int out[2]; \
+\
+ printf("\t\t\t "#SN" 0x%08x "#SM" 0x%08x\n", SNval, SMval); \
+ __asm__ volatile( \
+ "vmov " #SN ", %1\n\t" \
+ "vmov " #SM ", %2\n\t" \
+ "mov " #RD1 ", #0x4\n\t" \
+ "mov " #RD2 ", #0x4\n\t" \
+ instruction "\n\t"\
+ "str " #RD1 ", [%0]\n\t" \
+ "str " #RD2 ", [%0, #+4]\n\t" \
+ : \
+ : "r" (out), "r" (SNval), "r" (SMval) \
+ : #RD1, #RD2, #SN, #SM, "memory" \
+ ); \
+ printf("%s :: "#RD1" 0x%08x "#RD2" 0x%08x\n", \
+ instruction, out[0], out[1]); \
+}
+
+#define TESTINSN_vmov_2single_2core(instruction, SD1, SD2, RN, RM, RNval, RMval) \
+{ \
+ unsigned int out[2]; \
+\
+ printf("\t\t\t "#RN" 0x%08x "#RM" 0x%08x\n", RNval, RMval); \
+ __asm__ volatile( \
+ "mov " #RN ", %1\n\t" \
+ "mov " #RM ", %2\n\t" \
+ "vmov " #SD1 ", #0x40000000\n\t" \
+ "vmov " #SD2 ", #0x40000000\n\t" \
+ instruction "\n\t"\
+ "vstmia %0, {" #SD1 ", " #SD2 " }\n\t" \
+ : \
+ : "r" (out), "r" (RNval), "r" (RMval) \
+ : #SD1, #SD2, #RN, #RM, "memory" \
+ ); \
+ printf("%s :: "#SD1" 0x%08x "#SD2" 0x%08x\n", \
+ instruction, out[0], out[1]); \
+}
+
+#define TESTINSN_vmov_double_2core(instruction, DD, RN, RM, RNval, RMval) \
+{ \
+ unsigned int out[2]; \
+\
+ printf(#RN" 0x%08x "#RM" 0x%08x\t", RNval, RMval); \
+ __asm__ volatile( \
+ "mov " #RN ", %1\n\t" \
+ "mov " #RM ", %2\n\t" \
+ "vmov.i8 " #DD ", #0x55\n\t" \
+ instruction "\n\t"\
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (RNval), "r" (RMval) \
+ : #DD, #RN, #RM, "memory" \
+ ); \
+ printf("%s :: "#DD" 0x%08x 0x%08x\n", \
+ instruction, out[0], out[1]); \
+}
+
+#define TESTINSN_vmov_2core_double(instruction, RD1, RD2, DN, DNval0, DNval1) \
+{ \
+ unsigned int out[2]; \
+\
+ printf(#DN" 0x%08x 0x%08x\t", DNval0, DNval1); \
+ __asm__ volatile( \
+ "mov " #RD1 ", #55\n\t" \
+ "mov " #RD2 ", #55\n\t" \
+ "vmov " #DN ", %1, %2\n\t" \
+ instruction "\n\t" \
+ "str " #RD1 ", [%0]\n\t" \
+ "str " #RD2 ", [%0, #+4]\n\t" \
+ : \
+ : "r" (out), "r" (DNval0), "r" (DNval1) \
+ : #DN, #RD1, #RD2, "memory" \
+ ); \
+ printf("%s :: "#RD1" 0x%08x "#RD2" 0x%08x\n", \
+ instruction, out[0], out[1]); \
+}
+
+#define TESTINSN_un_f64(instruction, DD, DM, DMtype, DMval0, DMval1) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #DD ", #0x55" "\n\t" \
+ "vmov " #DM ", %1, %2 \n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (DMval0), "r" (DMval1) \
+ : #DD, #DM, "memory" \
+ ); \
+ printf("%s :: Dd 0x%08x 0x%08x Dm (" #DMtype ")0x%08x %08x\n", \
+ instruction, out[1], out[0], DMval1, DMval0); \
+}
+
+#define TESTINSN_un_f32(instruction, SD, SM, SMtype, SMval) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov.f32 " #SM ", %1\n\t" \
+ "vmov.f32 " #SD ", %2\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (SMval), "r" (0xffffaaaa) \
+ : #SD, #SM, "memory" \
+ ); \
+ printf("%s :: Sd 0x%08x Sm (" #SMtype ")0x%08x\n", \
+ instruction, out[0], SMval); \
+}
+
+#define TESTINSN_un_cvt_ds(instruction, DD, SM, SMval) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov " #SM ", %1\n\t" \
+ "vmov " #DD ", %2, %2\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (SMval), "r" (0xffffaaaa) \
+ : #DD, #SM, "memory" \
+ ); \
+ printf("%s :: Dd 0x%08x 0x%08x Sm 0x%08x\n", \
+ instruction, out[1], out[0], SMval); \
+}
+
+#define TESTINSN_un_cvt_sd(instruction, SD, DM, DMval0, DMval1) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD ", %3\n\t" \
+ "vmov " #DM ", %1, %2\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (DMval0), "r" (DMval1), "r" (0xffffaaaa) \
+ : #SD, #DM, "memory" \
+ ); \
+ printf("%s :: Sd 0x%08x Dm 0x%08x %08x\n", \
+ instruction, out[0], DMval1, DMval0); \
+}
+
+#define TESTINSN_cvt_i32_f64(instruction, SD, DM, DMval0, DMval1) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #DM ", %1, %2\n\t" \
+ "vmov " #SD ", %3\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (DMval0), "r" (DMval1), "r" (0xffffaaaa) \
+ : #SD, #DM, "memory" \
+ ); \
+ printf("%s :: Sd 0x%08x Dm 0x%08x %08x\n", \
+ instruction, out[0], DMval1, DMval0); \
+}
+
+#define TESTINSN_cvt_f64_i32(instruction, DD, SM, SMval) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov " #SM ", %1\n\t" \
+ "vmov " #DD ", %2, %2\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (SMval), "r" (0xfffffff0) \
+ : #DD, #SM, "memory" \
+ ); \
+ printf("%s :: Dd 0x%08x %08x Sm 0x%08x\n", \
+ instruction, out[0], out[1], SMval); \
+}
+
+#define TESTINSN_un_f64_q_vmrs(instruction, DD, DM, DMtype, DMval, RN) \
+{ \
+ unsigned int out[2]; \
+ unsigned int fpscr; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #DD ", #0x55" "\n\t" \
+ "mov r4, #0\n\t" \
+ ".word 0xEEE14A10 @ vmsr FPSCR, "#RN"\n\t" \
+ "vdup." #DMtype " " #DM ", %2\n\t" \
+ instruction "\n\t" \
+ "vstmia %1, {" #DD "}\n\t" \
+ ".word 0xEEF14A10 @ vmrs "#RN", FPSCR\n\t" \
+ "mov %0, r4" \
+ : "=r" (fpscr) \
+ : "r" (out), "r" (DMval) \
+ : #DD, #DM, "memory", #RN \
+ ); \
+ printf("%s :: Dd 0x%08x 0x%08x Dm (" #DMtype ")0x%08x fpscr %08x\n", \
+ instruction, out[1], out[0], DMval, fpscr); \
+}
+
+#define TESTINSN_core_to_scalar(instruction, DD, DM, DMval) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #DD ", #0x55" "\n\t" \
+ "mov " #DM ", %1\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (DMval) \
+ : #DD, #DM, "memory" \
+ ); \
+ printf("%s :: Dd 0x%08x 0x%08x Dm 0x%08x\n", \
+ instruction, out[1], out[0], DMval); \
+}
+
+#define TESTINSN_vldr_f64(instruction, DD, RN, RNval, imm) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #DD ", #0x55" "\n\t" \
+ "mov " #RN ", %1\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (RNval) \
+ : #DD, #RN, "memory" \
+ ); \
+ printf("%s :: Dd 0x%08x 0x%08x *(int*) (Rn + shift) 0x%04x\n", \
+ instruction, out[1], out[0], *(int*) (RNval + imm)); \
+}
+
+#define TESTINSN_vldr_f32(instruction, SD, RN, RNval, imm) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD ", %3" "\n\t" \
+ "mov " #RN ", %1\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (RNval), "r" (imm), "r" (0xffffffaa) \
+ : #SD, #RN, "memory" \
+ ); \
+ printf("%s :: Sd 0x%08x *(int*) (Rn + shift) 0x%04x\n", \
+ instruction, out[0], *(int*) (RNval + imm)); \
+}
+
+#define TESTINSN_vstr64(instruction, DD, DDval, RM, RMval, imm) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #DD ", #" #DDval "\n\t" \
+ "add %1, %1, #" #imm "\n\t" \
+ "mov " #RM ", #0x55\n\t" \
+ "str " #RM ", [%1]\n\t" \
+ "str " #RM ", [%1, #4]\n\t" \
+ "sub %1, %1, #" #imm "\n\t" \
+ "mov " #RM ", %1\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #DD "}\n\t" \
+ : \
+ : "r" (out), "r" (RMval) \
+ : #DD, #RM, "memory" \
+ ); \
+ printf("%s :: Dd 0x%08x 0x%08x *(int*) (Rm + shift) 0x%04x\n", \
+ instruction, out[1], out[0], *(int*) (RMval + imm)); \
+}
+
+#define TESTINSN_vstr32(instruction, SD, RM, RMval, imm) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD ", #0xbe280000\n\t" \
+ "mov " #RM ", #0x55\n\t" \
+ "str " #RM ", [%1, #" #imm "]\n\t" \
+ "mov " #RM ", %1\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (RMval) \
+ : #SD, #RM, "memory" \
+ ); \
+ printf("%s :: Sd 0x%08x, *(int*) (Rm + shift) 0x%04x\n", \
+ instruction, out[0], *(int*) (RMval + imm)); \
+}
+
+#define TESTINSN_scalar_to_core(instruction, QD, QM, QMtype, QMval) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "mov " #QD ", #0x55" "\n\t" \
+ "vdup." #QMtype " " #QM ", %1\n\t" \
+ instruction "\n\t" \
+ "str " #QD ", [%0]\n\t" \
+ : \
+ : "r" (out), "r" (QMval) \
+ : #QD, #QM, "memory" \
+ ); \
+ printf("%s :: Rd 0x%08x Qm (" #QMtype ")0x%08x\n", \
+ instruction, out[0], QMval); \
+}
+
+#define TESTINSN_VLDn(instruction, QD1, QD2, QD3, QD4) \
+{ \
+ unsigned int out[8]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD1 ", #0x55" "\n\t" \
+ "vmov.i8 " #QD2 ", #0x55" "\n\t" \
+ "vmov.i8 " #QD3 ", #0x55" "\n\t" \
+ "vmov.i8 " #QD4 ", #0x55" "\n\t" \
+ instruction ", [%1]\n\t" \
+ "mov r4, %0\n\t" \
+ "vstmia %0!, {" #QD1 "}\n\t" \
+ "vstmia %0!, {" #QD2 "}\n\t" \
+ "vstmia %0!, {" #QD3 "}\n\t" \
+ "vstmia %0!, {" #QD4 "}\n\t" \
+ "mov %0, r4\n\t" \
+ : \
+ : "r" (out), "r" (mem) \
+ : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
+ ); \
+ printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "\
+ "0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ instruction, out[0], out[1], out[2], out[3], out[4],\
+ out[5], out[6], out[7]); \
+}
+
+#define TESTINSN_VSTMIAnoWB(instruction, RN, QD, QDval) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD ", " #QDval "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ instruction "\n\t" \
+ : \
+ : "r" (out), "r" (mem) \
+ : #QD, "memory", #RN \
+ ); \
+ printf("%s :: Result 0x%08x 0x%08x\n", \
+ instruction, out[0], out[1]); \
+}
+
+#define TESTINSN_VSTMIAnoWB32(instruction, RN, SD, SDval) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD ", %2\n\t" \
+ "mov " #RN ", %0\n\t" \
+ instruction "\n\t" \
+ : \
+ : "r" (out), "r" (mem), "r" (SDval) \
+ : #SD, "memory", #RN \
+ ); \
+ printf("%s :: Result 0x%08x\n", \
+ instruction, out[0]); \
+}
+
+#define TESTINSN_VSTMIAWB(RN, QD1, QD2) \
+{ \
+ unsigned int out[4]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD1 ", #0xa0" "\n\t" \
+ "vmov.i8 " #QD2 ", #0xb1" "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ "vstmia " #RN "!, {" #QD1 "}\n\t" \
+ "vstmia " #RN "!, {" #QD2 "}\n\t" \
+ : \
+ : "r" (out), "r" (mem) \
+ : #QD1, #QD2, "memory", #RN \
+ ); \
+ printf("vstmia "#RN"!, "#QD1"; vstmia "#RN"!, "#QD2" :: Result 0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ out[0], out[1], out[2], out[3]); \
+}
+
+#define TESTINSN_VSTMIAWB32(RN, SD1, SD2) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD1 ", #0xbff80000" "\n\t" \
+ "vmov " #SD2 ", #0x3fa80000" "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ "vstmia " #RN "!, {" #SD1 "}\n\t" \
+ "vstmia " #RN "!, {" #SD2 "}\n\t" \
+ : \
+ : "r" (out), "r" (mem) \
+ : #SD1, #SD2, "memory", #RN \
+ ); \
+ printf("vstmia " #RN "!, "#SD1"; vstmia "#RN"!, "#SD2" :: Result 0x%08x 0x%08x\n", \
+ out[0], out[1]); \
+}
+
+#define TESTINSN_VSTMDB(RN, QD1, QD2) \
+{ \
+ unsigned int out[4]; \
+ long endout = (long) out + 8; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD1 ", #0xaa" "\n\t" \
+ "vmov.i8 " #QD2 ", #0xbb" "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ "vstmdb " #RN "!, {" #QD1 "}\n\t" \
+ "vstmdb " #RN "!, {" #QD2 "}\n\t" \
+ "mov %0, " #RN "\n\t" \
+ : \
+ : "r" (endout), "r" (mem) \
+ : #QD1, #QD2, "memory", #RN \
+ ); \
+ printf("vstmdb " #RN "!, " #QD2 "; vstmdb " #RN "!, " #QD2 \
+ " :: Result 0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ out[0], out[1], out[2], out[3]); \
+}
+
+#define TESTINSN_VLDMIAnoWB(instruction, RN, QD) \
+{ \
+ unsigned int in[2] = {0xaa0, 0xbb1}; \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD ", #0x55" "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ instruction "\n\t" \
+ "mov " #RN ", %1\n\t" \
+ "vstmia " #RN ", {" #QD "}\n\t" \
+ : \
+ : "r" (in), "r" (out), "r" (mem) \
+ : #QD, "memory", #RN \
+ ); \
+ printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ instruction, out[0], out[1], out[2], out[3]); \
+}
+
+#define TESTINSN_VLDMIAWB(RN, QD1, QD2) \
+{ \
+ unsigned int in[4] = {0xaa0, 0xbb1, 0xcc2, 0xdd3}; \
+ unsigned int out[4]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD1 ", #0x55" "\n\t" \
+ "vmov.i8 " #QD2 ", #0x55" "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ "vldmia " #RN "!, {" #QD1 "}\n\t" \
+ "vldmia " #RN "!, {" #QD2 "}\n\t" \
+ "mov " #RN ", %1\n\t" \
+ "vstmia " #RN "!, {" #QD1 "}\n\t" \
+ "vstmia " #RN "!, {" #QD2 "}\n\t" \
+ : \
+ : "r" (in), "r" (out), "r" (mem) \
+ : #QD1, #QD2, "memory", #RN \
+ ); \
+ printf("vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ out[0], out[1], out[2], out[3]); \
+}
+
+#define TESTINSN_VLDMDB(RN, QD1, QD2) \
+{ \
+ unsigned int in[4] = {0xaa0, 0xbb1, 0xcc2, 0xdd3}; \
+ unsigned int out[4]; \
+ long endin = (long) in + 16; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD1 ", #0x55" "\n\t" \
+ "vmov.i8 " #QD2 ", #0x55" "\n\t" \
+ "mov " #RN ", %0\n\t" \
+ "vldmdb " #RN "!, {" #QD1 "}\n\t" \
+ "vldmdb " #RN "!, {" #QD2 "}\n\t" \
+ "mov " #RN ", %1\n\t" \
+ "vstmia " #RN "!, {" #QD1 "}\n\t" \
+ "vstmia " #RN "!, {" #QD2 "}\n\t" \
+ : \
+ : "r" (endin), "r" (out), "r" (mem) \
+ : #QD1, #QD2, "memory", #RN \
+ ); \
+ printf("vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ out[0], out[1], out[2], out[3]); \
+}
+
+#define TESTINSN_VLDR(instruction, dD, rN, rNval, offset) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #dD ", #0x55\n\t" \
+ "mov " #rN ", %1\n\t" \
+ instruction ", #" #offset "]\n\t" \
+ "vstmia %0, {" #dD "}\n\t" \
+ : \
+ : "r" (out), "r" (rNval) \
+ : #dD, "memory" \
+ ); \
+ printf("%s :: dD 0x%08x 0x%08x rN 0x%08x\n", \
+ instruction, out[1], out[0], rNval); \
+}
+
+
+#define TESTINSN_vpush_vpop_f32(S1, Sval1, S2, Sval2, S3, Sval3, S4, S5, S6) \
+{ \
+ unsigned int out[6]; \
+\
+ __asm__ volatile( \
+ "vmov "#S4", %4\n\t" \
+ "vmov "#S5", %4\n\t" \
+ "vmov "#S6", %4\n\t" \
+ "vmov "#S1", %1\n\t" \
+ "vmov "#S2", %2\n\t" \
+ "vmov "#S3", %3\n\t" \
+ "vpush {"#S1", "#S2"}\n\t" \
+ "vpush {"#S3"}\n\t" \
+ "vpop {"#S4"}\n\t" \
+ "vpop {"#S5", "#S6"}\n\t" \
+ "mov r4, %0\n\t" \
+ "vstmia %0!, {"#S1"}\n\t" \
+ "vstmia %0!, {"#S2"}\n\t" \
+ "vstmia %0!, {"#S3"}\n\t" \
+ "vstmia %0!, {"#S4"}\n\t" \
+ "vstmia %0!, {"#S5"}\n\t" \
+ "vstmia %0!, {"#S6"}\n\t" \
+ "mov %0, r4\n\t" \
+ : \
+ : "r" (out), "r" (Sval1), "r" (Sval2), "r" (Sval3), "r" (0x55555555) \
+ : #S1, #S2, #S3, #S4, #S5, #S6, "r4", "memory" \
+ ); \
+ printf(#S1" 0x%08x "#S2" 0x%08x "#S3" 0x%08x "#S4" 0x%08x "\
+ #S5" 0x%08x "#S6" 0x%08x\n", out[0], out[1],\
+ out[2], out[3], out[4], out[5]); \
+}
+
+#define TESTINSN_vpush_vpop_f64(D1, Dval10, Dval11, D2, Dval20, Dval21, D3, D4) \
+{ \
+ unsigned int out[8]; \
+\
+ __asm__ volatile( \
+ "vmov "#D3", %4, %4\n\t" \
+ "vmov "#D4", %4, %4\n\t" \
+ "vmov "#D1", %1, %2\n\t" \
+ "vmov "#D2", %3, %4\n\t" \
+ "vpush {"#D1", "#D2"}\n\t" \
+ "vpop {"#D3", "#D4"}\n\t" \
+ "mov r4, %0\n\t" \
+ "vstmia %0!, {"#D1"}\n\t" \
+ "vstmia %0!, {"#D2"}\n\t" \
+ "vstmia %0!, {"#D3"}\n\t" \
+ "vstmia %0!, {"#D4"}\n\t" \
+ "mov %0, r4\n\t" \
+ : \
+ : "r" (out), "r" (Dval10), "r" (Dval11), "r" (Dval20), "r" (Dval21), "r" (0x55555555) \
+ : #D1, #D2, #D3, #D4, "r4", "memory" \
+ ); \
+ printf(#D1" 0x%08x %08x "#D2" 0x%08x %08x "#D3" 0x%08x %08x "#D4" 0x%08x %08x\n",\
+ out[0],out[1], out[2],out[3], out[4],out[5], out[6],out[7]); \
+}
+
+#define TESTINSN_VSTn(instruction, QD1, QD2, QD3, QD4) \
+{ \
+ unsigned int out[8]; \
+\
+ memset(out, 0x55, 8 * (sizeof(unsigned int)));\
+ __asm__ volatile( \
+ "mov r4, %1\n\t" \
+ "vldmia %1!, {" #QD1 "}\n\t" \
+ "vldmia %1!, {" #QD2 "}\n\t" \
+ "vldmia %1!, {" #QD3 "}\n\t" \
+ "vldmia %1!, {" #QD4 "}\n\t" \
+ "mov %1, r4\n\t" \
+ instruction ", [%0]\n\t" \
+ : \
+ : "r" (out), "r" (mem) \
+ : #QD1, #QD2, #QD3, #QD4, "memory", "r4" \
+ ); \
+ printf("%s :: Result 0x%08x 0x%08x 0x%08x 0x%08x "\
+ "0x%08x 0x%08x 0x%08x 0x%08x\n", \
+ instruction, out[0], out[1], out[2], out[3], out[4],\
+ out[5], out[6], out[7]); \
+}
+
+#define TESTINSN_bin(instruction, QD, QM, QMtype, QMval, QN, QNtype, QNval) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vmov.i8 " #QD ", #0x55" "\n\t" \
+ "vdup." #QMtype " " #QM ", %1\n\t" \
+ "vdup." #QNtype " " #QN ", %2\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #QD "}\n\t" \
+ : \
+ : "r" (out), "r" (QMval), "r" (QNval) \
+ : #QD, #QM, #QN, "memory" \
+ ); \
+ printf("%s :: Qd 0x%08x 0x%08x Qm (" #QMtype ")0x%08x" \
+ " Qn (" #QNtype ")0x%08x\n", \
+ instruction, out[1], out[0], QMval, QNval); \
+}
+
+#define TESTINSN_bin_f64(instruction, QD, QM, QMtype, QMval0, QMval1, QN, QNtype, QNval0, QNval1) \
+{ \
+ unsigned int out[2]; \
+\
+ __asm__ volatile( \
+ "vdup.i32 " #QD ", %5\n\t" \
+ "vmov " #QM ", %1, %2 \n\t" \
+ "vmov " #QN ", %3, %4 \n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #QD "}\n\t" \
+ : \
+ : "r" (out), "r" (QMval0), "r" (QMval1), "r" (QNval0), "r" (QNval1), "r"(0x3f800000) \
+ : #QD, #QM, #QN, "memory" \
+ ); \
+ printf("%s :: Qd 0x%08x 0x%08x Qm 0x%08x %08x" \
+ " Qn 0x%08x %08x\n", \
+ instruction, out[1], out[0], QMval1, QMval0, QNval1, QNval0); \
+}
+
+#define TESTINSN_bin_f32(instruction, SD, SM, SMtype, SMval, SN, SNtype, SNval) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov.f32 " #SM ", %1\n\t" \
+ "vmov.f32 " #SN ", %2\n\t" \
+ "vmov.f32 " #SD ", %3\n\t" \
+ instruction "\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (SMval), "r" (SNval), "r" (0xaaaaaaaa) \
+ : #SD, #SM, #SN, "memory" \
+ ); \
+ printf("%s :: Sd 0x%08x Sm (" #SMtype ")0x%08x" \
+ " Sn (" #SNtype ")0x%08x\n", \
+ instruction, out[0], SMval, SNval); \
+}
+
+#define TESTINSN_cmp_f64(instruction, DD, DDval0, DDval1, DM, DMval0, DMval1) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #DD ", %1, %2\n\t" \
+ "vmov " #DM ", %3, %4\n\t" \
+ "mov r4, #0\n\t" \
+ MOVE_to_FPSCR_from_R4 \
+ instruction "\n\t" \
+ MOVE_to_R4_from_FPSCR \
+ "str r4, [%0]\n\t" \
+ : \
+ : "r" (out), "r" (DDval0), "r" (DDval1),"r" (DMval0), "r" (DMval1) \
+ : #DD, #DM, "r4", "memory" \
+ ); \
+ printf("%s :: FPSCR 0x%08x Dd 0x%08x %08x" \
+ " Dm 0x%08x %08x\n", \
+ instruction, out[0] & 0xffffff60, DDval1, DDval0, DMval1, DMval0); \
+}
+
+#define TESTINSN_cmp_f32(instruction, SD, SDval, SM, SMval) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD ", %1\n\t" \
+ "vmov " #SM ", %2\n\t" \
+ "mov r4, #0\n\t" \
+ MOVE_to_FPSCR_from_R4 \
+ instruction "\n\t" \
+ MOVE_to_R4_from_FPSCR \
+ "str r4, [%0]\n\t" \
+ : \
+ : "r" (out), "r" (SDval),"r" (SMval) \
+ : #SD, #SM, "r4", "memory" \
+ ); \
+ printf("%s :: FPSCR 0x%01x Sd 0x%08x" \
+ " Sm 0x%08x\n", \
+ instruction, (out[0] & 0xf0000000) >> 28, SDval, SMval); \
+}
+
+#define TESTINSN_cmpz_f32(instruction, SD, SDval) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #SD ", %1\n\t" \
+ instruction ", #0\n\t" \
+ MOVE_to_R4_from_FPSCR \
+ "vmov " #SD ", r4\n\t" \
+ "vstmia %0, {" #SD "}\n\t" \
+ : \
+ : "r" (out), "r" (SDval)\
+ : #SD, "r4", "memory" \
+ ); \
+ printf("%s :: FPSCR 0x%08x Sd 0x%08x\n", \
+ instruction, out[0] & 0xffffff60, SDval); \
+}
+
+#define TESTINSN_cmpz_f64(instruction, DD, DDval0, DDval1) \
+{ \
+ unsigned int out[1]; \
+\
+ __asm__ volatile( \
+ "vmov " #DD ", %1, %2\n\t" \
+ instruction ", #0\n\t" \
+ MOVE_to_R4_from_FPSCR \
+ "str r4, [%0]\n\t" \
+ : \
+ : "r" (out), "r" (DDval0), "r" (DDval1) \
+ : #DD, "r4", "memory" \
+ ); \
+ printf("%s :: FPSCR 0x%08x Dd 0x%08x %08x\n", \
+ instruction, out[0] & 0xffffff60, DDval1, DDval0); \
+}
+
+static void do_vldm_vstm_check(void)
+{
+ int i;
+ const char *format = "\t0x%08x\n";
+ unsigned int data[] = {
+ 0x1a1b1c1d, 0x2a2b2c2d, 0x3a3b3c3d, 0x4a4b4c4d,
+ 0x5a5b5c5d, 0x6a6b6c6d, 0x7a7b7c7d, 0x8a8b8c8d,
+ 0x9a9b9c9d, 0xaaabacad, 0xbabbbcbd, 0xcacbcccd,
+ 0xdadbdcdd, 0xeaebeced, 0xfafbfcfd, 0x0a0b0c0d
+ };
+ unsigned int res;
+ printf("do_vldm_vstm_check:\n");
+ __asm__ volatile(
+ "mov r1, %0\n\t"
+ "vldmia r1!, {s0, s1, s2, s3}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s2\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s3\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "add r1, %0, #32\n\t"
+ "vldmdb r1!, {s5, s6}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s6\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "add r1, %0, #4\n\t"
+ "vldmia r1, {s0, s1, s2, s3}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s2\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s3\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, s0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "add r1, %0, #48\n\t"
+ "vldmia r1!, {d30, d31}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, r5, d30\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "mov r1, r5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, r5, d31\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "mov r1, r5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "add r1, %0, #44\n\t"
+ "vldmia r1, {d30, d31}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, r5, d30\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "mov r1, r5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, r5, d31\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "mov r1, r5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "add r1, %0, #40\n\t"
+ "vldmdb r1!, {d30, d31}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, r5, d30\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "mov r1, r5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "vmov r1, r5, d31\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ "mov r0, %1\n\t"
+ "mov r1, r5\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "mov r0, #0x55\n\t"
+ "vmov s0, r0\n\t"
+ "mov r0, #0x56\n\t"
+ "vmov s1, r0\n\t"
+ "mov r0, #0x57\n\t"
+ "vmov s2, r0\n\t"
+ "mov r0, #0x58\n\t"
+ "vmov s3, r0\n\t"
+ "add r1, %0, #0\n\t"
+ "vstmia r1!, {s0, s1, s2, s3}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "mov r0, #0x65\n\t"
+ "vmov s16, r0\n\t"
+ "mov r0, #0x66\n\t"
+ "vmov s17, r0\n\t"
+ "add r1, %0, #16\n\t"
+ "vstmia r1, {s16, s17}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "mov r0, #0x75\n\t"
+ "vmov s16, r0\n\t"
+ "mov r0, #0x76\n\t"
+ "vmov s17, r0\n\t"
+ "add r1, %0, #32\n\t"
+ "vstmdb r1!, {s16, s17}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "mov r0, #0x42\n\t"
+ "mov r1, #0x43\n\t"
+ "vmov d30, r0, r1\n\t"
+ "mov r0, #0x40\n\t"
+ "mov r1, #0x41\n\t"
+ "vmov d31, r0, r1\n\t"
+ "mov r0, #0x57\n\t"
+ "add r1, %0, #32\n\t"
+ "vstmia r1!, {d30, d31}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "mov r0, #0x32\n\t"
+ "mov r1, #0x33\n\t"
+ "vmov d10, r0, r1\n\t"
+ "mov r0, #0x57\n\t"
+ "add r1, %0, #48\n\t"
+ "vstmia r1, {d10}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+/* --- */
+ "mov r0, #0x22\n\t"
+ "mov r1, #0x23\n\t"
+ "vmov d10, r0, r1\n\t"
+ "mov r0, #0x57\n\t"
+ "add r1, %0, #64\n\t"
+ "vstmdb r1!, {d10}\n\t"
+ "mov r0, %1\n\t"
+ "sub r1, r1, %0\n\t"
+ "mov r3, r1\n\t"
+ "bl printf\n\t"
+ :
+ : "r" (data), "r" (format), "r"(&res)
+ : "r0", "r1", "r2", "r3", "r5", "r12", "r14", "memory",
+ "s0", "s1", "s2", "s3", "s5", "s6", "s16", "s17",
+ "d10", "d30", "d31"
+ );
+ printf("data:\n");
+ for (i = 0; i < 16; i++) {
+ printf("\t0x%08x\n", data[i]);
+ }
+}
+
+int main(int argc, char **argv)
+{
+ do_vldm_vstm_check();
+
+ printf("---- VMOV (ARM core register to scalar) ----\n");
+ TESTINSN_core_to_scalar("vmov.32 d0[0], r5", d0, r5, f2u(13));
+ TESTINSN_core_to_scalar("vmov.32 d1[1], r6", d1, r6, 0x12);
+ TESTINSN_core_to_scalar("vmov.32 d20[0], r5", d20, r5, f2u(NAN));
+ TESTINSN_core_to_scalar("vmov.32 d29[1], r6", d29, r6, f2u(172));
+ TESTINSN_core_to_scalar("vmov.32 d30[0], r5", d30, r5, f2u(INFINITY));
+ TESTINSN_core_to_scalar("vmov.32 d11[1], r6", d11, r6, f2u(-INFINITY));
+ TESTINSN_core_to_scalar("vmov.32 d18[0], r5", d11, r5, f2u(653));
+ TESTINSN_core_to_scalar("vmov.32 d9[1], r6", d9, r6, 12);
+ TESTINSN_core_to_scalar("vmov.16 d0[0], r5", d0, r5, 13);
+ TESTINSN_core_to_scalar("vmov.16 d14[1], r5", d14, r5, f2u(NAN));
+ TESTINSN_core_to_scalar("vmov.16 d28[2], r6", d28, r6, 14);
+ TESTINSN_core_to_scalar("vmov.16 d30[3], r1", d30, r1, 17);
+ TESTINSN_core_to_scalar("vmov.16 d0[0], r5", d0, r5, f2u(INFINITY));
+ TESTINSN_core_to_scalar("vmov.16 d7[1], r5", d7, r5, f2u(-INFINITY));
+ TESTINSN_core_to_scalar("vmov.16 d21[2], r6", d21, r6, 14);
+ TESTINSN_core_to_scalar("vmov.16 d17[3], r1", d17, r1, 17);
+ TESTINSN_core_to_scalar("vmov.8 d0[0], r5", d0, r5, 13);
+ TESTINSN_core_to_scalar("vmov.8 d10[1], r5", d10, r5, f2u(NAN));
+ TESTINSN_core_to_scalar("vmov.8 d20[2], r5", d20, r5, f2u(INFINITY));
+ TESTINSN_core_to_scalar("vmov.8 d30[3], r5", d30, r5, f2u(-INFINITY));
+ TESTINSN_core_to_scalar("vmov.8 d13[4], r5", d13, r5, 213);
+ TESTINSN_core_to_scalar("vmov.8 d17[5], r5", d17, r5, 1343);
+ TESTINSN_core_to_scalar("vmov.8 d24[6], r5", d24, r5, 111);
+ TESTINSN_core_to_scalar("vmov.8 d29[7], r5", d29, r5, 173);
+
+ printf("---- VMOV (scalar to ARM core register) ----\n");
+ TESTINSN_scalar_to_core("vmov.32 r5, d0[0]", r5, d0, i32, f2u(NAN));
+ TESTINSN_scalar_to_core("vmov.32 r6, d5[1]", r6, d5, i32, f2u(INFINITY));
+ TESTINSN_scalar_to_core("vmov.32 r4, d10[0]", r4, d10, i32, f2u(-INFINITY));
+ TESTINSN_scalar_to_core("vmov.32 r5, d15[1]", r5, d15, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.32 r9, d20[0]", r9, d20, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.32 r8, d25[1]", r8, d25, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.32 r0, d30[0]", r0, d30, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.32 r2, d19[1]", r2, d19, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u16 r5, d31[0]", r5, d31, i32, f2u(NAN));
+ TESTINSN_scalar_to_core("vmov.u16 r3, d30[1]", r3, d30, i32, f2u(INFINITY));
+ TESTINSN_scalar_to_core("vmov.u16 r6, d21[2]", r6, d21, i32, f2u(-INFINITY));
+ TESTINSN_scalar_to_core("vmov.u16 r9, d26[3]", r9, d26, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u16 r12, d11[0]", r12, d11, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u16 r0, d10[1]", r0, d10, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u16 r6, d1[2]", r6, d1, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u16 r8, d5[3]", r8, d5, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u8 r2, d4[0]", r2, d4, i32, f2u(NAN));
+ TESTINSN_scalar_to_core("vmov.u8 r6, d14[1]", r6, d14, i32, f2u(INFINITY));
+ TESTINSN_scalar_to_core("vmov.u8 r9, d24[2]", r9, d24, i32, f2u(-INFINITY));
+ TESTINSN_scalar_to_core("vmov.u8 r8, d31[3]", r8, d31, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u8 r10, d29[4]", r10, d29, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u8 r3, d19[5]", r3, d19, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u8 r12, d12[6]", r12, d12, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.u8 r10, d18[4]", r10, d18, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s16 r5, d31[0]", r5, d31, i32, f2u(NAN));
+ TESTINSN_scalar_to_core("vmov.s16 r3, d30[1]", r3, d30, i32, f2u(INFINITY));
+ TESTINSN_scalar_to_core("vmov.s16 r6, d21[2]", r6, d21, i32, f2u(-INFINITY));
+ TESTINSN_scalar_to_core("vmov.s16 r9, d26[3]", r9, d26, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s16 r4, d11[0]", r4, d11, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s16 r0, d10[1]", r0, d10, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s16 r6, d1[2]", r6, d1, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s16 r8, d5[3]", r8, d5, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s8 r2, d4[0]", r2, d4, i32, f2u(NAN));
+ TESTINSN_scalar_to_core("vmov.s8 r6, d14[1]", r6, d14, i32, f2u(INFINITY));
+ TESTINSN_scalar_to_core("vmov.s8 r9, d24[2]", r9, d24, i32, f2u(-INFINITY));
+ TESTINSN_scalar_to_core("vmov.s8 r8, d31[3]", r8, d31, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s8 r6, d29[4]", r6, d29, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s8 r3, d19[5]", r3, d19, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s8 r12, d12[6]", r12, d12, i32, 0x11223344);
+ TESTINSN_scalar_to_core("vmov.s8 r10, d18[7]", r10, d18, i32, 0x11223344);
+
+ printf("---- VMLA (fp) ----\n");
+ TESTINSN_bin_f64("vmla.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmla.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmla.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vmla.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vmla.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmla.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vmla.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vmla.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vmla.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vmla.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vmla.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vmla.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vmla.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vmla.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vmla.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vmla.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vmla.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vmla.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vmla.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vmla.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vmla.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vmla.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vmla.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vmla.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vmla.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmla.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmla.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vmla.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vmla.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmla.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vmla.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vmla.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vmla.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vmla.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vmla.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vmla.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vmla.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vmla.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vmla.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vmla.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vmla.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vmla.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vmla.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vmla.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vmla.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vmla.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vmla.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vmla.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VNMLA (fp) ----\n");
+ TESTINSN_bin_f64("vnmla.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmla.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmla.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vnmla.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vnmla.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmla.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vnmla.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vnmla.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vnmla.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vnmla.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vnmla.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vnmla.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vnmla.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vnmla.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vnmla.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vnmla.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vnmla.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vnmla.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vnmla.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vnmla.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vnmla.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vnmla.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vnmla.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vnmla.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vnmla.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmla.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmla.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vnmla.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vnmla.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmla.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vnmla.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vnmla.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vnmla.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vnmla.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vnmla.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vnmla.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vnmla.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vnmla.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vnmla.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vnmla.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vnmla.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vnmla.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vnmla.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752.));
+ TESTINSN_bin_f32("vnmla.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vnmla.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vnmla.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vnmla.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vnmla.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VMLS (fp) ----\n");
+ TESTINSN_bin_f64("vmls.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmls.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmls.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vmls.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vmls.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmls.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vmls.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vmls.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vmls.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vmls.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vmls.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vmls.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vmls.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vmls.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vmls.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vmls.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vmls.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vmls.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vmls.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vmls.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vmls.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vmls.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vmls.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vmls.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vmls.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmls.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmls.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vmls.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vmls.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmls.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vmls.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vmls.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vmls.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vmls.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vmls.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vmls.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vmls.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vmls.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vmls.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vmls.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vmls.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vmls.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vmls.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vmls.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vmls.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vmls.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vmls.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vmls.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VNMLS (fp) ----\n");
+ TESTINSN_bin_f64("vnmls.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmls.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmls.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vnmls.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vnmls.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmls.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vnmls.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vnmls.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vnmls.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vnmls.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vnmls.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vnmls.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vnmls.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vnmls.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vnmls.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vnmls.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vnmls.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vnmls.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vnmls.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vnmls.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vnmls.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vnmls.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vnmls.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vnmls.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vnmls.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmls.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmls.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vnmls.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vnmls.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmls.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vnmls.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vnmls.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vnmls.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vnmls.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vnmls.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vnmls.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vnmls.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vnmls.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vnmls.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vnmls.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vnmls.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vnmls.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vnmls.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vnmls.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vnmls.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vnmls.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vnmls.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vnmls.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VMUL (fp) ----\n");
+ TESTINSN_bin_f64("vmul.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmul.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmul.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vmul.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vmul.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vmul.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vmul.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vmul.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vmul.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vmul.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vmul.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vmul.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vmul.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vmul.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vmul.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vmul.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vmul.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vmul.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vmul.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vmul.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vmul.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vmul.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vmul.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vmul.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vmul.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmul.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmul.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vmul.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vmul.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vmul.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vmul.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vmul.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vmul.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vmul.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vmul.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vmul.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vmul.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vmul.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vmul.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vmul.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vmul.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vmul.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vmul.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vmul.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vmul.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vmul.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vmul.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vmul.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VNMUL (fp) ----\n");
+ TESTINSN_bin_f64("vnmul.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmul.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmul.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vnmul.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vnmul.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vnmul.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vnmul.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vnmul.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vnmul.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vnmul.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vnmul.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vnmul.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vnmul.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vnmul.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vnmul.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vnmul.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vnmul.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vnmul.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vnmul.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vnmul.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vnmul.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vnmul.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vnmul.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vnmul.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vnmul.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmul.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmul.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vnmul.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vnmul.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vnmul.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vnmul.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vnmul.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vnmul.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vnmul.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vnmul.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vnmul.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vnmul.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vnmul.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vnmul.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vnmul.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vnmul.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vnmul.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vnmul.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vnmul.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vnmul.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vnmul.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vnmul.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vnmul.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VADD (fp) ----\n");
+ TESTINSN_bin_f64("vadd.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vadd.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vadd.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vadd.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vadd.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vadd.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vadd.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vadd.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vadd.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vadd.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vadd.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vadd.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vadd.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vadd.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vadd.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vadd.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vadd.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vadd.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vadd.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vadd.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vadd.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vadd.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vadd.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vadd.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vadd.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vadd.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vadd.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vadd.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vadd.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vadd.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vadd.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vadd.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vadd.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vadd.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vadd.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vadd.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vadd.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vadd.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vadd.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vadd.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vadd.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vadd.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vadd.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vadd.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vadd.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vadd.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vadd.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vadd.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VSUB (fp) ----\n");
+ TESTINSN_bin_f64("vsub.f64 d0, d11, d12", d0, d11, i32, f2u0(-INFINITY), f2u1(-INFINITY), d12, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vsub.f64 d7, d1, d6", d7, d1, i32, f2u0(INFINITY), f2u1(INFINITY), d6, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vsub.f64 d0, d5, d2", d0, d5, i32, f2u0(NAN), f2u1(NAN), d2, i32, f2u0(-1.0), f2u1(-1.0));
+ TESTINSN_bin_f64("vsub.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vsub.f64 d10, d13, d15", d10, d13, i32, f2u0(NAN), f2u1(NAN), d15, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_bin_f64("vsub.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vsub.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vsub.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vsub.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vsub.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vsub.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vsub.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vsub.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vsub.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vsub.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vsub.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vsub.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vsub.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vsub.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vsub.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vsub.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vsub.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vsub.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vsub.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vsub.f32 s0, s11, s12", s0, s11, i32, f2u(-INFINITY), s12, i32, f2u(NAN));
+ TESTINSN_bin_f32("vsub.f32 s7, s1, s6", s7, s1, i32, f2u(INFINITY), s6, i32, f2u(NAN));
+ TESTINSN_bin_f32("vsub.f32 s0, s5, s2", s0, s5, i32, f2u(NAN), s2, i32, f2u(-1.0));
+ TESTINSN_bin_f32("vsub.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vsub.f32 s10, s13, s15", s10, s13, i32, f2u(NAN), s15, i32, f2u(NAN));
+ TESTINSN_bin_f32("vsub.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vsub.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vsub.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vsub.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vsub.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vsub.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vsub.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vsub.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vsub.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vsub.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vsub.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vsub.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vsub.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vsub.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vsub.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vsub.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vsub.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vsub.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vsub.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VDIV (fp) ----\n");
+ TESTINSN_bin_f64("vdiv.f64 d20, d25, d22", d20, d25, i32, f2u0(23.04), f2u1(23.04), d22, i32, f2u0(-45.5687), f2u1(-45.5687));
+ TESTINSN_bin_f64("vdiv.f64 d23, d24, d25", d23, d24, i32, f2u0(-347856.475), f2u1(-347856.475), d25, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vdiv.f64 d20, d31, d12", d20, d31, i32, f2u0(48755), f2u1(48755), d12, i32, f2u0(-45786.476), f2u1(-45786.476));
+ TESTINSN_bin_f64("vdiv.f64 d19, d25, d27", d19, d25, i32, f2u0(95867.76), f2u1(95867.76), d27, i32, f2u0(17065), f2u1(17065));
+ TESTINSN_bin_f64("vdiv.f64 d30, d15, d2", d30, d15, i32, f2u0(-45667.24), f2u1(-45667.24), d2, i32, f2u0(-248562.76), f2u1(-248562.76));
+ TESTINSN_bin_f64("vdiv.f64 d23, d24, d5", d23, d24, i32, f2u0(24), f2u1(24), d5, i32, f2u0(1346), f2u1(1346));
+ TESTINSN_bin_f64("vdiv.f64 d10, d11, d2", d10, d11, i32, f2u0(48755), f2u1(48755), d2, i32, f2u0(1089), f2u1(1089));
+ TESTINSN_bin_f64("vdiv.f64 d29, d15, d7", d29, d15, i32, f2u0(214), f2u1(214), d7, i32, f2u0(1752065), f2u1(1752065));
+ TESTINSN_bin_f64("vdiv.f64 d30, d11, d12", d30, d11, i32, f2u0(356047.56), f2u1(356047.56), d12, i32, f2u0(5867.009), f2u1(5867.009));
+ TESTINSN_bin_f64("vdiv.f64 d27, d21, d6", d27, d21, i32, f2u0(34.00046), f2u1(34.00046), d6, i32, f2u0(0.0024575), f2u1(0.0024575));
+ TESTINSN_bin_f64("vdiv.f64 d30, d31, d2", d30, d31, i32, f2u0(2754), f2u1(2754), d2, i32, f2u0(107), f2u1(107));
+ TESTINSN_bin_f64("vdiv.f64 d13, d24, d5", d13, d24, i32, f2u0(874), f2u1(874), d5, i32, f2u0(1384.6), f2u1(1384.6));
+ TESTINSN_bin_f64("vdiv.f64 d10, d11, d2", d10, d11, i32, f2u0(487.587), f2u1(487.587), d2, i32, f2u0(109), f2u1(109));
+ TESTINSN_bin_f64("vdiv.f64 d29, d25, d7", d29, d25, i32, f2u0(-INFINITY), f2u1(-INFINITY), d7, i32, f2u0(1752), f2u1(1752));
+ TESTINSN_bin_f64("vdiv.f64 d0, d11, d12", d0, d11, i32, f2u0(INFINITY), f2u1(INFINITY), d12, i32, f2u0(-5786.47), f2u1(-5786.47));
+ TESTINSN_bin_f64("vdiv.f64 d27, d21, d16", d27, d21, i32, f2u0(456.2489562), f2u1(456.2489562), d16, i32, f2u0(-7.2945676), f2u1(-7.2945676));
+ TESTINSN_bin_f64("vdiv.f64 d0, d5, d2", d0, d5, i32, f2u0(INFINITY), f2u1(INFINITY), d2, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_bin_f64("vdiv.f64 d20, d13, d15", d20, d13, i32, f2u0(-INFINITY), f2u1(-INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f64("vdiv.f64 d10, d23, d15", d10, d23, i32, f2u0(INFINITY), f2u1(INFINITY), d15, i32, f2u0(0.0), f2u1(0.0));
+ TESTINSN_bin_f32("vdiv.f32 s20, s25, s22", s20, s25, i32, f2u(23.04), s22, i32, f2u(-45.5687));
+ TESTINSN_bin_f32("vdiv.f32 s23, s24, s25", s23, s24, i32, f2u(-347856.475), s25, i32, f2u(1346));
+ TESTINSN_bin_f32("vdiv.f32 s20, s31, s12", s20, s31, i32, f2u(48755), s12, i32, f2u(-45786.476));
+ TESTINSN_bin_f32("vdiv.f32 s19, s25, s27", s19, s25, i32, f2u(95867.76), s27, i32, f2u(17065));
+ TESTINSN_bin_f32("vdiv.f32 s30, s15, s2", s30, s15, i32, f2u(-45667.24), s2, i32, f2u(-248562.76));
+ TESTINSN_bin_f32("vdiv.f32 s23, s24, s5", s23, s24, i32, f2u(24), s5, i32, f2u(1346));
+ TESTINSN_bin_f32("vdiv.f32 s10, s11, s2", s10, s11, i32, f2u(48755), s2, i32, f2u(1089));
+ TESTINSN_bin_f32("vdiv.f32 s29, s15, s7", s29, s15, i32, f2u(214), s7, i32, f2u(1752065));
+ TESTINSN_bin_f32("vdiv.f32 s30, s11, s12", s30, s11, i32, f2u(356047.56), s12, i32, f2u(5867.009));
+ TESTINSN_bin_f32("vdiv.f32 s27, s21, s6", s27, s21, i32, f2u(34.00046), s6, i32, f2u(0.0024575));
+ TESTINSN_bin_f32("vdiv.f32 s30, s31, s2", s30, s31, i32, f2u(2754), s2, i32, f2u(107));
+ TESTINSN_bin_f32("vdiv.f32 s13, s24, s5", s13, s24, i32, f2u(874), s5, i32, f2u(1384.6));
+ TESTINSN_bin_f32("vdiv.f32 s10, s11, s2", s10, s11, i32, f2u(487.587), s2, i32, f2u(109));
+ TESTINSN_bin_f32("vdiv.f32 s29, s25, s7", s29, s25, i32, f2u(-INFINITY), s7, i32, f2u(1752));
+ TESTINSN_bin_f32("vdiv.f32 s0, s11, s12", s0, s11, i32, f2u(INFINITY), s12, i32, f2u(-5786.47));
+ TESTINSN_bin_f32("vdiv.f32 s27, s21, s16", s27, s21, i32, f2u(456.2489562), s16, i32, f2u(-7.2945676));
+ TESTINSN_bin_f32("vdiv.f32 s0, s5, s2", s0, s5, i32, f2u(INFINITY), s2, i32, f2u(-INFINITY));
+ TESTINSN_bin_f32("vdiv.f32 s20, s13, s15", s20, s13, i32, f2u(-INFINITY), s15, i32, f2u(0.0));
+ TESTINSN_bin_f32("vdiv.f32 s10, s23, s15", s10, s23, i32, f2u(INFINITY), s15, i32, f2u(0.0));
+
+ printf("---- VABS ----\n");
+ TESTINSN_un_f64("vabs.f64 d15, d4", d15, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vabs.f64 d31, d4", d31, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vabs.f64 d25, d25", d25, d24, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vabs.f64 d18, d17", d18, d17, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vabs.f64 d30, d1", d30, d1, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vabs.f64 d8, d27", d8, d27, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vabs.f64 d20, d1", d20, d1, i32, f2u0(76543.001002), f2u1(76543.001002));
+ TESTINSN_un_f64("vabs.f64 d28, d7", d28, d7, i32, f2u0(-4856.234), f2u1(-4856.234));
+ TESTINSN_un_f64("vabs.f64 d2, d19", d2, d19, i32,f2u0(87.098217), f2u1(87.098217));
+ TESTINSN_un_f64("vabs.f64 d8, d7", d8, d7, i32, f2u0(-122156.2), f2u1(-122156.2));
+ TESTINSN_un_f32("vabs.f32 s15, s4", s15, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vabs.f32 s31, s4", s31, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vabs.f32 s25, s25", s25, s24, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vabs.f32 s18, s17", s18, s17, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vabs.f32 s30, s1", s30, s1, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vabs.f32 s8, s27", s8, s27, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vabs.f32 s20, s1", s20, s1, i32, f2u(76543.001002));
+ TESTINSN_un_f32("vabs.f32 s28, s7", s28, s7, i32, f2u(-4856.234));
+ TESTINSN_un_f32("vabs.f32 s2, s19", s2, s19, i32,f2u(87.098217));
+ TESTINSN_un_f32("vabs.f32 s8, s7", s8, s7, i32, f2u(-122156.2));
+
+ printf("---- VNEG ----\n");
+ TESTINSN_un_f64("vneg.f64 d15, d4", d15, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vneg.f64 d31, d4", d31, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vneg.f64 d25, d25", d25, d24, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vneg.f64 d18, d17", d18, d17, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vneg.f64 d30, d1", d30, d1, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vneg.f64 d8, d27", d8, d27, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vneg.f64 d20, d1", d20, d1, i32, f2u0(76543.001002), f2u1(76543.001002));
+ TESTINSN_un_f64("vneg.f64 d28, d7", d28, d7, i32, f2u0(-4856.234), f2u1(-4856.234));
+ TESTINSN_un_f64("vneg.f64 d2, d19", d2, d19, i32,f2u0(87.098217), f2u1(87.098217));
+ TESTINSN_un_f64("vneg.f64 d8, d7", d8, d7, i32, f2u0(-122156.2), f2u1(-122156.2));
+ TESTINSN_un_f32("vneg.f32 s15, s4", s15, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vneg.f32 s31, s4", s31, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vneg.f32 s25, s25", s25, s24, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vneg.f32 s18, s17", s18, s17, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vneg.f32 s30, s1", s30, s1, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vneg.f32 s8, s27", s8, s27, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vneg.f32 s20, s1", s20, s1, i32, f2u(76543.001002));
+ TESTINSN_un_f32("vneg.f32 s28, s7", s28, s7, i32, f2u(-4856.234));
+ TESTINSN_un_f32("vneg.f32 s2, s19", s2, s19, i32,f2u(87.098217));
+ TESTINSN_un_f32("vneg.f32 s8, s7", s8, s7, i32, f2u(-122156.2));
+
+ printf("---- VMOV (register) ----\n");
+ TESTINSN_un_f64("vmov.f64 d15, d4", d15, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vmov.f64 d31, d4", d31, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vmov.f64 d25, d25", d25, d24, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vmov.f64 d18, d17", d18, d17, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vmov.f64 d30, d1", d30, d1, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vmov.f64 d8, d27", d8, d27, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vmov.f64 d20, d1", d20, d1, i32, f2u0(76543.001002), f2u1(76543.001002));
+ TESTINSN_un_f64("vmov.f64 d28, d7", d28, d7, i32, f2u0(-4856.234), f2u1(-4856.234));
+ TESTINSN_un_f64("vmov.f64 d2, d19", d2, d19, i32,f2u0(87.098217), f2u1(87.098217));
+ TESTINSN_un_f64("vmov.f64 d8, d7", d8, d7, i32, f2u0(-122156.2), f2u1(-122156.2));
+ TESTINSN_un_f32("vmov.f32 s15, s4", s15, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vmov.f32 s31, s4", s31, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vmov.f32 s25, s25", s25, s24, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vmov.f32 s18, s17", s18, s17, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vmov.f32 s30, s1", s30, s1, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vmov.f32 s8, s27", s8, s27, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vmov.f32 s20, s1", s20, s1, i32, f2u(76543.001002));
+ TESTINSN_un_f32("vmov.f32 s28, s7", s28, s7, i32, f2u(-4856.234));
+ TESTINSN_un_f32("vmov.f32 s2, s19", s2, s19, i32,f2u(87.098217));
+ TESTINSN_un_f32("vmov.f32 s8, s7", s8, s7, i32, f2u(-122156.2));
+
+ printf("---- VSQRT ----\n");
+ TESTINSN_un_f64("vsqrt.f64 d15, d4", d15, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vsqrt.f64 d31, d4", d31, d4, i32, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_f64("vsqrt.f64 d25, d25", d25, d24, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vsqrt.f64 d18, d17", d18, d17, i32, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_un_f64("vsqrt.f64 d30, d1", d30, d1, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vsqrt.f64 d8, d27", d8, d27, i32, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_f64("vsqrt.f64 d20, d1", d20, d1, i32, f2u0(76543.001002), f2u1(76543.001002));
+ TESTINSN_un_f64("vsqrt.f64 d28, d7", d28, d7, i32, f2u0(-4856.234), f2u1(-4856.234));
+ TESTINSN_un_f64("vsqrt.f64 d2, d19", d2, d19, i32,f2u0(87.098217), f2u1(87.098217));
+ TESTINSN_un_f64("vsqrt.f64 d8, d7", d8, d7, i32, f2u0(-122156.2), f2u1(-122156.2));
+ TESTINSN_un_f32("vsqrt.f32 s15, s4", s15, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vsqrt.f32 s31, s4", s31, s4, i32, f2u(NAN));
+ TESTINSN_un_f32("vsqrt.f32 s25, s25", s25, s24, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vsqrt.f32 s18, s17", s18, s17, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vsqrt.f32 s30, s1", s30, s1, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vsqrt.f32 s8, s27", s8, s27, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vsqrt.f32 s20, s1", s20, s1, i32, f2u(76543.001002));
+ TESTINSN_un_f32("vsqrt.f32 s28, s7", s28, s7, i32, f2u(-4856.234));
+ TESTINSN_un_f32("vsqrt.f32 s2, s19", s2, s19, i32,f2u(87.098217));
+ TESTINSN_un_f32("vsqrt.f32 s8, s7", s8, s7, i32, f2u(-122156.2));
+
+ printf("---- VCVT (integer <-> fp) ----\n");
+ TESTINSN_un_f32("vcvt.u32.f32 s0, s1", s0, s1, i32, f2u(3.2));
+ TESTINSN_un_f32("vcvt.u32.f32 s10, s11", s10, s11, i32, f2u(3e22));
+ TESTINSN_un_f32("vcvt.u32.f32 s15, s4", s15, s4, i32, f2u(3e9));
+ TESTINSN_un_f32("vcvt.u32.f32 s25, s24", s25, s24, i32, f2u(-0.5));
+ TESTINSN_un_f32("vcvt.u32.f32 s19, s21", s19, s21, i32, f2u(-7.1));
+ TESTINSN_un_f32("vcvt.u32.f32 s12, s8", s12, s8, i32, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.u32.f32 s12, s18", s12, s18, i32, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.u32.f32 s30, s1", s30, s1, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.u32.f32 s11, s1", s11, s1, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.u32.f32 s21, s12", s21, s12, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.u32.f32 s20, s11", s20, s11, i32, f2u(NAN));
+ TESTINSN_un_f32("vcvt.s32.f32 s29, s13", s29, s13, i32, f2u(NAN));
+ TESTINSN_un_f32("vcvt.s32.f32 s9, s19", s9, s19, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.s32.f32 s0, s17", s0, s17, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.s32.f32 s0, s1", s0, s1, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.s32.f32 s30, s11", s30, s11, i32, f2u(3.2));
+ TESTINSN_un_f32("vcvt.s32.f32 s20, s21", s20, s21, i32, f2u(3e22));
+ TESTINSN_un_f32("vcvt.s32.f32 s15, s14", s15, s14, i32, f2u(3e9));
+ TESTINSN_un_f32("vcvt.s32.f32 s15, s24", s15, s24, i32, f2u(-0.5));
+ TESTINSN_un_f32("vcvt.s32.f32 s15, s29", s15, s29, i32, f2u(-7.1));
+ TESTINSN_un_f32("vcvt.s32.f32 s12, s31", s12, s31, i32, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.s32.f32 s1, s8", s1, s8, i32, f2u(-8.0 + 1.0/1024.0));
+
+ TESTINSN_un_f32("vcvt.f32.u32 s30, s1", s30, s1, i32, f2u(7));
+ TESTINSN_un_f32("vcvt.f32.u32 s10, s17", s10, s17, i32, f2u(1 << 31));
+ TESTINSN_un_f32("vcvt.f32.u32 s20, s1", s20, s1, i32, f2u((1U << 31) + 1));
+ TESTINSN_un_f32("vcvt.f32.u32 s24, s26", s24, s26, i32, f2u((1U << 31) - 1));
+ TESTINSN_un_f32("vcvt.f32.u32 s0, s14", s0, s14, i32, f2u(0x30a0bcef));
+ TESTINSN_un_f32("vcvt.f32.u32 s11, s1", s11, s1, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.f32.u32 s21, s12", s21, s12, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.f32.u32 s29, s13", s29, s13, i32, f2u(NAN));
+ TESTINSN_un_f32("vcvt.f32.s32 s0, s1", s0, s1, i32, f2u(7));
+ TESTINSN_un_f32("vcvt.f32.s32 s30, s31", s30, s31, i32, f2u(1 << 31));
+ TESTINSN_un_f32("vcvt.f32.s32 s0, s12", s0, s12, i32, f2u((1U << 31) + 1));
+ TESTINSN_un_f32("vcvt.f32.s32 s10, s16", s10, s16, i32, f2u((1U << 31) - 1));
+ TESTINSN_un_f32("vcvt.f32.s32 s1, s8", s1, s8, i32, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.f32.s32 s29, s13", s29, s13, i32, f2u(NAN));
+ TESTINSN_un_f32("vcvt.f32.s32 s9, s19", s9, s19, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.f32.s32 s0, s17", s0, s17, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.f32.s32 s0, s1", s0, s1, i32, f2u(-INFINITY));
+
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s0, d1", s0, d1, f2u0(3.2), f2u1(3.2));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s13, d26", s13, d26, f2u0(234.54), f2u1(234.54));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s29, d30", s29, d30, f2u0(46245.345), f2u1(46245.345));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s30, d21", s30, d21, f2u0(-8.0 + 1.0/1024.0), f2u1(-8.0 + 1.0/1024.0));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s11, d8", s11, d8, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s8, d12", s8, d12, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s19, d7", s19, d7, f2u0(NAN), f2u1(NAN));
+ TESTINSN_cvt_i32_f64("vcvt.u32.f64 s16, d16", s16, d16, f2u0(76.67), f2u1(76.67));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s0, d1", s0, d1, f2u0(3.2), f2u1(3.2));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s13, d26", s13, d26, f2u0(234.54), f2u1(234.54));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s29, d30", s29, d30, f2u0(46245.345), f2u1(46245.345));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s30, d21", s30, d21, f2u0(-8.0 + 1.0/1024.0), f2u1(-8.0 + 1.0/1024.0));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s11, d8", s11, d8, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s8, d12", s8, d12, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s19, d7", s19, d7, f2u0(NAN), f2u1(NAN));
+ TESTINSN_cvt_i32_f64("vcvt.s32.f64 s16, d16", s16, d16, f2u0(76.67), f2u1(76.67));
+
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d0, s1", d0, s1, f2u(3.2));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d30, s21", d30, s21, f2u(-656.42));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d16, s12", d16, s12, f2u(870.024));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d29, s7", d29, s7, f2u(-2543.4506));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d12, s28", d12, s28, f2u(5.00003245));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d7, s5", d7, s5, f2u(-INFINITY));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d21, s20", d21, s20, f2u(INFINITY));
+ TESTINSN_cvt_f64_i32("vcvt.f64.u32 d11, s11", d11, s11, f2u(NAN));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d0, s1", d0, s1, f2u(3.2));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d30, s21", d30, s21, f2u(-656.42));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d16, s12", d16, s12, f2u(870.024));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d29, s7", d29, s7, f2u(-2543.4506));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d12, s28", d12, s28, f2u(5.00003245));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d7, s5", d7, s5, f2u(-INFINITY));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d21, s20", d21, s20, f2u(INFINITY));
+ TESTINSN_cvt_f64_i32("vcvt.f64.s32 d11, s11", d11, s11, f2u(NAN));
+
+/* printf("---- VCVT (fixed <-> fp) ----\n");
+ TESTINSN_un_f32("vcvt.u32.f32 s0, s0, #3", s0, s0, i32, f2u(3.2));
+ TESTINSN_un_f32("vcvt.u32.f32 s11, s11, #1", s11, s11, i32, f2u(3e22));
+ TESTINSN_un_f32("vcvt.u32.f32 s15, s15, #32", s15, s15, i32, f2u(3e9));
+ TESTINSN_un_f32("vcvt.u32.f32 s4, s4, #7", s4, s4, i32, f2u(-0.5));
+ TESTINSN_un_f32("vcvt.u32.f32 s6, s6, #4", s6, s6, i32, f2u(-7.1));
+ TESTINSN_un_f32("vcvt.u32.f32 s12, s12, #3", s12, s12, i32, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.u32.f32 s8, s8, #3", s8, s8, i32, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.u32.f32 s30, s30, #3", s30, s30, i32, f2u(NAN));
+ TESTINSN_un_f32("vcvt.u32.f32 s20, s20, #3", s20, s20, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.u32.f32 s13, s13, #6", s13, s13, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.u32.f32 s16, s16, #3", s16, s16, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.s32.f32 s1, s1, #5", s1, s1, i32, f2u(3.2));
+ TESTINSN_un_f32("vcvt.s32.f32 s21, s21, #1", s21, s21, i32, f2u(3e22));
+ TESTINSN_un_f32("vcvt.s32.f32 s17, s17, #8", s17, s17, i32, f2u(3e9));
+ TESTINSN_un_f32("vcvt.s32.f32 s27, s27, #2", s27, s27, i32, f2u(-0.5));
+ TESTINSN_un_f32("vcvt.s32.f32 s15, s15, #1", s15, s15, i32, f2u(-7.1));
+ TESTINSN_un_f32("vcvt.s32.f32 s8, s8, #2", s8, s8, i32, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.s32.f32 s31, s31, #2", s31, s31, i32, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.s32.f32 s10, s10, #3", s10, s10, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.s32.f32 s13, s13, #9", s13, s13, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.s32.f32 s22, s22, #3", s22, s22, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.s32.f32 s1, s1, #7", s1, s1, i32, f2u(NAN));
+
+ TESTINSN_un_f32("vcvt.f32.u32 s0, s0, #3", s0, s0, i32, f2u(3.2));
+ TESTINSN_un_f32("vcvt.f32.u32 s11, s11, #1", s11, s11, i32, f2u(3e22));
+ TESTINSN_un_f32("vcvt.f32.u32 s15, s15, #32", s15, s15, i32, f2u(3e9));
+ TESTINSN_un_f32("vcvt.f32.u32 s4, s4, #7", s4, s4, i32, f2u(-0.5));
+ TESTINSN_un_f32("vcvt.f32.u32 s6, s6, #4", s6, s6, i32, f2u(-7.1));
+ TESTINSN_un_f32("vcvt.f32.u32 s12, s12, #3", s12, s12, i32, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.f32.u32 s8, s8, #3", s8, s8, i32, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.f32.u32 s30, s30, #3", s30, s30, i32, f2u(NAN));
+ TESTINSN_un_f32("vcvt.f32.u32 s20, s20, #3", s20, s20, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.f32.u32 s13, s13, #6", s13, s13, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.f32.u32 s16, s16, #3", s16, s16, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.f32.s32 s1, s1, #5", s1, s1, i32, f2u(3.2));
+ TESTINSN_un_f32("vcvt.f32.s32 s21, s21, #1", s21, s21, i32, f2u(3e22));
+ TESTINSN_un_f32("vcvt.f32.s32 s17, s17, #8", s17, s17, i32, f2u(3e9));
+ TESTINSN_un_f32("vcvt.f32.s32 s27, s27, #2", s27, s27, i32, f2u(-0.5));
+ TESTINSN_un_f32("vcvt.f32.s32 s15, s15, #1", s15, s15, i32, f2u(-7.1));
+ TESTINSN_un_f32("vcvt.f32.s32 s8, s8, #2", s8, s8, i32, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.f32.s32 s31, s31, #2", s31, s31, i32, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_f32("vcvt.f32.s32 s10, s10, #3", s10, s10, i32, f2u(0.0));
+ TESTINSN_un_f32("vcvt.f32.s32 s13, s13, #9", s13, s13, i32, f2u(INFINITY));
+ TESTINSN_un_f32("vcvt.f32.s32 s22, s22, #3", s22, s22, i32, f2u(-INFINITY));
+ TESTINSN_un_f32("vcvt.f32.s32 s1, s1, #7", s1, s1, i32, f2u(NAN));
+ */
+
+ printf("---- VCVT (single <-> double) ----\n");
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d0, s1", d0, s1, f2u(3.2));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d29, s21", d29, s21, f2u(234.65));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d16, s30", d16, s30, f2u(-700.63));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d11, s7", d11, s7, f2u(8.0 - 1.0/1024.0));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d30, s3", d30, s3, f2u(-8.0 + 1.0/1024.0));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d7, s19", d7, s19, f2u(12.43303));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d2, s11", d2, s11, f2u(65.4235));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d9, s21", d9, s21, f2u(NAN));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d17, s29", d17, s29, f2u(-INFINITY));
+ TESTINSN_un_cvt_ds("vcvt.f64.f32 d19, s0", d19, s0, f2u(INFINITY));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s0, d1", s0, d1, f2u0(3.2), f2u1(3.2));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s29, d21", s29, d21, f2u0(234.65), f2u1(234.65));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s16, d30", s16, d30, f2u0(-700.63), f2u1(-700.63));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s11, d7", s11, d7, f2u0(8.0 - 1.0/1024.0), f2u1(8.0 - 1.0/1024.0));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s30, d3", s30, d3, f2u0(-8.0 + 1.0/1024.0), f2u1(-8.0 + 1.0/1024.0));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s7, d19", s7, d19, f2u0(12.43303), f2u1(12.43303));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s2, d11", s2, d11, f2u0(65.4235), f2u1(65.4235));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s9, d21", s9, d21, f2u0(NAN), f2u1(NAN));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s17, d29", s17, d29, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_un_cvt_sd("vcvt.f32.f64 s19, d0", s19, d0, f2u0(INFINITY), f2u1(INFINITY));
+
+ printf("---- VCMP ----\n");
+ TESTINSN_cmp_f64("vcmp.f64 d0, d19", d0, f2u0(-3.4567), f2u1(-3.4567), d19, f2u0(-2.6245), f2u1(-2.6245));
+ TESTINSN_cmp_f64("vcmp.f64 d11, d16", d11, f2u0(23475.45), f2u1(23475.45), d16, f2u0(3425.5), f2u1(3425.5));
+ TESTINSN_cmp_f64("vcmp.f64 d21, d30", d21, f2u0(-4524.5), f2u1(-4524.5), d30, f2u0(-452345.5), f2u1(-452345.5));
+ TESTINSN_cmp_f64("vcmp.f64 d7, d28", d7, f2u0(425.5), f2u1(425.5), d28, f2u0(-456.3), f2u1(-456.3));
+ TESTINSN_cmp_f64("vcmp.f64 d29, d3", d29, f2u0(INFINITY), f2u1(INFINITY), d3, f2u0(34562.45), f2u1(34562.45));
+ TESTINSN_cmp_f64("vcmp.f64 d3, d22", d3, f2u0(2.0), f2u1(2.0), d22, f2u0(2.0), f2u1(2.0));
+ TESTINSN_cmp_f64("vcmp.f64 d3, d22", d3, f2u0(12.023), f2u1(12.023), d22, f2u0(12.023), f2u1(12.023));
+ TESTINSN_cmp_f64("vcmp.f64 d3, d22", d3, f2u0(0.0), f2u1(0.0), d22, f2u0(0.0), f2u1(0.0));
+ TESTINSN_cmp_f64("vcmp.f64 d9, d2", d9, f2u0(INFINITY), f2u1(INFINITY), d2, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmp_f64("vcmp.f64 d30, d15", d30, f2u0(-INFINITY), f2u1(-INFINITY), d15, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmp_f64("vcmp.f64 d0, d19", d0, f2u0(-3.4567), f2u1(-3.4567), d19, f2u0(-2.6245), f2u1(-2.6245));
+ TESTINSN_cmp_f64("vcmp.f64 d11, d16", d11, f2u0(-5463.7), f2u1(-5463.7), d16, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmp_f64("vcmp.f64 d21, d30", d21, f2u0(-INFINITY), f2u1(-INFINITY), d30, f2u0(86.7), f2u1(86.7));
+ TESTINSN_cmp_f64("vcmp.f64 d7, d28", d7, f2u0(INFINITY), f2u1(INFINITY), d28, f2u0(-8567.456), f2u1(-8567.456));
+ TESTINSN_cmp_f64("vcmp.f64 d29, d3", d29, f2u0(-524.4), f2u1(-524.4), d3, f2u0(654.5), f2u1(654.5));
+ TESTINSN_cmp_f64("vcmp.f64 d3, d22", d3, f2u0(NAN), f2u1(NAN), d22, f2u0(-6.46524), f2u1(-6.46524));
+ TESTINSN_cmp_f64("vcmp.f64 d9, d2", d9, f2u0(56.563), f2u1(56.563), d2, f2u0(56.56), f2u1(56.56));
+ TESTINSN_cmp_f64("vcmp.f64 d30, d15", d30, f2u0(5365.60001), f2u1(5365.60001), d15, f2u0(56763.5), f2u1(56763.5));
+ TESTINSN_cmp_f64("vcmpe.f64 d0, d19", d0, f2u0(-3.4567), f2u1(-3.4567), d19, f2u0(-2.6245), f2u1(-2.6245));
+ TESTINSN_cmp_f64("vcmpe.f64 d11, d16", d11, f2u0(23475.45), f2u1(23475.45), d16, f2u0(3425.5), f2u1(3425.5));
+ TESTINSN_cmp_f64("vcmpe.f64 d11, d16", d11, f2u0(23475.45), f2u1(23475.45), d16, f2u0(NAN), f2u1(NAN));
+ TESTINSN_cmp_f64("vcmpe.f64 d21, d30", d21, f2u0(-4524.5), f2u1(-4524.5), d30, f2u0(-452345.5), f2u1(-452345.5));
+ TESTINSN_cmp_f64("vcmpe.f64 d7, d28", d7, f2u0(425.5), f2u1(425.5), d28, f2u0(-456.3), f2u1(-456.3));
+ TESTINSN_cmp_f64("vcmpe.f64 d29, d3", d29, f2u0(INFINITY), f2u1(INFINITY), d3, f2u0(34562.45), f2u1(34562.45));
+ TESTINSN_cmp_f64("vcmpe.f64 d3, d22", d3, f2u0(2.0), f2u1(2.0), d22, f2u0(2.0), f2u1(2.0));
+ TESTINSN_cmp_f64("vcmpe.f64 d9, d2", d9, f2u0(INFINITY), f2u1(INFINITY), d2, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmp_f64("vcmpe.f64 d30, d15", d30, f2u0(-INFINITY), f2u1(-INFINITY), d15, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmp_f64("vcmpe.f64 d0, d19", d0, f2u0(-3.4567), f2u1(-3.4567), d19, f2u0(-2.6245), f2u1(-2.6245));
+ TESTINSN_cmp_f64("vcmpe.f64 d11, d16", d11, f2u0(-5463.7), f2u1(-5463.7), d16, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmp_f64("vcmpe.f64 d21, d30", d21, f2u0(-INFINITY), f2u1(-INFINITY), d30, f2u0(86.7), f2u1(86.7));
+ TESTINSN_cmp_f64("vcmpe.f64 d7, d28", d7, f2u0(INFINITY), f2u1(INFINITY), d28, f2u0(-8567.456), f2u1(-8567.456));
+ TESTINSN_cmp_f64("vcmpe.f64 d29, d3", d29, f2u0(-524.4), f2u1(-524.4), d3, f2u0(654.5), f2u1(654.5));
+ TESTINSN_cmp_f64("vcmpe.f64 d3, d22", d3, f2u0(4624.5), f2u1(4624.5), d22, f2u0(-6.46524), f2u1(-6.46524));
+ TESTINSN_cmp_f64("vcmpe.f64 d9, d2", d9, f2u0(56.563), f2u1(56.563), d2, f2u0(56.56), f2u1(56.56));
+ TESTINSN_cmp_f64("vcmpe.f64 d30, d15", d30, f2u0(5365.60001), f2u1(5365.60001), d15, f2u0(56763.5), f2u1(56763.5));
+
+ TESTINSN_cmp_f32("vcmp.f32 s0, s19", s0, f2u(-3.4567), s19, f2u(-2.6245));
+ TESTINSN_cmp_f32("vcmp.f32 s11, s16", s11, f2u(23475.45), s16, f2u(3425.5));
+ TESTINSN_cmp_f32("vcmp.f32 s3, s22", s3, f2u(2.0), s22, f2u(2.0));
+ TESTINSN_cmp_f32("vcmp.f32 s0, s19", s0, f2u(-3.4567), s19, f2u(-2.6245));
+ TESTINSN_cmp_f32("vcmp.f32 s11, s16", s11, f2u(23475.45), s16, f2u(3425.5));
+ TESTINSN_cmp_f32("vcmp.f32 s21, s30", s21, f2u(-4524.5), s30, f2u(-452345.5));
+ TESTINSN_cmp_f32("vcmp.f32 s7, s28", s7, f2u(425.5), s28, f2u(-456.3));
+ TESTINSN_cmp_f32("vcmp.f32 s29, s3", s29, f2u(INFINITY), s3, f2u(34562.45));
+ TESTINSN_cmp_f32("vcmp.f32 s3, s22", s3, f2u(12.023), s22, f2u(12.023));
+ TESTINSN_cmp_f32("vcmp.f32 s3, s22", s3, f2u(0.0), s22, f2u(0.0));
+ TESTINSN_cmp_f32("vcmp.f32 s9, s2", s9, f2u(INFINITY), s2, f2u(INFINITY));
+ TESTINSN_cmp_f32("vcmp.f32 s30, s15", s30, f2u(-INFINITY),s15, f2u(-INFINITY));
+ TESTINSN_cmp_f32("vcmp.f32 s0, s19", s0, f2u(-3.4567), s19, f2u(-2.6245));
+ TESTINSN_cmp_f32("vcmp.f32 s11, s16", s11, f2u(-5463.7), s16, f2u(-INFINITY));
+ TESTINSN_cmp_f32("vcmp.f32 s21, s30", s21, f2u(-INFINITY),s30, f2u(86.7));
+ TESTINSN_cmp_f32("vcmp.f32 s7, s28", s7, f2u(INFINITY), s28, f2u(-8567.456));
+ TESTINSN_cmp_f32("vcmp.f32 s29, s3", s29, f2u(-524.4), s3, f2u(654.5));
+ TESTINSN_cmp_f32("vcmp.f32 s3, s22", s3, f2u(NAN), s22, f2u(-6.46524));
+ TESTINSN_cmp_f32("vcmp.f32 s9, s2", s9, f2u(56.563), s2, f2u(56.56));
+ TESTINSN_cmp_f32("vcmp.f32 s30, s15", s30, f2u(5365.60001), s15, f2u(56763.5));
+ TESTINSN_cmp_f32("vcmpe.f32 s0, s19", s0, f2u(-3.4567), s19, f2u(-2.6245));
+ TESTINSN_cmp_f32("vcmpe.f32 s11, s16", s11, f2u(23475.45), s16, f2u(3425.5));
+ TESTINSN_cmp_f32("vcmpe.f32 s11, s16", s11, f2u(23475.45), s16, f2u(NAN));
+ TESTINSN_cmp_f32("vcmpe.f32 s21, s30", s21, f2u(-4524.5), s30, f2u(-452345.5));
+ TESTINSN_cmp_f32("vcmpe.f32 s7, s28", s7, f2u(425.5), s28, f2u(-456.3));
+ TESTINSN_cmp_f32("vcmpe.f32 s29, s3", s29, f2u(INFINITY), s3, f2u(34562.45));
+ TESTINSN_cmp_f32("vcmpe.f32 s3, s22", s3, f2u(2.0), s22, f2u(2.0));
+ TESTINSN_cmp_f32("vcmpe.f32 s9, s2", s9, f2u(INFINITY), s2, f2u(INFINITY));
+ TESTINSN_cmp_f32("vcmpe.f32 s30, s15", s30, f2u(-INFINITY), s15, f2u(-INFINITY));
+ TESTINSN_cmp_f32("vcmpe.f32 s0, s19", s0, f2u(-3.4567), s19, f2u(-2.6245));
+ TESTINSN_cmp_f32("vcmpe.f32 s11, s16", s11, f2u(-5463.7), s16, f2u(-INFINITY));
+ TESTINSN_cmp_f32("vcmpe.f32 s21, s30", s21, f2u(-INFINITY), s30, f2u(86.7));
+ TESTINSN_cmp_f32("vcmpe.f32 s7, s28", s7, f2u(INFINITY), s28, f2u(-8567.456));
+ TESTINSN_cmp_f32("vcmpe.f32 s29, s3", s29, f2u(-524.4), s3, f2u(654.5));
+ TESTINSN_cmp_f32("vcmpe.f32 s3, s22", s3, f2u(4624.5), s22, f2u(-6.46524));
+ TESTINSN_cmp_f32("vcmpe.f32 s9, s2", s9, f2u(56.563), s2, f2u(56.56));
+ TESTINSN_cmp_f32("vcmpe.f32 s9, s2", s9, f2u(0.0), s2, f2u(56.56));
+ TESTINSN_cmp_f32("vcmpe.f32 s9, s2", s9, f2u(10.0), s2, f2u(0.0));
+ TESTINSN_cmp_f32("vcmpe.f32 s9, s2", s9, f2u(0.0), s2, f2u(0.0));
+ TESTINSN_cmp_f32("vcmpe.f32 s9, s2", s9, f2u(0.0), s2, f2u(0.0));
+
+ printf("---- VCMP (zero) ----\n");
+ TESTINSN_cmpz_f64("vcmp.f64 d0", d0, f2u0(-3.4567), f2u1(-3.4567));
+ TESTINSN_cmpz_f64("vcmp.f64 d11", d11, f2u0(23475.45), f2u1(23475.45));
+ TESTINSN_cmpz_f64("vcmp.f64 d21", d21, f2u0(-4524.5), f2u1(-4524.5));
+ TESTINSN_cmpz_f64("vcmp.f64 d7", d7, f2u0(425.5), f2u1(425.5));
+ TESTINSN_cmpz_f64("vcmp.f64 d29", d29, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmpz_f64("vcmp.f64 d3", d3, f2u0(2.0), f2u1(2.0));
+ TESTINSN_cmpz_f64("vcmp.f64 d3", d3, f2u0(0.0), f2u1(0.0));
+ TESTINSN_cmpz_f64("vcmp.f64 d9", d9, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmpz_f64("vcmp.f64 d30", d30, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmpz_f64("vcmp.f64 d0", d0, f2u0(-3.4567), f2u1(-3.4567));
+ TESTINSN_cmpz_f64("vcmp.f64 d11", d11, f2u0(-5463.7), f2u1(-5463.7));
+ TESTINSN_cmpz_f64("vcmp.f64 d21", d21, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmpz_f64("vcmp.f64 d7", d7, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmpz_f64("vcmp.f64 d29", d29, f2u0(-524.4), f2u1(-524.4));
+ TESTINSN_cmpz_f64("vcmp.f64 d3", d3, f2u0(4624.5), f2u1(4624.5));
+ TESTINSN_cmpz_f64("vcmp.f64 d9", d9, f2u0(NAN), f2u1(NAN));
+ TESTINSN_cmpz_f64("vcmp.f64 d30", d30, f2u0(5365.60001), f2u1(5365.60001));
+
+ TESTINSN_cmpz_f64("vcmpe.f64 d0", d0, f2u0(-3.4567), f2u1(-3.4567));
+ TESTINSN_cmpz_f64("vcmpe.f64 d11", d11, f2u0(23475.45), f2u1(23475.45));
+ TESTINSN_cmpz_f64("vcmpe.f64 d21", d21, f2u0(-4524.5), f2u1(-4524.5));
+ TESTINSN_cmpz_f64("vcmpe.f64 d7", d7, f2u0(425.5), f2u1(425.5));
+ TESTINSN_cmpz_f64("vcmpe.f64 d29", d29, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmpz_f64("vcmpe.f64 d3", d3, f2u0(2.0), f2u1(2.0));
+ TESTINSN_cmpz_f64("vcmpe.f64 d3", d3, f2u0(0.0), f2u1(0.0));
+ TESTINSN_cmpz_f64("vcmpe.f64 d9", d9, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmpz_f64("vcmpe.f64 d30", d30, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmpz_f64("vcmpe.f64 d0", d0, f2u0(-3.4567), f2u1(-3.4567));
+ TESTINSN_cmpz_f64("vcmpe.f64 d11", d11, f2u0(-5463.7), f2u1(-5463.7));
+ TESTINSN_cmpz_f64("vcmpe.f64 d21", d21, f2u0(-INFINITY), f2u1(-INFINITY));
+ TESTINSN_cmpz_f64("vcmpe.f64 d7", d7, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_cmpz_f64("vcmpe.f64 d29", d29, f2u0(-524.4), f2u1(-524.4));
+ TESTINSN_cmpz_f64("vcmpe.f64 d3", d3, f2u0(4624.5), f2u1(4624.5));
+ TESTINSN_cmpz_f64("vcmpe.f64 d9", d9, f2u0(NAN), f2u1(NAN));
+ TESTINSN_cmpz_f64("vcmpe.f64 d30", d30, f2u0(5365.60001), f2u1(5365.60001));
+
+ TESTINSN_cmpz_f32("vcmp.f32 s0", s0, f2u(-3.4567));
+ TESTINSN_cmpz_f32("vcmp.f32 s11", s11, f2u(23475.45));
+ TESTINSN_cmpz_f32("vcmp.f32 s21", s21, f2u(-4524.5));
+ TESTINSN_cmpz_f32("vcmp.f32 s7", s7, f2u(425.5));
+ TESTINSN_cmpz_f32("vcmp.f32 s29", s29, f2u(INFINITY));
+ TESTINSN_cmpz_f32("vcmp.f32 s3", s3, f2u(2.0));
+ TESTINSN_cmpz_f32("vcmp.f32 s3", s3, f2u(0.0));
+ TESTINSN_cmpz_f32("vcmp.f32 s9", s9, f2u(INFINITY));
+ TESTINSN_cmpz_f32("vcmp.f32 s30", s30, f2u(-INFINITY));
+ TESTINSN_cmpz_f32("vcmp.f32 s0", s0, f2u(-3.4567));
+ TESTINSN_cmpz_f32("vcmp.f32 s11", s11, f2u(-5463.7));
+ TESTINSN_cmpz_f32("vcmp.f32 s21", s21, f2u(-INFINITY));
+ TESTINSN_cmpz_f32("vcmp.f32 s7", s7, f2u(INFINITY));
+ TESTINSN_cmpz_f32("vcmp.f32 s29", s29, f2u(-524.4));
+ TESTINSN_cmpz_f32("vcmp.f32 s3", s3, f2u(4624.5));
+ TESTINSN_cmpz_f32("vcmp.f32 s9", s9, f2u(NAN));
+ TESTINSN_cmpz_f32("vcmp.f32 s30", s30, f2u(5365.60001));
+ TESTINSN_cmpz_f32("vcmpe.f32 s0", s0, f2u(-3.4567));
+ TESTINSN_cmpz_f32("vcmpe.f32 s11", s11, f2u(23475.45));
+ TESTINSN_cmpz_f32("vcmpe.f32 s21", s21, f2u(-4524.5));
+ TESTINSN_cmpz_f32("vcmpe.f32 s7", s7, f2u(425.5));
+ TESTINSN_cmpz_f32("vcmpe.f32 s29", s29, f2u(INFINITY));
+ TESTINSN_cmpz_f32("vcmpe.f32 s3", s3, f2u(2.0));
+ TESTINSN_cmpz_f32("vcmpe.f32 s3", s3, f2u(0.0));
+ TESTINSN_cmpz_f32("vcmpe.f32 s9", s9, f2u(INFINITY));
+ TESTINSN_cmpz_f32("vcmpe.f32 s30", s30, f2u(-INFINITY));
+ TESTINSN_cmpz_f32("vcmpe.f32 s0", s0, f2u(-3.4567));
+ TESTINSN_cmpz_f32("vcmpe.f32 s11", s11, f2u(-5463.7));
+ TESTINSN_cmpz_f32("vcmpe.f32 s21", s21, f2u(-INFINITY));
+ TESTINSN_cmpz_f32("vcmpe.f32 s7", s7, f2u(INFINITY));
+ TESTINSN_cmpz_f32("vcmpe.f32 s29", s29, f2u(-524.4));
+ TESTINSN_cmpz_f32("vcmpe.f32 s3", s3, f2u(4624.5));
+ TESTINSN_cmpz_f32("vcmpe.f32 s9", s9, f2u(NAN));
+ TESTINSN_cmpz_f32("vcmpe.f32 s30", s30, f2u(5365.60001));
+
+ int numbers[8] ={ 0xaa0, 0xbb1, 0xcc2, 0xdd3, 0x11a, 0x22b, 0x33c, 0x44d };
+
+ printf("---- VLDR ----\n");
+ TESTINSN_vldr_f64("vldr d9, [r6, #+4]", d9, r6, (long) numbers + 8, 4);
+ TESTINSN_vldr_f64("vldr d16, [r9, #-4]", d16, r9, (long) numbers + 8, -4);
+ TESTINSN_vldr_f64("vldr d30, [r12]", d30, r12, (long) numbers + 8, 0);
+ TESTINSN_vldr_f64("vldr d22, [r9, #+8]", d22, r9, (long) numbers + 8, 8);
+ TESTINSN_vldr_f64("vldr d29, [r2, #-8]", d29, r2, (long) numbers + 8, -8);
+ TESTINSN_vldr_f64("vldr d8, [r8, #+8]", d8, r8, (long) numbers + 8, 8);
+ TESTINSN_vldr_f64("vldr d11, [r12, #-4]", d11, r12, (long) numbers + 8, -4);
+ TESTINSN_vldr_f64("vldr d18, [r3]", d18, r3, (long) numbers + 8, 0);
+ TESTINSN_vldr_f64("vldr d5, [r10, #+8]", d5, r10, (long) numbers + 8, 8);
+ TESTINSN_vldr_f64("vldr d17, [r10]", d17, r10, (long) numbers + 8, 0);
+ TESTINSN_vldr_f64("vldr d9, [r9, #-4]", d9, r9, (long) numbers + 8, -4);
+ TESTINSN_vldr_f64("vldr d29, [r4, #-8]", d29, r4, (long) numbers + 8, -8);
+ TESTINSN_vldr_f64("vldr d21, [r6, #+4]", d21, r6, (long) numbers + 8, 4);
+ TESTINSN_vldr_f64("vldr d8, [r4]", d8, r4, (long) numbers + 8, 0);
+ TESTINSN_vldr_f64("vldr d19, [r0, #-8]", d19, r0, (long) numbers + 8, -8);
+ TESTINSN_vldr_f64("vldr d10, [r3, #+4]", d10, r3, (long) numbers + 8, 4);
+ TESTINSN_vldr_f32("vldr s10, [r3, #+4]", s10, r3, (long) numbers + 8, 4);
+ TESTINSN_vldr_f32("vldr s9, [r6, #+4]", s9, r6, (long) numbers + 8, 4);
+ TESTINSN_vldr_f32("vldr s16, [r9, #-4]", s16, r9, (long) numbers + 8, -4);
+ TESTINSN_vldr_f32("vldr s30, [r12]", s30, r12, (long) numbers + 8, 0);
+ TESTINSN_vldr_f32("vldr s22, [r9, #+8]", s22, r9, (long) numbers + 8, 8);
+ TESTINSN_vldr_f32("vldr s29, [r2, #-8]", s29, r2, (long) numbers + 8, -8);
+ TESTINSN_vldr_f32("vldr s8, [r8, #+8]", s8, r8, (long) numbers + 8, 8);
+ TESTINSN_vldr_f32("vldr s11, [r12, #-4]", s11, r12, (long) numbers + 8, -4);
+ TESTINSN_vldr_f32("vldr s18, [r3]", s18, r3, (long) numbers + 8, 0);
+ TESTINSN_vldr_f32("vldr s5, [r10, #+8]", s5, r10, (long) numbers + 8, 8);
+ TESTINSN_vldr_f32("vldr s17, [r10]", s17, r10, (long) numbers + 8, 0);
+ TESTINSN_vldr_f32("vldr s9, [r9, #-4]", s9, r9, (long) numbers + 8, -4);
+ TESTINSN_vldr_f32("vldr s29, [r4, #-8]", s29, r4, (long) numbers + 8, -8);
+ TESTINSN_vldr_f32("vldr s21, [r6, #+4]", s21, r6, (long) numbers + 8, 4);
+ TESTINSN_vldr_f32("vldr s8, [r4]", s8, r4, (long) numbers + 8, 0);
+ TESTINSN_vldr_f32("vldr s19, [r0, #-8]", s19, r0, (long) numbers + 8, -8);
+ TESTINSN_vldr_f32("vldr s10, [r3, #+4]", s10, r3, (long) numbers + 8, 4);
+
+ printf("---- VLDM (Increment After, writeback) ----\n");
+ TESTINSN_VLDMIAWB(r6, d17, d7);
+ TESTINSN_VLDMIAWB(r4, d11, d23);
+ TESTINSN_VLDMIAWB(r9, d29, d12);
+ TESTINSN_VLDMIAWB(r9, d0, d30);
+ TESTINSN_VLDMIAWB(r12, d8, d24);
+ TESTINSN_VLDMIAWB(r3, d27, d13);
+ TESTINSN_VLDMIAWB(r10, d20, d30);
+ TESTINSN_VLDMIAWB(r0, d0, d1);
+ TESTINSN_VLDMIAWB(r8, d15, d19);
+ TESTINSN_VLDMIAWB(r3, d31, d30);
+ TESTINSN_VLDMIAWB(r10, d6, d23);
+ TESTINSN_VLDMIAWB(r8, d8, d16);
+ TESTINSN_VLDMIAWB(r9, d13, d11);
+ TESTINSN_VLDMIAWB(r1, d3, d8);
+ TESTINSN_VLDMIAWB(r2, d4, d8);
+ TESTINSN_VLDMIAWB(r3, d9, d27);
+
+ printf("---- VSTR ----\n");
+ TESTINSN_vstr64("vstr d9, [r6, #+4]", d9, 0xa0, r6, (long) numbers + 8, 4);
+ TESTINSN_vstr64("vstr d16, [r9, #-4]", d16, 0xb1, r9, (long) numbers + 8, -4);
+ TESTINSN_vstr64("vstr d30, [r12]", d30, 0xc2, r12, (long) numbers + 8, 0);
+ TESTINSN_vstr64("vstr d22, [r9, #+8]", d22, 0xd4, r9, (long) numbers + 8, 8);
+ TESTINSN_vstr64("vstr d29, [r2, #-8]", d29, 0x00, r2, (long) numbers + 8, -8);
+ TESTINSN_vstr64("vstr d8, [r8, #+8]", d8, 0x11, r8, (long) numbers + 8, 8);
+ TESTINSN_vstr64("vstr d11, [r12, #-4]", d11, 0x22, r12, (long) numbers + 8, -4);
+ TESTINSN_vstr64("vstr d18, [r3]", d18, 0x33, r3, (long) numbers + 8, 0);
+ TESTINSN_vstr64("vstr d5, [r10, #+8]", d5, 0x99, r10, (long) numbers + 8, 8);
+ TESTINSN_vstr64("vstr d17, [r10]", d17, 0x77, r10, (long) numbers + 8, 0);
+ TESTINSN_vstr64("vstr d9, [r9, #-4]", d9, 0xee, r9, (long) numbers + 8, -4);
+ TESTINSN_vstr64("vstr d29, [r4, #-8]", d29, 0xff, r4, (long) numbers + 8, -8);
+ TESTINSN_vstr64("vstr d10, [r3, #+4]", d10, 0xbc, r3, (long) numbers + 8, 4);
+ TESTINSN_vstr64("vstr d21, [r6, #+4]", d21, 0x48, r6, (long) numbers + 8, 4);
+ TESTINSN_vstr64("vstr d8, [r4]", d8, 0x1f, r4, (long) numbers + 8, 0);
+ TESTINSN_vstr64("vstr d19, [r0, #-8]", d19, 0xf9, r0, (long) numbers + 8, -8);
+ TESTINSN_vstr32("vstr s9, [r6, #+4]", s9, r6, (long) numbers + 8, 4);
+ TESTINSN_vstr32("vstr s21, [r9, #-4]", s21, r9, (long) numbers + 8, -4);
+ TESTINSN_vstr32("vstr s4, [r3, #+8]", s4, r3, (long) numbers + 8, 8);
+ TESTINSN_vstr32("vstr s19, [r4, #-8]", s19, r4, (long) numbers + 8, -8);
+ TESTINSN_vstr32("vstr s29, [r8]", s29, r8, (long) numbers + 8, 0);
+ TESTINSN_vstr32("vstr s8, [r12]", s8, r12, (long) numbers + 8, 0);
+ TESTINSN_vstr32("vstr s16, [r0, #+4]", s16, r0, (long) numbers + 8, 4);
+ TESTINSN_vstr32("vstr s0, [r8, #-4]", s0, r8, (long) numbers + 8, -4);
+ TESTINSN_vstr32("vstr s3, [r9, #+8]", s3, r9, (long) numbers + 8, 8);
+ TESTINSN_vstr32("vstr s9, [r10, #-8]", s9, r10, (long) numbers + 8, -8);
+ TESTINSN_vstr32("vstr s11, [r2]", s11, r2, (long) numbers + 8, 0);
+ TESTINSN_vstr32("vstr s30, [r0]", s30, r0, (long) numbers + 8, 0);
+
+ printf("---- VSTM (Increment After, no writeback) ----\n");
+ TESTINSN_VSTMIAnoWB("vstmia r6, {d21}", r6, d21, 0xab);
+ TESTINSN_VSTMIAnoWB("vstmia r1, {d1}", r1, d1, 0x13);
+ TESTINSN_VSTMIAnoWB("vstmia r9, {d2}", r9, d2, 0x78);
+ TESTINSN_VSTMIAnoWB("vstmia r4, {d30}", r4, d30, 0x0);
+ TESTINSN_VSTMIAnoWB("vstmia r12, {d23}", r12, d23, 0xb9);
+ TESTINSN_VSTMIAnoWB("vstmia r6, {d16}", r6, d16, 0xa6);
+ TESTINSN_VSTMIAnoWB("vstmia r6, {d8}", r6, d8, 0x7f);
+ TESTINSN_VSTMIAnoWB("vstmia r6, {d27}", r6, d27, 0xff);
+ TESTINSN_VSTMIAnoWB("vstmia r5, {d11}", r5, d11, 0x32);
+ TESTINSN_VSTMIAnoWB("vstmia r6, {d4}", r6, d4, 0x10);
+ TESTINSN_VSTMIAnoWB("vstmia r10, {d9}", r10, d9, 0x4f);
+ TESTINSN_VSTMIAnoWB("vstmia r9, {d29}", r9, d29, 0x97);
+ TESTINSN_VSTMIAnoWB("vstmia r10, {d17}", r10, d17, 0xaa);
+ TESTINSN_VSTMIAnoWB("vstmia r5, {d5}", r5, d5, 0x2b);
+ TESTINSN_VSTMIAnoWB("vstmia r9, {d7}", r9, d7, 0x7b);
+ TESTINSN_VSTMIAnoWB("vstmia r3, {d16}", r3, d16, 0x11);
+ TESTINSN_VSTMIAnoWB32("vstmia r6, {s21}", r6, s21, 0xab);
+ TESTINSN_VSTMIAnoWB32("vstmia r1, {s1}", r1, s1, 0x13);
+ TESTINSN_VSTMIAnoWB32("vstmia r9, {s2}", r9, s2, 0x78);
+ TESTINSN_VSTMIAnoWB32("vstmia r4, {s30}", r4, s30, 0x0);
+ TESTINSN_VSTMIAnoWB32("vstmia r12, {s23}", r12, s23, 0xb9);
+ TESTINSN_VSTMIAnoWB32("vstmia r6, {s16}", r6, s16, 0xa613451d);
+ TESTINSN_VSTMIAnoWB32("vstmia r6, {s8}", r6, s8, 0x7f);
+ TESTINSN_VSTMIAnoWB32("vstmia r6, {s27}", r6, s27, f2u(-INFINITY));
+ TESTINSN_VSTMIAnoWB32("vstmia r5, {s11}", r5, s11, f2u(NAN));
+ TESTINSN_VSTMIAnoWB32("vstmia r6, {s4}", r6, s4, 0x10ccb);
+ TESTINSN_VSTMIAnoWB32("vstmia r10, {s9}", r10, s9, 0x4f543);
+ TESTINSN_VSTMIAnoWB32("vstmia r9, {s29}", r9, s29, 0x97001a);
+ TESTINSN_VSTMIAnoWB32("vstmia r10, {s17}", r10, s17, 0xaa45f);
+ TESTINSN_VSTMIAnoWB32("vstmia r5, {s5}", r5, s5, f2u(NAN));
+ TESTINSN_VSTMIAnoWB32("vstmia r9, {s7}", r9, s7, f2u(-INFINITY));
+ TESTINSN_VSTMIAnoWB32("vstmia r3, {s16}", r3, s16, f2u(INFINITY));
+
+ printf("---- VSTM (Increment After, writeback) ----\n");
+ TESTINSN_VSTMIAWB(r6, d21, d2);
+ TESTINSN_VSTMIAWB(r1, d1, d5);
+ TESTINSN_VSTMIAWB(r9, d2, d17);
+ TESTINSN_VSTMIAWB(r4, d30, d21);
+ TESTINSN_VSTMIAWB(r12, d23, d29);
+ TESTINSN_VSTMIAWB(r6, d16, d30);
+ TESTINSN_VSTMIAWB(r6, d8, d12);
+ TESTINSN_VSTMIAWB(r6, d27, d24);
+ TESTINSN_VSTMIAWB(r5, d11, d13);
+ TESTINSN_VSTMIAWB(r6, d4, d31);
+ TESTINSN_VSTMIAWB(r10, d9, d27);
+ TESTINSN_VSTMIAWB(r9, d29, d17);
+ TESTINSN_VSTMIAWB(r10, d17, d7);
+ TESTINSN_VSTMIAWB(r5, d5, d8);
+ TESTINSN_VSTMIAWB(r9, d7, d16);
+ TESTINSN_VSTMIAWB(r3, d16, d21);
+ TESTINSN_VSTMIAWB32(r6, s21, s2);
+ TESTINSN_VSTMIAWB32(r12, s23, s21);
+ TESTINSN_VSTMIAWB32(r3, s3, s3);
+ TESTINSN_VSTMIAWB32(r10, s19, s5);
+ TESTINSN_VSTMIAWB32(r2, s3, s12);
+ TESTINSN_VSTMIAWB32(r8, s7, s10);
+ TESTINSN_VSTMIAWB32(r4, s30, s13);
+ TESTINSN_VSTMIAWB32(r6, s17, s17);
+ TESTINSN_VSTMIAWB32(r9, s11, s21);
+ TESTINSN_VSTMIAWB32(r9, s8, s30);
+ TESTINSN_VSTMIAWB32(r3, s12, s9);
+ TESTINSN_VSTMIAWB32(r6, s6, s11);
+ TESTINSN_VSTMIAWB32(r8, s17, s12);
+ TESTINSN_VSTMIAWB32(r9, s12, s12);
+ TESTINSN_VSTMIAWB32(r4, s11, s11);
+
+ printf("---- VLDM (Decrement Before) ----\n");
+ TESTINSN_VLDMDB(r4, d11, d23);
+ TESTINSN_VLDMDB(r9, d29, d12);
+ TESTINSN_VLDMDB(r9, d0, d30);
+ TESTINSN_VLDMDB(r12, d8, d24);
+ TESTINSN_VLDMDB(r3, d27, d13);
+ TESTINSN_VLDMDB(r6, d17, d7);
+ TESTINSN_VLDMDB(r10, d20, d30);
+ TESTINSN_VLDMDB(r0, d0, d1);
+ TESTINSN_VLDMDB(r8, d15, d19);
+ TESTINSN_VLDMDB(r3, d31, d30);
+ TESTINSN_VLDMDB(r10, d6, d23);
+ TESTINSN_VLDMDB(r8, d8, d16);
+ TESTINSN_VLDMDB(r9, d13, d11);
+ TESTINSN_VLDMDB(r1, d3, d8);
+ TESTINSN_VLDMDB(r2, d4, d8);
+ TESTINSN_VLDMDB(r3, d9, d27);
+
+ printf("----- VMOV (immediate) -----\n");
+ TESTINSN_vmovf32_imm("vmov s0", s0, 0xbe880000);
+ TESTINSN_vmovf32_imm("vmov s1", s1, 0x3fa80000);
+ TESTINSN_vmovf32_imm("vmov s2", s2, 0xbf080000);
+ TESTINSN_vmovf32_imm("vmov s5", s5, 0x3eb80000);
+ TESTINSN_vmovf32_imm("vmov s7", s7, 0xbff80000);
+ TESTINSN_vmovf32_imm("vmov s10", s10, 0xbe280000);
+ TESTINSN_vmovf32_imm("vmov s12", s12, 0x40000000);
+ TESTINSN_vmovf32_imm("vmov s13", s13, 0x3e880000);
+ TESTINSN_vmovf32_imm("vmov s14", s14, 0xbee80000);
+ TESTINSN_vmovf32_imm("vmov s15", s15, 0xc0b80000);
+
+ printf("----- VMOV (ARM core register and single register) -----\n");
+ TESTINSN_vmov_core_single("vmov r12, s12", r12, s12, 0x4000aad);
+ TESTINSN_vmov_core_single("vmov r2, s5", r2, s5, 0xab45e7);
+ TESTINSN_vmov_core_single("vmov r5, s15", r5, s15, 0x00add12);
+ TESTINSN_vmov_core_single("vmov r8, s11", r8, s11, 0x876450ff);
+ TESTINSN_vmov_core_single("vmov r9, s5", r9, s5, 0xffff);
+ TESTINSN_vmov_core_single("vmov r10, s9", r10, s9, 0x87d34f);
+ TESTINSN_vmov_core_single("vmov r9, s10", r9, s10, 0x00ffff);
+ TESTINSN_vmov_core_single("vmov r6, s8", r6, s8, 0xad4f8);
+ TESTINSN_vmov_core_single("vmov r4, s14", r4, s14, 0x920b8cf);
+ TESTINSN_vmov_core_single("vmov r3, s7", r3, s7, f2u(NAN));
+ TESTINSN_vmov_core_single("vmov r2, s0", r2, s0, f2u(-INFINITY));
+ TESTINSN_vmov_core_single("vmov r0, s1", r0, s1, f2u(INFINITY));
+ TESTINSN_vmov_single_core("vmov s2, r9", s2, r9, 0x9465a);
+ TESTINSN_vmov_single_core("vmov s14, r0", s14, r0, 0xd0b87a);
+ TESTINSN_vmov_single_core("vmov s4, r2", s4, r2, 0x452bbc8);
+ TESTINSN_vmov_single_core("vmov s7, r8", s7, r8, 0xa7cb3d);
+ TESTINSN_vmov_single_core("vmov s9, r4", s9, r4, 0xdd8ec);
+ TESTINSN_vmov_single_core("vmov s10, r12", s10, r12, 0x8a7b6e);
+ TESTINSN_vmov_single_core("vmov s13, r9", s13, r9, 0x4b00a);
+ TESTINSN_vmov_single_core("vmov s3, r3", s3, r3, 0x0023455);
+ TESTINSN_vmov_single_core("vmov s5, r5", s5, r5, f2u(INFINITY));
+ TESTINSN_vmov_single_core("vmov s8, r6", s8, r6, f2u(-INFINITY));
+ TESTINSN_vmov_single_core("vmov s4, r0", s4, r0, 0x000acb45);
+ TESTINSN_vmov_single_core("vmov s0, r6", s0, r6, f2u(NAN));
+
+ printf("----- VMOV (ARM two core registers and two single registers) -----\n");
+ TESTINSN_vmov_2single_2core("vmov s0, s1, r6, r9", s0, s1, r6, r9, 0x43252acc, 0xabcc4);
+ TESTINSN_vmov_2single_2core("vmov s0, s1, r9, r9", s0, s1, r9, r9, 0x43252acc, 0xabcc4);
+ TESTINSN_vmov_2single_2core("vmov s30, s31, r9, r1", s30, s31, r9, r1, 0xaa2e2acc, 0x00337);
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN), f2u(NAN));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN), f2u(INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN), f2u(-INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN), f2u(0));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(INFINITY), f2u(NAN));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(INFINITY), f2u(INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(INFINITY), f2u(-INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(INFINITY), f2u(0));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(-INFINITY), f2u(NAN));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(-INFINITY), f2u(INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(-INFINITY), f2u(-INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(-INFINITY), f2u(0));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(0), f2u(NAN));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(0), f2u(INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(0), f2u(-INFINITY));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(0), f2u(0));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN) + 1, f2u(NAN));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN) + 1, f2u(0));
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(NAN), f2u(NAN) - 1);
+ TESTINSN_vmov_2single_2core("vmov s20, s21, r10, r9", s20, s21, r10, r9, f2u(0), f2u(NAN) - 1);
+ TESTINSN_vmov_2core_2single("vmov r12, r9, s12, s13", r12, r9, s12, s13, 0x4000aad, 0xaffff);
+ TESTINSN_vmov_2core_2single("vmov r0, r9, s12, s13", r0, r9, s12, s13, 0x40ee56d, 0x123ff);
+ TESTINSN_vmov_2core_2single("vmov r12, r9, s12, s13", r12, r9, s12, s13, 0x4000aad, 0xaffff);
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN), f2u(NAN));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN), f2u(INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN), f2u(-INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN), f2u(0));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(INFINITY), f2u(NAN));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(INFINITY), f2u(INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(INFINITY), f2u(-INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(INFINITY), f2u(0));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(-INFINITY), f2u(NAN));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(-INFINITY), f2u(INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(-INFINITY), f2u(-INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(-INFINITY), f2u(0));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(0), f2u(NAN));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(0), f2u(INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(0), f2u(-INFINITY));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(0), f2u(0));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN) + 1, f2u(NAN));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN) + 1, f2u(0));
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(NAN), f2u(NAN) - 1);
+ TESTINSN_vmov_2core_2single("vmov r10, r9, s20, s21", r10, r9, s20, s21, f2u(0), f2u(NAN) - 1);
+
+ printf("----- VMOV (ARM two core registers and double register) -----\n");
+ TESTINSN_vmov_double_2core("vmov d3, r6, r9", d3, r6, r9, 0x43252acc, 0x45bbd);
+ TESTINSN_vmov_double_2core("vmov d4, r10, r2", d4, r10, r2, 0x1243b4, 0x237ffb);
+ TESTINSN_vmov_double_2core("vmov d21, r1, r6", d21, r1, r6, 0x30cc4, 0x314c043);
+ TESTINSN_vmov_double_2core("vmov d30, r9, r9", d30, r9, r9, 0x08ddf, 0x87bbca);
+ TESTINSN_vmov_double_2core("vmov d29, r3, r5", d29, r3, r5, 0xaaa0, 0xbbb1);
+ TESTINSN_vmov_double_2core("vmov d16, r8, r8", d16, r8, r8, 0xaa455bb, 0x13434);
+ TESTINSN_vmov_double_2core("vmov d17, r12, r9", d17, r12, r9, 0x004003, 0x452bbc1);
+ TESTINSN_vmov_double_2core("vmov d9, r9, r0", d9, r9, r0, 0x134c, 0x41ffb6);
+ TESTINSN_vmov_double_2core("vmov d7, r0, r6", d7, r0, r6, 0x35425dcc, 0x0876c43);
+ TESTINSN_vmov_double_2core("vmov d13, r3, r9", d13, r3, r9, f2u0(NAN), f2u1(NAN));
+ TESTINSN_vmov_double_2core("vmov d19, r6, r5", d19, r6, r5, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_vmov_double_2core("vmov d0, r2, r6", d0, r2, r6, f2u0(-INFINITY), f2u1(-INFINITY));
+
+ TESTINSN_vmov_2core_double("vmov r3, r6, d9", r3, r6, d9, 0x43252acc, 0x45bbd);
+ TESTINSN_vmov_2core_double("vmov r4, r10, d2", r4, r10, d2, 0x1243b4, 0x237ffb);
+ TESTINSN_vmov_2core_double("vmov r2, r1, d6", r2, r1, d6, 0x30cc4, 0x314c043);
+ TESTINSN_vmov_2core_double("vmov r0, r9, d11", r0, r9, d11, 0x08ddf, 0x87bbca);
+ TESTINSN_vmov_2core_double("vmov r9, r3, d5", r9, r3, d5, 0xaaa0, 0xbbb1);
+ TESTINSN_vmov_2core_double("vmov r10, r8, d8", r10, r8, d8, 0xaa455bb, 0x13434);
+ TESTINSN_vmov_2core_double("vmov r9, r12, d11", r9, r12, d11, 0x004003, 0x452bbc1);
+
+ // ARM ARM says this is UNDEFINED, hence we don't decode it
+ //TESTINSN_vmov_2core_double("vmov r9, r9, d0", r9, r9, d0, 0x134c, 0x41ffb6);
+
+ TESTINSN_vmov_2core_double("vmov r6, r0, d7", r6, r0, d7, 0x35425dcc, 0x0876c43);
+ TESTINSN_vmov_2core_double("vmov r12, r3, d11", r12, r3, d11, f2u0(NAN), f2u1(NAN));
+ TESTINSN_vmov_2core_double("vmov r1, r6, d5", r1, r6, d5, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_vmov_2core_double("vmov r0, r2, d7", r0, r2, d7, f2u0(-INFINITY), f2u1(-INFINITY));
+
+ TESTINSN_vmov_2core_double("vmov r2, r9, d0", r2, r9, d0, f2u0(INFINITY), f2u1(INFINITY));
+ TESTINSN_vmov_2core_double("vmov r6, r9, d10", r6, r9, d10, 0x14534c, 0x41ffb6);
+ TESTINSN_vmov_2core_double("vmov r0, r9, d20", r0, r9, d20, f2u0(NAN), f2u1(NAN));
+
+ printf("----- VPUSH, VPOP -----\n");
+ TESTINSN_vpush_vpop_f32(s3, 0x00aaaaaa, s4, 0x00bbbbbb, s5, 0x00cccccc, s0, s1, s2);
+ TESTINSN_vpush_vpop_f32(s1, 0x000134f4, s2, 0x0870ccb3, s3, 0x00aba0f1, s9, s10, s11);
+ TESTINSN_vpush_vpop_f32(s3, 0x00dddddd, s4, 0x00eeeeee, s5, 0x00ffffff, s0, s1, s2);
+ TESTINSN_vpush_vpop_f32(s11, 0x13454c, s12, 0x341, s13, 0xaac45f, s6, s7, s8);
+ TESTINSN_vpush_vpop_f32(s21, 0x0, s22, f2u(NAN), s23, f2u(INFINITY), s23, s24, s25);
+ TESTINSN_vpush_vpop_f32(s12, 0xffffff, s13, 0xf542dd4, s14, f2u(-INFINITY), s11, s12, s13);
+ TESTINSN_vpush_vpop_f32(s25, 0x45cd, s26, 0xa3ccb5, s27, 0xbbcaf, s0, s1, s2);
+ TESTINSN_vpush_vpop_f32(s1, f2u(NAN), s2, 0xaaca3, s3, 0x876008, s6, s7, s8);
+ TESTINSN_vpush_vpop_f32(s9, 0x2f43, s10, f2u(INFINITY), s11, 0x3cc66a, s9, s10, s11);
+ TESTINSN_vpush_vpop_f32(s10, f2u(INFINITY), s11, 0x134cc5, s12, f2u(NAN), s2, s3, s4);
+ TESTINSN_vpush_vpop_f32(s7, 0xcc006d, s8, 0x1308c, s9, 0xabbc45, s21, s22, s23);
+ TESTINSN_vpush_vpop_f32(s19, f2u(-INFINITY), s20, 0x452146, s21, 0x388bbc, s4, s5, s6);
+ TESTINSN_vpush_vpop_f32(s16, 0x542aa, s17, 0xaddcd5, s18, 0x87acc, s18, s19, s20);
+ TESTINSN_vpush_vpop_f32(s22, 0x5ccb708, s23, 0x52345c, s24, 0x98745c, s12, s13, s14);
+ TESTINSN_vpush_vpop_f32(s24, 0x99234f, s25, 0x1aac, s26, 0x3746c, s28, s29, s30);
+ TESTINSN_vpush_vpop_f32(s13, 0x134ccc, s14, 0x6bb43, s15, 0x834aa, s0, s1, s2);
+ TESTINSN_vpush_vpop_f64(d3, 0x00aaaaaa, 0xaac3, d4, 0x00bbbbbb, 0x34ccb, d0, d1);
+ TESTINSN_vpush_vpop_f64(d1, 0x000134f4, 0x341531, d2, 0x0870ccb3, 0x4576bbc, d9, d10);
+ TESTINSN_vpush_vpop_f64(d3, 0x00dddddd, 0x13451cc, d4, 0x00eeeeee, 0x123ddc8, d0, d1);
+ TESTINSN_vpush_vpop_f64(d11, 0x13454c, 0x541bbc3, d12, 0x341, 0xccb5, d6, d7);
+ TESTINSN_vpush_vpop_f64(d21, 0x0, 0x123c33, d22, f2u0(NAN), f2u1(NAN), d23, d24);
+ TESTINSN_vpush_vpop_f64(d12, 0xffffff, 0x1940c, d13, 0xf542dd4, 0x788ffc, d11, d12);
+ TESTINSN_vpush_vpop_f64(d25, 0x45cd, 0x1309c, d26, 0xa3ccb5, 0x4588b, d0, d1);
+ TESTINSN_vpush_vpop_f64(d1, f2u0(NAN), f2u1(NAN), d2, 0xaaca3, 0x1120a, d6, d7);
+ TESTINSN_vpush_vpop_f64(d9, 0x2f43, 0x19ff9, d10, f2u0(INFINITY), f2u1(INFINITY), d9, d10);
+ TESTINSN_vpush_vpop_f64(d10, f2u0(INFINITY), f2u1(INFINITY), d11, 0x134cc5, 0x78cbbd, d2, d3);
+ TESTINSN_vpush_vpop_f64(d7, 0xcc006d, 0x28354, d8, 0x1308c, 0x1993bc, d21, d22);
+ TESTINSN_vpush_vpop_f64(d19, f2u0(-INFINITY), f2u1(-INFINITY), d20, 0x452146, 0x138476c, d4, d5);
+ TESTINSN_vpush_vpop_f64(d16, 0x542aa, 0x12dd4, d17, 0xaddcd5, 0x399cb, d18, d19);
+ TESTINSN_vpush_vpop_f64(d22, 0x5ccb708, 0x8009c, d23, 0x52345c, 0x29902c, d12, d13);
+ TESTINSN_vpush_vpop_f64(d24, 0x99234f, 0x3457ff, d25, 0x1aac, 0x1002cba, d28, d29);
+ TESTINSN_vpush_vpop_f64(d13, 0x134ccc, 0xfaa309, d14, 0x6bb43, 0x199cb, d0, d1);
+
+ return 0;
+}
--- /dev/null
+do_vldm_vstm_check:
+ 0x00000010
+ 0x3a3b3c3d
+ 0x4a4b4c4d
+ 0x1a1b1c1d
+ 0x00000018
+ 0x7a7b7c7d
+ 0x8a8b8c8d
+ 0x00000004
+ 0x4a4b4c4d
+ 0x5a5b5c5d
+ 0x2a2b2c2d
+ 0x00000040
+ 0xdadbdcdd
+ 0xeaebeced
+ 0xfafbfcfd
+ 0x0a0b0c0d
+ 0x0000002c
+ 0xcacbcccd
+ 0xdadbdcdd
+ 0xeaebeced
+ 0xfafbfcfd
+ 0x00000018
+ 0x7a7b7c7d
+ 0x8a8b8c8d
+ 0x9a9b9c9d
+ 0xaaabacad
+ 0x00000010
+ 0x00000010
+ 0x00000018
+ 0x00000030
+ 0x00000030
+ 0x00000038
+data:
+ 0x00000055
+ 0x00000056
+ 0x00000057
+ 0x00000058
+ 0x00000065
+ 0x00000066
+ 0x00000075
+ 0x00000076
+ 0x00000042
+ 0x00000043
+ 0x00000040
+ 0x00000041
+ 0x00000032
+ 0x00000033
+ 0x00000022
+ 0x00000023
+---- VMOV (ARM core register to scalar) ----
+vmov.32 d0[0], r5 :: Dd 0x55555555 0x41500000 Dm 0x41500000
+vmov.32 d1[1], r6 :: Dd 0x00000012 0x55555555 Dm 0x00000012
+vmov.32 d20[0], r5 :: Dd 0x55555555 0x7fc00000 Dm 0x7fc00000
+vmov.32 d29[1], r6 :: Dd 0x432c0000 0x55555555 Dm 0x432c0000
+vmov.32 d30[0], r5 :: Dd 0x55555555 0x7f800000 Dm 0x7f800000
+vmov.32 d11[1], r6 :: Dd 0xff800000 0x55555555 Dm 0xff800000
+vmov.32 d18[0], r5 :: Dd 0x55555555 0x55555555 Dm 0x44234000
+vmov.32 d9[1], r6 :: Dd 0x0000000c 0x55555555 Dm 0x0000000c
+vmov.16 d0[0], r5 :: Dd 0x55555555 0x5555000d Dm 0x0000000d
+vmov.16 d14[1], r5 :: Dd 0x55555555 0x00005555 Dm 0x7fc00000
+vmov.16 d28[2], r6 :: Dd 0x5555000e 0x55555555 Dm 0x0000000e
+vmov.16 d30[3], r1 :: Dd 0x00115555 0x55555555 Dm 0x00000011
+vmov.16 d0[0], r5 :: Dd 0x55555555 0x55550000 Dm 0x7f800000
+vmov.16 d7[1], r5 :: Dd 0x55555555 0x00005555 Dm 0xff800000
+vmov.16 d21[2], r6 :: Dd 0x5555000e 0x55555555 Dm 0x0000000e
+vmov.16 d17[3], r1 :: Dd 0x00115555 0x55555555 Dm 0x00000011
+vmov.8 d0[0], r5 :: Dd 0x55555555 0x5555550d Dm 0x0000000d
+vmov.8 d10[1], r5 :: Dd 0x55555555 0x55550055 Dm 0x7fc00000
+vmov.8 d20[2], r5 :: Dd 0x55555555 0x55005555 Dm 0x7f800000
+vmov.8 d30[3], r5 :: Dd 0x55555555 0x00555555 Dm 0xff800000
+vmov.8 d13[4], r5 :: Dd 0x555555d5 0x55555555 Dm 0x000000d5
+vmov.8 d17[5], r5 :: Dd 0x55553f55 0x55555555 Dm 0x0000053f
+vmov.8 d24[6], r5 :: Dd 0x556f5555 0x55555555 Dm 0x0000006f
+vmov.8 d29[7], r5 :: Dd 0xad555555 0x55555555 Dm 0x000000ad
+---- VMOV (scalar to ARM core register) ----
+vmov.32 r5, d0[0] :: Rd 0x7fc00000 Qm (i32)0x7fc00000
+vmov.32 r6, d5[1] :: Rd 0x7f800000 Qm (i32)0x7f800000
+vmov.32 r4, d10[0] :: Rd 0xff800000 Qm (i32)0xff800000
+vmov.32 r5, d15[1] :: Rd 0x11223344 Qm (i32)0x11223344
+vmov.32 r9, d20[0] :: Rd 0x11223344 Qm (i32)0x11223344
+vmov.32 r8, d25[1] :: Rd 0x11223344 Qm (i32)0x11223344
+vmov.32 r0, d30[0] :: Rd 0x11223344 Qm (i32)0x11223344
+vmov.32 r2, d19[1] :: Rd 0x11223344 Qm (i32)0x11223344
+vmov.u16 r5, d31[0] :: Rd 0x00000000 Qm (i32)0x7fc00000
+vmov.u16 r3, d30[1] :: Rd 0x00007f80 Qm (i32)0x7f800000
+vmov.u16 r6, d21[2] :: Rd 0x00000000 Qm (i32)0xff800000
+vmov.u16 r9, d26[3] :: Rd 0x00001122 Qm (i32)0x11223344
+vmov.u16 r12, d11[0] :: Rd 0x00003344 Qm (i32)0x11223344
+vmov.u16 r0, d10[1] :: Rd 0x00001122 Qm (i32)0x11223344
+vmov.u16 r6, d1[2] :: Rd 0x00003344 Qm (i32)0x11223344
+vmov.u16 r8, d5[3] :: Rd 0x00001122 Qm (i32)0x11223344
+vmov.u8 r2, d4[0] :: Rd 0x00000000 Qm (i32)0x7fc00000
+vmov.u8 r6, d14[1] :: Rd 0x00000000 Qm (i32)0x7f800000
+vmov.u8 r9, d24[2] :: Rd 0x00000080 Qm (i32)0xff800000
+vmov.u8 r8, d31[3] :: Rd 0x00000011 Qm (i32)0x11223344
+vmov.u8 r10, d29[4] :: Rd 0x00000044 Qm (i32)0x11223344
+vmov.u8 r3, d19[5] :: Rd 0x00000033 Qm (i32)0x11223344
+vmov.u8 r12, d12[6] :: Rd 0x00000022 Qm (i32)0x11223344
+vmov.u8 r10, d18[4] :: Rd 0x00000044 Qm (i32)0x11223344
+vmov.s16 r5, d31[0] :: Rd 0x00000000 Qm (i32)0x7fc00000
+vmov.s16 r3, d30[1] :: Rd 0x00007f80 Qm (i32)0x7f800000
+vmov.s16 r6, d21[2] :: Rd 0x00000000 Qm (i32)0xff800000
+vmov.s16 r9, d26[3] :: Rd 0x00001122 Qm (i32)0x11223344
+vmov.s16 r4, d11[0] :: Rd 0x00003344 Qm (i32)0x11223344
+vmov.s16 r0, d10[1] :: Rd 0x00001122 Qm (i32)0x11223344
+vmov.s16 r6, d1[2] :: Rd 0x00003344 Qm (i32)0x11223344
+vmov.s16 r8, d5[3] :: Rd 0x00001122 Qm (i32)0x11223344
+vmov.s8 r2, d4[0] :: Rd 0x00000000 Qm (i32)0x7fc00000
+vmov.s8 r6, d14[1] :: Rd 0x00000000 Qm (i32)0x7f800000
+vmov.s8 r9, d24[2] :: Rd 0xffffff80 Qm (i32)0xff800000
+vmov.s8 r8, d31[3] :: Rd 0x00000011 Qm (i32)0x11223344
+vmov.s8 r6, d29[4] :: Rd 0x00000044 Qm (i32)0x11223344
+vmov.s8 r3, d19[5] :: Rd 0x00000033 Qm (i32)0x11223344
+vmov.s8 r12, d12[6] :: Rd 0x00000022 Qm (i32)0x11223344
+vmov.s8 r10, d18[7] :: Rd 0x00000011 Qm (i32)0x11223344
+---- VMLA (fp) ----
+vmla.f64 d0, d11, d12 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vmla.f64 d7, d1, d6 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vmla.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vmla.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vmla.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vmla.f64 d20, d25, d22 :: Qd 0xc0906794 0x842f8549 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vmla.f64 d23, d24, d25 :: Qd 0xc1bbe864 0x1f579999 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vmla.f64 d20, d31, d12 :: Qd 0xc1e0a1cf 0xd2abe8f6 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vmla.f64 d19, d25, d27 :: Qd 0x41d860c7 0xf71a1999 Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vmla.f64 d30, d15, d2 :: Qd 0x420524a9 0x817febf4 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vmla.f64 d23, d24, d5 :: Qd 0x40df8c00 0x800001fc Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vmla.f64 d10, d11, d2 :: Qd 0x41895139 0x98100000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vmla.f64 d29, d15, d7 :: Qd 0x41b65928 0xd6020000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vmla.f64 d30, d11, d12 :: Qd 0x41df20a6 0xd7bd2cb0 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vmla.f64 d27, d21, d6 :: Qd 0x3fb763ef 0x4799be48 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vmla.f64 d30, d31, d2 :: Qd 0x4111fc58 0x08000020 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vmla.f64 d13, d24, d5 :: Qd 0x4132771c 0x6866666e Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vmla.f64 d10, d11, d2 :: Qd 0x40e9f35f 0xb4bc6b7d Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vmla.f64 d29, d25, d7 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vmla.f64 d0, d11, d12 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vmla.f64 d27, d21, d16 :: Qd 0xc0aa0043 0x17cbec9d Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vmla.f64 d0, d5, d2 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vmla.f64 d20, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vmla.f64 d10, d23, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vmla.f32 s0, s11, s12 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vmla.f32 s7, s1, s6 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vmla.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vmla.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vmla.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vmla.f32 s20, s25, s22 :: Sd 0xc4833ce4 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vmla.f32 s23, s24, s25 :: Sd 0xcddf4321 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vmla.f32 s20, s31, s12 :: Sd 0xcf050e7f Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vmla.f32 s19, s25, s27 :: Sd 0x4ec3063f Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vmla.f32 s30, s15, s2 :: Sd 0x5029254c Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vmla.f32 s23, s24, s5 :: Sd 0x46fc6000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vmla.f32 s10, s11, s2 :: Sd 0x4c4a89cd Sm (i32)0x473e7300 Sn (i32)0x44882000
+vmla.f32 s29, s15, s7 :: Sd 0x4db2c947 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vmla.f32 s30, s11, s12 :: Sd 0x4ef90536 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vmla.f32 s27, s21, s6 :: Sd 0x3dab1f7a Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vmla.f32 s30, s31, s2 :: Sd 0x488fe2c0 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vmla.f32 s13, s24, s5 :: Sd 0x4993b8e3 Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vmla.f32 s10, s11, s2 :: Sd 0x474f9afc Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vmla.f32 s29, s25, s7 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vmla.f32 s0, s11, s12 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vmla.f32 s27, s21, s16 :: Sd 0xc5500239 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vmla.f32 s0, s5, s2 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vmla.f32 s20, s13, s15 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vmla.f32 s10, s23, s15 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VNMLA (fp) ----
+vnmla.f64 d0, d11, d12 :: Qd 0xfff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vnmla.f64 d7, d1, d6 :: Qd 0xfff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vnmla.f64 d0, d5, d2 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vnmla.f64 d10, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vnmla.f64 d10, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vnmla.f64 d20, d25, d22 :: Qd 0x409067a4 0x842fc4c9 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vnmla.f64 d23, d24, d25 :: Qd 0x41bbe864 0x1f5b9999 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vnmla.f64 d20, d31, d12 :: Qd 0x41e0a1cf 0xd2ac68f6 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vnmla.f64 d19, d25, d27 :: Qd 0xc1d860c7 0xf7191999 Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vnmla.f64 d30, d15, d2 :: Qd 0xc20524a9 0x817fcbf4 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vnmla.f64 d23, d24, d5 :: Qd 0xc0df8bff 0x7ffffe04 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vnmla.f64 d10, d11, d2 :: Qd 0xc1895139 0x97f00000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vnmla.f64 d29, d15, d7 :: Qd 0xc1b65928 0xd5fe0000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vnmla.f64 d30, d11, d12 :: Qd 0xc1df20a6 0xd7bc2cb0 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vnmla.f64 d27, d21, d6 :: Qd 0xbfb363ef 0x37b9be48 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vnmla.f64 d30, d31, d2 :: Qd 0xc111fc57 0xf7ffffe0 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vnmla.f64 d13, d24, d5 :: Qd 0xc132771c 0x6466665e Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vnmla.f64 d10, d11, d2 :: Qd 0xc0e9f35f 0x34bc6981 Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vnmla.f64 d29, d25, d7 :: Qd 0x7ff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vnmla.f64 d0, d11, d12 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vnmla.f64 d27, d21, d16 :: Qd 0x40aa004b 0x17cc0c5d Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vnmla.f64 d0, d5, d2 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vnmla.f64 d20, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vnmla.f64 d10, d23, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vnmla.f32 s0, s11, s12 :: Sd 0xffc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vnmla.f32 s7, s1, s6 :: Sd 0xffc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vnmla.f32 s0, s5, s2 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vnmla.f32 s10, s13, s15 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vnmla.f32 s10, s13, s15 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vnmla.f32 s20, s25, s22 :: Sd 0x44833ce4 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vnmla.f32 s23, s24, s25 :: Sd 0x4ddf4321 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vnmla.f32 s20, s31, s12 :: Sd 0x4f050e7f Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vnmla.f32 s19, s25, s27 :: Sd 0xcec3063f Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vnmla.f32 s30, s15, s2 :: Sd 0xd029254c Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vnmla.f32 s23, s24, s5 :: Sd 0xc6fc6000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vnmla.f32 s10, s11, s2 :: Sd 0xcc4a89cd Sm (i32)0x473e7300 Sn (i32)0x44882000
+vnmla.f32 s29, s15, s7 :: Sd 0xcdb2c947 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vnmla.f32 s30, s11, s12 :: Sd 0xcef90536 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vnmla.f32 s27, s21, s6 :: Sd 0xbdab1f7a Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vnmla.f32 s30, s31, s2 :: Sd 0xc88fe2c0 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vnmla.f32 s13, s24, s5 :: Sd 0xc993b8e3 Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vnmla.f32 s10, s11, s2 :: Sd 0xc74f9afc Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vnmla.f32 s29, s25, s7 :: Sd 0x7f800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vnmla.f32 s0, s11, s12 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vnmla.f32 s27, s21, s16 :: Sd 0x45500239 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vnmla.f32 s0, s5, s2 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vnmla.f32 s20, s13, s15 :: Sd 0xffc00000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vnmla.f32 s10, s23, s15 :: Sd 0xffc00000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VMLS (fp) ----
+vmls.f64 d0, d11, d12 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vmls.f64 d7, d1, d6 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vmls.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vmls.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vmls.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vmls.f64 d20, d25, d22 :: Qd 0xc09067a4 0x842fc4c9 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vmls.f64 d23, d24, d25 :: Qd 0xc1bbe864 0x1f5b9999 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vmls.f64 d20, d31, d12 :: Qd 0xc1e0a1cf 0xd2ac68f6 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vmls.f64 d19, d25, d27 :: Qd 0x41d860c7 0xf7191999 Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vmls.f64 d30, d15, d2 :: Qd 0x420524a9 0x817fcbf4 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vmls.f64 d23, d24, d5 :: Qd 0x40df8bff 0x7ffffe04 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vmls.f64 d10, d11, d2 :: Qd 0x41895139 0x97f00000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vmls.f64 d29, d15, d7 :: Qd 0x41b65928 0xd5fe0000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vmls.f64 d30, d11, d12 :: Qd 0x41df20a6 0xd7bc2cb0 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vmls.f64 d27, d21, d6 :: Qd 0x3fb363ef 0x37b9be48 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vmls.f64 d30, d31, d2 :: Qd 0x4111fc57 0xf7ffffe0 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vmls.f64 d13, d24, d5 :: Qd 0x4132771c 0x6466665e Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vmls.f64 d10, d11, d2 :: Qd 0x40e9f35f 0x34bc6981 Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vmls.f64 d29, d25, d7 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vmls.f64 d0, d11, d12 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vmls.f64 d27, d21, d16 :: Qd 0xc0aa004b 0x17cc0c5d Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vmls.f64 d0, d5, d2 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vmls.f64 d20, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vmls.f64 d10, d23, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vmls.f32 s0, s11, s12 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vmls.f32 s7, s1, s6 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vmls.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vmls.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vmls.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vmls.f32 s20, s25, s22 :: Sd 0xc4833ce4 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vmls.f32 s23, s24, s25 :: Sd 0xcddf4321 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vmls.f32 s20, s31, s12 :: Sd 0xcf050e7f Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vmls.f32 s19, s25, s27 :: Sd 0x4ec3063f Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vmls.f32 s30, s15, s2 :: Sd 0x5029254c Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vmls.f32 s23, s24, s5 :: Sd 0x46fc6000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vmls.f32 s10, s11, s2 :: Sd 0x4c4a89cd Sm (i32)0x473e7300 Sn (i32)0x44882000
+vmls.f32 s29, s15, s7 :: Sd 0x4db2c947 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vmls.f32 s30, s11, s12 :: Sd 0x4ef90536 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vmls.f32 s27, s21, s6 :: Sd 0x3dab1f7a Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vmls.f32 s30, s31, s2 :: Sd 0x488fe2c0 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vmls.f32 s13, s24, s5 :: Sd 0x4993b8e3 Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vmls.f32 s10, s11, s2 :: Sd 0x474f9afc Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vmls.f32 s29, s25, s7 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vmls.f32 s0, s11, s12 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vmls.f32 s27, s21, s16 :: Sd 0xc5500239 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vmls.f32 s0, s5, s2 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vmls.f32 s20, s13, s15 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vmls.f32 s10, s23, s15 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VNMLS (fp) ----
+vnmls.f64 d0, d11, d12 :: Qd 0xfff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vnmls.f64 d7, d1, d6 :: Qd 0xfff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vnmls.f64 d0, d5, d2 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vnmls.f64 d10, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vnmls.f64 d10, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vnmls.f64 d20, d25, d22 :: Qd 0x40906794 0x842f8549 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vnmls.f64 d23, d24, d25 :: Qd 0x41bbe864 0x1f579999 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vnmls.f64 d20, d31, d12 :: Qd 0x41e0a1cf 0xd2abe8f6 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vnmls.f64 d19, d25, d27 :: Qd 0xc1d860c7 0xf71a1999 Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vnmls.f64 d30, d15, d2 :: Qd 0xc20524a9 0x817febf4 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vnmls.f64 d23, d24, d5 :: Qd 0xc0df8c00 0x800001fc Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vnmls.f64 d10, d11, d2 :: Qd 0xc1895139 0x98100000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vnmls.f64 d29, d15, d7 :: Qd 0xc1b65928 0xd6020000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vnmls.f64 d30, d11, d12 :: Qd 0xc1df20a6 0xd7bd2cb0 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vnmls.f64 d27, d21, d6 :: Qd 0xbfb763ef 0x4799be48 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vnmls.f64 d30, d31, d2 :: Qd 0xc111fc58 0x08000020 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vnmls.f64 d13, d24, d5 :: Qd 0xc132771c 0x6866666e Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vnmls.f64 d10, d11, d2 :: Qd 0xc0e9f35f 0xb4bc6b7d Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vnmls.f64 d29, d25, d7 :: Qd 0x7ff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vnmls.f64 d0, d11, d12 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vnmls.f64 d27, d21, d16 :: Qd 0x40aa0043 0x17cbec9d Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vnmls.f64 d0, d5, d2 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vnmls.f64 d20, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vnmls.f64 d10, d23, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vnmls.f32 s0, s11, s12 :: Sd 0xffc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vnmls.f32 s7, s1, s6 :: Sd 0xffc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vnmls.f32 s0, s5, s2 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vnmls.f32 s10, s13, s15 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vnmls.f32 s10, s13, s15 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vnmls.f32 s20, s25, s22 :: Sd 0x44833ce4 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vnmls.f32 s23, s24, s25 :: Sd 0x4ddf4321 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vnmls.f32 s20, s31, s12 :: Sd 0x4f050e7f Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vnmls.f32 s19, s25, s27 :: Sd 0xcec3063f Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vnmls.f32 s30, s15, s2 :: Sd 0xd029254c Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vnmls.f32 s23, s24, s5 :: Sd 0xc6fc6000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vnmls.f32 s10, s11, s2 :: Sd 0xcc4a89cd Sm (i32)0x473e7300 Sn (i32)0x44882000
+vnmls.f32 s29, s15, s7 :: Sd 0xcdb2c947 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vnmls.f32 s30, s11, s12 :: Sd 0xcef90536 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vnmls.f32 s27, s21, s6 :: Sd 0xbdab1f7a Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vnmls.f32 s30, s31, s2 :: Sd 0xc88fe2c0 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vnmls.f32 s13, s24, s5 :: Sd 0xc993b8e3 Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vnmls.f32 s10, s11, s2 :: Sd 0xc74f9afc Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vnmls.f32 s29, s25, s7 :: Sd 0x7f800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vnmls.f32 s0, s11, s12 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vnmls.f32 s27, s21, s16 :: Sd 0x45500239 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vnmls.f32 s0, s5, s2 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vnmls.f32 s20, s13, s15 :: Sd 0xffc00000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vnmls.f32 s10, s23, s15 :: Sd 0xffc00000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VMUL (fp) ----
+vmul.f64 d0, d11, d12 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vmul.f64 d7, d1, d6 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vmul.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vmul.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vmul.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vmul.f64 d20, d25, d22 :: Qd 0xc090679c 0x842fa509 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vmul.f64 d23, d24, d25 :: Qd 0xc1bbe864 0x1f599999 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vmul.f64 d20, d31, d12 :: Qd 0xc1e0a1cf 0xd2ac28f6 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vmul.f64 d19, d25, d27 :: Qd 0x41d860c7 0xf7199999 Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vmul.f64 d30, d15, d2 :: Qd 0x420524a9 0x817fdbf4 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vmul.f64 d23, d24, d5 :: Qd 0x40df8c00 0x00000000 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vmul.f64 d10, d11, d2 :: Qd 0x41895139 0x98000000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vmul.f64 d29, d15, d7 :: Qd 0x41b65928 0xd6000000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vmul.f64 d30, d11, d12 :: Qd 0x41df20a6 0xd7bcacb0 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vmul.f64 d27, d21, d6 :: Qd 0x3fb563ef 0x3fa9be48 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vmul.f64 d30, d31, d2 :: Qd 0x4111fc58 0x00000000 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vmul.f64 d13, d24, d5 :: Qd 0x4132771c 0x66666666 Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vmul.f64 d10, d11, d2 :: Qd 0x40e9f35f 0x74bc6a7f Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vmul.f64 d29, d25, d7 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vmul.f64 d0, d11, d12 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vmul.f64 d27, d21, d16 :: Qd 0xc0aa0047 0x17cbfc7d Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vmul.f64 d0, d5, d2 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vmul.f64 d20, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vmul.f64 d10, d23, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vmul.f32 s0, s11, s12 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vmul.f32 s7, s1, s6 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vmul.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vmul.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vmul.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vmul.f32 s20, s25, s22 :: Sd 0xc4833ce4 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vmul.f32 s23, s24, s25 :: Sd 0xcddf4321 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vmul.f32 s20, s31, s12 :: Sd 0xcf050e7f Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vmul.f32 s19, s25, s27 :: Sd 0x4ec3063f Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vmul.f32 s30, s15, s2 :: Sd 0x5029254c Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vmul.f32 s23, s24, s5 :: Sd 0x46fc6000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vmul.f32 s10, s11, s2 :: Sd 0x4c4a89cd Sm (i32)0x473e7300 Sn (i32)0x44882000
+vmul.f32 s29, s15, s7 :: Sd 0x4db2c947 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vmul.f32 s30, s11, s12 :: Sd 0x4ef90536 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vmul.f32 s27, s21, s6 :: Sd 0x3dab1f7a Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vmul.f32 s30, s31, s2 :: Sd 0x488fe2c0 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vmul.f32 s13, s24, s5 :: Sd 0x4993b8e3 Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vmul.f32 s10, s11, s2 :: Sd 0x474f9afc Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vmul.f32 s29, s25, s7 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vmul.f32 s0, s11, s12 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vmul.f32 s27, s21, s16 :: Sd 0xc5500239 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vmul.f32 s0, s5, s2 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vmul.f32 s20, s13, s15 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vmul.f32 s10, s23, s15 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VNMUL (fp) ----
+vnmul.f64 d0, d11, d12 :: Qd 0xfff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vnmul.f64 d7, d1, d6 :: Qd 0xfff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vnmul.f64 d0, d5, d2 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vnmul.f64 d10, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vnmul.f64 d10, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vnmul.f64 d20, d25, d22 :: Qd 0x4090679c 0x842fa509 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vnmul.f64 d23, d24, d25 :: Qd 0x41bbe864 0x1f599999 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vnmul.f64 d20, d31, d12 :: Qd 0x41e0a1cf 0xd2ac28f6 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vnmul.f64 d19, d25, d27 :: Qd 0xc1d860c7 0xf7199999 Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vnmul.f64 d30, d15, d2 :: Qd 0xc20524a9 0x817fdbf4 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vnmul.f64 d23, d24, d5 :: Qd 0xc0df8c00 0x00000000 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vnmul.f64 d10, d11, d2 :: Qd 0xc1895139 0x98000000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vnmul.f64 d29, d15, d7 :: Qd 0xc1b65928 0xd6000000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vnmul.f64 d30, d11, d12 :: Qd 0xc1df20a6 0xd7bcacb0 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vnmul.f64 d27, d21, d6 :: Qd 0xbfb563ef 0x3fa9be48 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vnmul.f64 d30, d31, d2 :: Qd 0xc111fc58 0x00000000 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vnmul.f64 d13, d24, d5 :: Qd 0xc132771c 0x66666666 Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vnmul.f64 d10, d11, d2 :: Qd 0xc0e9f35f 0x74bc6a7f Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vnmul.f64 d29, d25, d7 :: Qd 0x7ff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vnmul.f64 d0, d11, d12 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vnmul.f64 d27, d21, d16 :: Qd 0x40aa0047 0x17cbfc7d Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vnmul.f64 d0, d5, d2 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vnmul.f64 d20, d13, d15 :: Qd 0xfff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vnmul.f64 d10, d23, d15 :: Qd 0xfff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vnmul.f32 s0, s11, s12 :: Sd 0xffc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vnmul.f32 s7, s1, s6 :: Sd 0xffc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vnmul.f32 s0, s5, s2 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vnmul.f32 s10, s13, s15 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vnmul.f32 s10, s13, s15 :: Sd 0xffc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vnmul.f32 s20, s25, s22 :: Sd 0x44833ce4 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vnmul.f32 s23, s24, s25 :: Sd 0x4ddf4321 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vnmul.f32 s20, s31, s12 :: Sd 0x4f050e7f Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vnmul.f32 s19, s25, s27 :: Sd 0xcec3063f Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vnmul.f32 s30, s15, s2 :: Sd 0xd029254c Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vnmul.f32 s23, s24, s5 :: Sd 0xc6fc6000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vnmul.f32 s10, s11, s2 :: Sd 0xcc4a89cd Sm (i32)0x473e7300 Sn (i32)0x44882000
+vnmul.f32 s29, s15, s7 :: Sd 0xcdb2c947 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vnmul.f32 s30, s11, s12 :: Sd 0xcef90536 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vnmul.f32 s27, s21, s6 :: Sd 0xbdab1f7a Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vnmul.f32 s30, s31, s2 :: Sd 0xc88fe2c0 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vnmul.f32 s13, s24, s5 :: Sd 0xc993b8e3 Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vnmul.f32 s10, s11, s2 :: Sd 0xc74f9afc Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vnmul.f32 s29, s25, s7 :: Sd 0x7f800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vnmul.f32 s0, s11, s12 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vnmul.f32 s27, s21, s16 :: Sd 0x45500239 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vnmul.f32 s0, s5, s2 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vnmul.f32 s20, s13, s15 :: Sd 0xffc00000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vnmul.f32 s10, s23, s15 :: Sd 0xffc00000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VADD (fp) ----
+vadd.f64 d0, d11, d12 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vadd.f64 d7, d1, d6 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vadd.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vadd.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vadd.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vadd.f64 d20, d25, d22 :: Qd 0xc0368758 0xe219652c Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vadd.f64 d23, d24, d25 :: Qd 0xc1152639 0xe6666666 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vadd.f64 d20, d31, d12 :: Qd 0x40a7310c 0x49ba5e30 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vadd.f64 d19, d25, d27 :: Qd 0x40fb924c 0x28f5c28f Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vadd.f64 d30, d15, d2 :: Qd 0xc111f558 0x00000000 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vadd.f64 d23, d24, d5 :: Qd 0x40956800 0x00000000 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vadd.f64 d10, d11, d2 :: Qd 0x40e85680 0x00000000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vadd.f64 d29, d15, d7 :: Qd 0x413abcd7 0x00000000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vadd.f64 d30, d11, d12 :: Qd 0x411616ea 0x46a7ef9e Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vadd.f64 d27, d21, d6 :: Qd 0x4041005f 0x99c38b04 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vadd.f64 d30, d31, d2 :: Qd 0x40a65a00 0x00000000 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vadd.f64 d13, d24, d5 :: Qd 0x40a1a533 0x33333333 Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vadd.f64 d10, d11, d2 :: Qd 0x4082a4b2 0x2d0e5604 Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vadd.f64 d29, d25, d7 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vadd.f64 d0, d11, d12 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vadd.f64 d27, d21, d16 :: Qd 0x407c0f45 0x2cfb0ace Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vadd.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vadd.f64 d20, d13, d15 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vadd.f64 d10, d23, d15 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vadd.f32 s0, s11, s12 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vadd.f32 s7, s1, s6 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vadd.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vadd.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vadd.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vadd.f32 s20, s25, s22 :: Sd 0xc1b43ac6 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vadd.f32 s23, s24, s25 :: Sd 0xc8a931cf Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vadd.f32 s20, s31, s12 :: Sd 0x45398860 Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vadd.f32 s19, s25, s27 :: Sd 0x47dc9261 Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vadd.f32 s30, s15, s2 :: Sd 0xc88faac0 Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vadd.f32 s23, s24, s5 :: Sd 0x44ab4000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vadd.f32 s10, s11, s2 :: Sd 0x4742b400 Sm (i32)0x473e7300 Sn (i32)0x44882000
+vadd.f32 s29, s15, s7 :: Sd 0x49d5e6b8 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vadd.f32 s30, s11, s12 :: Sd 0x48b0b752 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vadd.f32 s27, s21, s6 :: Sd 0x420802fd Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vadd.f32 s30, s31, s2 :: Sd 0x4532d000 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vadd.f32 s13, s24, s5 :: Sd 0x450d299a Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vadd.f32 s10, s11, s2 :: Sd 0x44152592 Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vadd.f32 s29, s25, s7 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vadd.f32 s0, s11, s12 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vadd.f32 s27, s21, s16 :: Sd 0x43e07a2a Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vadd.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vadd.f32 s20, s13, s15 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vadd.f32 s10, s23, s15 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VSUB (fp) ----
+vsub.f64 d0, d11, d12 :: Qd 0x7ff80000 0x00000000 Qm 0xfff00000 00000000 Qn 0x7ff80000 00000000
+vsub.f64 d7, d1, d6 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x7ff80000 00000000
+vsub.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0xbff00000 00000000
+vsub.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x00000000 00000000
+vsub.f64 d10, d13, d15 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff80000 00000000 Qn 0x7ff80000 00000000
+vsub.f64 d20, d25, d22 :: Qd 0x405126f4 0xf0d844d0 Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vsub.f64 d23, d24, d25 :: Qd 0xc1155049 0xe6666666 Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vsub.f64 d20, d31, d12 :: Qd 0x40f714d7 0x9db22d0e Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vsub.f64 d19, d25, d27 :: Qd 0x40f33d2c 0x28f5c28f Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vsub.f64 d30, d15, d2 :: Qd 0x4108c47c 0x28f5c290 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vsub.f64 d23, d24, d5 :: Qd 0xc094a800 0x00000000 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vsub.f64 d10, d11, d2 :: Qd 0x40e74640 0x00000000 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vsub.f64 d29, d15, d7 :: Qd 0xc13abb2b 0x00000000 Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vsub.f64 d30, d11, d12 :: Qd 0x41155f92 0x34395810 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vsub.f64 d27, d21, d6 :: Qd 0x4040ffbe 0x8bc169c2 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vsub.f64 d30, d31, d2 :: Qd 0x40a4ae00 0x00000000 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vsub.f64 d13, d24, d5 :: Qd 0xc07fe999 0x99999998 Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vsub.f64 d10, d11, d2 :: Qd 0x4077a964 0x5a1cac08 Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vsub.f64 d29, d25, d7 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vsub.f64 d0, d11, d12 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vsub.f64 d27, d21, d16 :: Qd 0x407cf8b2 0x46031990 Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vsub.f64 d0, d5, d2 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vsub.f64 d20, d13, d15 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vsub.f64 d10, d23, d15 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vsub.f32 s0, s11, s12 :: Sd 0x7fc00000 Sm (i32)0xff800000 Sn (i32)0x7fc00000
+vsub.f32 s7, s1, s6 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0x7fc00000
+vsub.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0xbf800000
+vsub.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x00000000
+vsub.f32 s10, s13, s15 :: Sd 0x7fc00000 Sm (i32)0x7fc00000 Sn (i32)0x7fc00000
+vsub.f32 s20, s25, s22 :: Sd 0x428937a8 Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vsub.f32 s23, s24, s25 :: Sd 0xc8aa824f Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vsub.f32 s20, s31, s12 :: Sd 0x47b8a6bd Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vsub.f32 s19, s25, s27 :: Sd 0x4799e961 Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vsub.f32 s30, s15, s2 :: Sd 0x484623e2 Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vsub.f32 s23, s24, s5 :: Sd 0xc4a54000 Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vsub.f32 s10, s11, s2 :: Sd 0x473a3200 Sm (i32)0x473e7300 Sn (i32)0x44882000
+vsub.f32 s29, s15, s7 :: Sd 0xc9d5d958 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vsub.f32 s30, s11, s12 :: Sd 0x48aafc92 Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vsub.f32 s27, s21, s6 :: Sd 0x4207fdf5 Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vsub.f32 s30, s31, s2 :: Sd 0x45257000 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vsub.f32 s13, s24, s5 :: Sd 0xc3ff4ccc Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vsub.f32 s10, s11, s2 :: Sd 0x43bd4b23 Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vsub.f32 s29, s25, s7 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vsub.f32 s0, s11, s12 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vsub.f32 s27, s21, s16 :: Sd 0x43e7c592 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vsub.f32 s0, s5, s2 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vsub.f32 s20, s13, s15 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vsub.f32 s10, s23, s15 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VDIV (fp) ----
+vdiv.f64 d20, d25, d22 :: Qd 0xbfe02df5 0x76d6419a Qm 0x40370a3d 70a3d70a Qn 0xc046c8cb 295e9e1b
+vdiv.f64 d23, d24, d25 :: Qd 0xc07026fe 0xc863346b Qm 0xc1153b41 e6666666 Qn 0x40950800 00000000
+vdiv.f64 d20, d31, d12 :: Qd 0xbff1098f 0x758c5d80 Qm 0x40e7ce60 00000000 Qn 0xc0e65b4f 3b645a1d
+vdiv.f64 d19, d25, d27 :: Qd 0x401678a0 0x9bfa11ab Qm 0x40f767bc 28f5c28f Qn 0x40d0aa40 00000000
+vdiv.f64 d30, d15, d2 :: Qd 0x3fc7844e 0x96972113 Qm 0xc0e64c67 ae147ae1 Qn 0xc10e5796 147ae148
+vdiv.f64 d23, d24, d5 :: Qd 0x3f92422f 0xedbdd012 Qm 0x40380000 00000000 Qn 0x40950800 00000000
+vdiv.f64 d10, d11, d2 :: Qd 0x4046629d 0x80967330 Qm 0x40e7ce60 00000000 Qn 0x40910400 00000000
+vdiv.f64 d29, d15, d7 :: Qd 0x3f200264 0x3ec040af Qm 0x406ac000 00000000 Qn 0x413abc01 00000000
+vdiv.f64 d30, d11, d12 :: Qd 0x404e57db 0x6cbb9f42 Qm 0x4115bb3e 3d70a3d7 Qn 0x40b6eb02 4dd2f1aa
+vdiv.f64 d27, d21, d6 :: Qd 0x40cb05b1 0x59d8ef97 Qm 0x4041000f 12c27a63 Qn 0x3f6421c0 44284dfd
+vdiv.f64 d30, d31, d2 :: Qd 0x4039bd02 0x647c6945 Qm 0x40a58400 00000000 Qn 0x405ac000 00000000
+vdiv.f64 d13, d24, d5 :: Qd 0x3fe43307 0xa78c550d Qm 0x408b5000 00000000 Qn 0x4095a266 66666666
+vdiv.f64 d10, d11, d2 :: Qd 0x4011e4a2 0x43006502 Qm 0x407e7964 5a1cac08 Qn 0x405b4000 00000000
+vdiv.f64 d29, d25, d7 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x409b6000 00000000
+vdiv.f64 d0, d11, d12 :: Qd 0xfff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xc0b69a78 51eb851f
+vdiv.f64 d27, d21, d16 :: Qd 0xc04f45f0 0x7ea9eeda Qm 0x407c83fb b97f122f Qn 0xc01d2da3 2101d847
+vdiv.f64 d0, d5, d2 :: Qd 0x7ff80000 0x00000000 Qm 0x7ff00000 00000000 Qn 0xfff00000 00000000
+vdiv.f64 d20, d13, d15 :: Qd 0xfff00000 0x00000000 Qm 0xfff00000 00000000 Qn 0x00000000 00000000
+vdiv.f64 d10, d23, d15 :: Qd 0x7ff00000 0x00000000 Qm 0x7ff00000 00000000 Qn 0x00000000 00000000
+vdiv.f32 s20, s25, s22 :: Sd 0xbf016fac Sm (i32)0x41b851ec Sn (i32)0xc2364659
+vdiv.f32 s23, s24, s25 :: Sd 0xc38137f6 Sm (i32)0xc8a9da0f Sn (i32)0x44a84000
+vdiv.f32 s20, s31, s12 :: Sd 0xbf884c7c Sm (i32)0x473e7300 Sn (i32)0xc732da7a
+vdiv.f32 s19, s25, s27 :: Sd 0x40b3c505 Sm (i32)0x47bb3de1 Sn (i32)0x46855200
+vdiv.f32 s30, s15, s2 :: Sd 0x3e3c2274 Sm (i32)0xc732633d Sn (i32)0xc872bcb1
+vdiv.f32 s23, s24, s5 :: Sd 0x3c92117f Sm (i32)0x41c00000 Sn (i32)0x44a84000
+vdiv.f32 s10, s11, s2 :: Sd 0x423314ec Sm (i32)0x473e7300 Sn (i32)0x44882000
+vdiv.f32 s29, s15, s7 :: Sd 0x39001322 Sm (i32)0x43560000 Sn (i32)0x49d5e008
+vdiv.f32 s30, s11, s12 :: Sd 0x4272bedc Sm (i32)0x48add9f2 Sn (i32)0x45b75812
+vdiv.f32 s27, s21, s6 :: Sd 0x46582d8c Sm (i32)0x42080079 Sn (i32)0x3b210e02
+vdiv.f32 s30, s31, s2 :: Sd 0x41cde813 Sm (i32)0x452c2000 Sn (i32)0x42d60000
+vdiv.f32 s13, s24, s5 :: Sd 0x3f21983d Sm (i32)0x445a8000 Sn (i32)0x44ad1333
+vdiv.f32 s10, s11, s2 :: Sd 0x408f2512 Sm (i32)0x43f3cb23 Sn (i32)0x42da0000
+vdiv.f32 s29, s25, s7 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x44db0000
+vdiv.f32 s0, s11, s12 :: Sd 0xff800000 Sm (i32)0x7f800000 Sn (i32)0xc5b4d3c3
+vdiv.f32 s27, s21, s16 :: Sd 0xc27a2f84 Sm (i32)0x43e41fde Sn (i32)0xc0e96d19
+vdiv.f32 s0, s5, s2 :: Sd 0x7fc00000 Sm (i32)0x7f800000 Sn (i32)0xff800000
+vdiv.f32 s20, s13, s15 :: Sd 0xff800000 Sm (i32)0xff800000 Sn (i32)0x00000000
+vdiv.f32 s10, s23, s15 :: Sd 0x7f800000 Sm (i32)0x7f800000 Sn (i32)0x00000000
+---- VABS ----
+vabs.f64 d15, d4 :: Dd 0x7ff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vabs.f64 d31, d4 :: Dd 0x7ff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vabs.f64 d25, d25 :: Dd 0x55555555 0x55555555 Dm (i32)0x7ff00000 00000000
+vabs.f64 d18, d17 :: Dd 0x7ff00000 0x00000000 Dm (i32)0x7ff00000 00000000
+vabs.f64 d30, d1 :: Dd 0x7ff00000 0x00000000 Dm (i32)0xfff00000 00000000
+vabs.f64 d8, d27 :: Dd 0x7ff00000 0x00000000 Dm (i32)0xfff00000 00000000
+vabs.f64 d20, d1 :: Dd 0x40f2aff0 0x041aac54 Dm (i32)0x40f2aff0 041aac54
+vabs.f64 d28, d7 :: Dd 0x40b2f83b 0xe76c8b44 Dm (i32)0xc0b2f83b e76c8b44
+vabs.f64 d2, d19 :: Dd 0x4055c649 0x2ff4ba52 Dm (i32)0x4055c649 2ff4ba52
+vabs.f64 d8, d7 :: Dd 0x40fdd2c3 0x33333333 Dm (i32)0xc0fdd2c3 33333333
+vabs.f32 s15, s4 :: Sd 0x7fc00000 Sm (i32)0x7fc00000
+vabs.f32 s31, s4 :: Sd 0x7fc00000 Sm (i32)0x7fc00000
+vabs.f32 s25, s25 :: Sd 0x7fffaaaa Sm (i32)0x7f800000
+vabs.f32 s18, s17 :: Sd 0x7f800000 Sm (i32)0x7f800000
+vabs.f32 s30, s1 :: Sd 0x7f800000 Sm (i32)0xff800000
+vabs.f32 s8, s27 :: Sd 0x7f800000 Sm (i32)0xff800000
+vabs.f32 s20, s1 :: Sd 0x47957f80 Sm (i32)0x47957f80
+vabs.f32 s28, s7 :: Sd 0x4597c1df Sm (i32)0xc597c1df
+vabs.f32 s2, s19 :: Sd 0x42ae3249 Sm (i32)0x42ae3249
+vabs.f32 s8, s7 :: Sd 0x47ee961a Sm (i32)0xc7ee961a
+---- VNEG ----
+vneg.f64 d15, d4 :: Dd 0xfff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vneg.f64 d31, d4 :: Dd 0xfff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vneg.f64 d25, d25 :: Dd 0xd5555555 0x55555555 Dm (i32)0x7ff00000 00000000
+vneg.f64 d18, d17 :: Dd 0xfff00000 0x00000000 Dm (i32)0x7ff00000 00000000
+vneg.f64 d30, d1 :: Dd 0x7ff00000 0x00000000 Dm (i32)0xfff00000 00000000
+vneg.f64 d8, d27 :: Dd 0x7ff00000 0x00000000 Dm (i32)0xfff00000 00000000
+vneg.f64 d20, d1 :: Dd 0xc0f2aff0 0x041aac54 Dm (i32)0x40f2aff0 041aac54
+vneg.f64 d28, d7 :: Dd 0x40b2f83b 0xe76c8b44 Dm (i32)0xc0b2f83b e76c8b44
+vneg.f64 d2, d19 :: Dd 0xc055c649 0x2ff4ba52 Dm (i32)0x4055c649 2ff4ba52
+vneg.f64 d8, d7 :: Dd 0x40fdd2c3 0x33333333 Dm (i32)0xc0fdd2c3 33333333
+vneg.f32 s15, s4 :: Sd 0xffc00000 Sm (i32)0x7fc00000
+vneg.f32 s31, s4 :: Sd 0xffc00000 Sm (i32)0x7fc00000
+vneg.f32 s25, s25 :: Sd 0x7fffaaaa Sm (i32)0x7f800000
+vneg.f32 s18, s17 :: Sd 0xff800000 Sm (i32)0x7f800000
+vneg.f32 s30, s1 :: Sd 0x7f800000 Sm (i32)0xff800000
+vneg.f32 s8, s27 :: Sd 0x7f800000 Sm (i32)0xff800000
+vneg.f32 s20, s1 :: Sd 0xc7957f80 Sm (i32)0x47957f80
+vneg.f32 s28, s7 :: Sd 0x4597c1df Sm (i32)0xc597c1df
+vneg.f32 s2, s19 :: Sd 0xc2ae3249 Sm (i32)0x42ae3249
+vneg.f32 s8, s7 :: Sd 0x47ee961a Sm (i32)0xc7ee961a
+---- VMOV (register) ----
+vmov.f64 d15, d4 :: Dd 0x7ff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vmov.f64 d31, d4 :: Dd 0x7ff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vmov.f64 d25, d25 :: Dd 0x55555555 0x55555555 Dm (i32)0x7ff00000 00000000
+vmov.f64 d18, d17 :: Dd 0x7ff00000 0x00000000 Dm (i32)0x7ff00000 00000000
+vmov.f64 d30, d1 :: Dd 0xfff00000 0x00000000 Dm (i32)0xfff00000 00000000
+vmov.f64 d8, d27 :: Dd 0xfff00000 0x00000000 Dm (i32)0xfff00000 00000000
+vmov.f64 d20, d1 :: Dd 0x40f2aff0 0x041aac54 Dm (i32)0x40f2aff0 041aac54
+vmov.f64 d28, d7 :: Dd 0xc0b2f83b 0xe76c8b44 Dm (i32)0xc0b2f83b e76c8b44
+vmov.f64 d2, d19 :: Dd 0x4055c649 0x2ff4ba52 Dm (i32)0x4055c649 2ff4ba52
+vmov.f64 d8, d7 :: Dd 0xc0fdd2c3 0x33333333 Dm (i32)0xc0fdd2c3 33333333
+vmov.f32 s15, s4 :: Sd 0x7fc00000 Sm (i32)0x7fc00000
+vmov.f32 s31, s4 :: Sd 0x7fc00000 Sm (i32)0x7fc00000
+vmov.f32 s25, s25 :: Sd 0xffffaaaa Sm (i32)0x7f800000
+vmov.f32 s18, s17 :: Sd 0x7f800000 Sm (i32)0x7f800000
+vmov.f32 s30, s1 :: Sd 0xff800000 Sm (i32)0xff800000
+vmov.f32 s8, s27 :: Sd 0xff800000 Sm (i32)0xff800000
+vmov.f32 s20, s1 :: Sd 0x47957f80 Sm (i32)0x47957f80
+vmov.f32 s28, s7 :: Sd 0xc597c1df Sm (i32)0xc597c1df
+vmov.f32 s2, s19 :: Sd 0x42ae3249 Sm (i32)0x42ae3249
+vmov.f32 s8, s7 :: Sd 0xc7ee961a Sm (i32)0xc7ee961a
+---- VSQRT ----
+vsqrt.f64 d15, d4 :: Dd 0x7ff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vsqrt.f64 d31, d4 :: Dd 0x7ff80000 0x00000000 Dm (i32)0x7ff80000 00000000
+vsqrt.f64 d25, d25 :: Dd 0x4aa279a7 0x4590331c Dm (i32)0x7ff00000 00000000
+vsqrt.f64 d18, d17 :: Dd 0x7ff00000 0x00000000 Dm (i32)0x7ff00000 00000000
+vsqrt.f64 d30, d1 :: Dd 0x7ff80000 0x00000000 Dm (i32)0xfff00000 00000000
+vsqrt.f64 d8, d27 :: Dd 0x7ff80000 0x00000000 Dm (i32)0xfff00000 00000000
+vsqrt.f64 d20, d1 :: Dd 0x40714a9f 0xfb4e5577 Dm (i32)0x40f2aff0 041aac54
+vsqrt.f64 d28, d7 :: Dd 0x7ff80000 0x00000000 Dm (i32)0xc0b2f83b e76c8b44
+vsqrt.f64 d2, d19 :: Dd 0x4022aa50 0x1fe2a179 Dm (i32)0x4055c649 2ff4ba52
+vsqrt.f64 d8, d7 :: Dd 0x7ff80000 0x00000000 Dm (i32)0xc0fdd2c3 33333333
+vsqrt.f32 s15, s4 :: Sd 0x7fc00000 Sm (i32)0x7fc00000
+vsqrt.f32 s31, s4 :: Sd 0x7fc00000 Sm (i32)0x7fc00000
+vsqrt.f32 s25, s25 :: Sd 0xffffaaaa Sm (i32)0x7f800000
+vsqrt.f32 s18, s17 :: Sd 0x7f800000 Sm (i32)0x7f800000
+vsqrt.f32 s30, s1 :: Sd 0x7fc00000 Sm (i32)0xff800000
+vsqrt.f32 s8, s27 :: Sd 0x7fc00000 Sm (i32)0xff800000
+vsqrt.f32 s20, s1 :: Sd 0x438a5500 Sm (i32)0x47957f80
+vsqrt.f32 s28, s7 :: Sd 0x7fc00000 Sm (i32)0xc597c1df
+vsqrt.f32 s2, s19 :: Sd 0x41155281 Sm (i32)0x42ae3249
+vsqrt.f32 s8, s7 :: Sd 0x7fc00000 Sm (i32)0xc7ee961a
+---- VCVT (integer <-> fp) ----
+vcvt.u32.f32 s0, s1 :: Sd 0x00000003 Sm (i32)0x404ccccd
+vcvt.u32.f32 s10, s11 :: Sd 0xffffffff Sm (i32)0x64cb49b4
+vcvt.u32.f32 s15, s4 :: Sd 0xb2d05e00 Sm (i32)0x4f32d05e
+vcvt.u32.f32 s25, s24 :: Sd 0x00000000 Sm (i32)0xbf000000
+vcvt.u32.f32 s19, s21 :: Sd 0x00000000 Sm (i32)0xc0e33333
+vcvt.u32.f32 s12, s8 :: Sd 0x00000008 Sm (i32)0x40fff800
+vcvt.u32.f32 s12, s18 :: Sd 0x00000000 Sm (i32)0xc0fff800
+vcvt.u32.f32 s30, s1 :: Sd 0x00000000 Sm (i32)0x00000000
+vcvt.u32.f32 s11, s1 :: Sd 0xffffffff Sm (i32)0x7f800000
+vcvt.u32.f32 s21, s12 :: Sd 0x00000000 Sm (i32)0xff800000
+vcvt.u32.f32 s20, s11 :: Sd 0x00000000 Sm (i32)0x7fc00000
+vcvt.s32.f32 s29, s13 :: Sd 0x00000000 Sm (i32)0x7fc00000
+vcvt.s32.f32 s9, s19 :: Sd 0x00000000 Sm (i32)0x00000000
+vcvt.s32.f32 s0, s17 :: Sd 0x7fffffff Sm (i32)0x7f800000
+vcvt.s32.f32 s0, s1 :: Sd 0x80000000 Sm (i32)0xff800000
+vcvt.s32.f32 s30, s11 :: Sd 0x00000003 Sm (i32)0x404ccccd
+vcvt.s32.f32 s20, s21 :: Sd 0x7fffffff Sm (i32)0x64cb49b4
+vcvt.s32.f32 s15, s14 :: Sd 0x7fffffff Sm (i32)0x4f32d05e
+vcvt.s32.f32 s15, s24 :: Sd 0x00000000 Sm (i32)0xbf000000
+vcvt.s32.f32 s15, s29 :: Sd 0xfffffff9 Sm (i32)0xc0e33333
+vcvt.s32.f32 s12, s31 :: Sd 0x00000008 Sm (i32)0x40fff800
+vcvt.s32.f32 s1, s8 :: Sd 0xfffffff8 Sm (i32)0xc0fff800
+vcvt.f32.u32 s30, s1 :: Sd 0x4e81c000 Sm (i32)0x40e00000
+vcvt.f32.u32 s10, s17 :: Sd 0x4f4f0000 Sm (i32)0xcf000000
+vcvt.f32.u32 s20, s1 :: Sd 0x4e9e0000 Sm (i32)0x4f000000
+vcvt.f32.u32 s24, s26 :: Sd 0x4e9e0000 Sm (i32)0x4f000000
+vcvt.f32.u32 s0, s14 :: Sd 0x4e9c8506 Sm (i32)0x4e4282f4
+vcvt.f32.u32 s11, s1 :: Sd 0x4eff0000 Sm (i32)0x7f800000
+vcvt.f32.u32 s21, s12 :: Sd 0x4f7f8000 Sm (i32)0xff800000
+vcvt.f32.u32 s29, s13 :: Sd 0x4eff8000 Sm (i32)0x7fc00000
+vcvt.f32.s32 s0, s1 :: Sd 0x4e81c000 Sm (i32)0x40e00000
+vcvt.f32.s32 s30, s31 :: Sd 0xce440000 Sm (i32)0xcf000000
+vcvt.f32.s32 s0, s12 :: Sd 0x4e9e0000 Sm (i32)0x4f000000
+vcvt.f32.s32 s10, s16 :: Sd 0x4e9e0000 Sm (i32)0x4f000000
+vcvt.f32.s32 s1, s8 :: Sd 0xce7c0020 Sm (i32)0xc0fff800
+vcvt.f32.s32 s29, s13 :: Sd 0x4eff8000 Sm (i32)0x7fc00000
+vcvt.f32.s32 s9, s19 :: Sd 0x00000000 Sm (i32)0x00000000
+vcvt.f32.s32 s0, s17 :: Sd 0x4eff0000 Sm (i32)0x7f800000
+vcvt.f32.s32 s0, s1 :: Sd 0xcb000000 Sm (i32)0xff800000
+vcvt.u32.f64 s0, d1 :: Sd 0x00000003 Dm 0x40099999 9999999a
+vcvt.u32.f64 s13, d26 :: Sd 0x000000eb Dm 0x406d5147 ae147ae1
+vcvt.u32.f64 s29, d30 :: Sd 0x0000b4a5 Dm 0x40e694ab 0a3d70a4
+vcvt.u32.f64 s30, d21 :: Sd 0x00000000 Dm 0xc01fff00 00000000
+vcvt.u32.f64 s11, d8 :: Sd 0xffffffff Dm 0x7ff00000 00000000
+vcvt.u32.f64 s8, d12 :: Sd 0x00000000 Dm 0xfff00000 00000000
+vcvt.u32.f64 s19, d7 :: Sd 0x00000000 Dm 0x7ff80000 00000000
+vcvt.u32.f64 s16, d16 :: Sd 0x0000004d Dm 0x40532ae1 47ae147b
+vcvt.s32.f64 s0, d1 :: Sd 0x00000003 Dm 0x40099999 9999999a
+vcvt.s32.f64 s13, d26 :: Sd 0x000000eb Dm 0x406d5147 ae147ae1
+vcvt.s32.f64 s29, d30 :: Sd 0x0000b4a5 Dm 0x40e694ab 0a3d70a4
+vcvt.s32.f64 s30, d21 :: Sd 0xfffffff8 Dm 0xc01fff00 00000000
+vcvt.s32.f64 s11, d8 :: Sd 0x7fffffff Dm 0x7ff00000 00000000
+vcvt.s32.f64 s8, d12 :: Sd 0x80000000 Dm 0xfff00000 00000000
+vcvt.s32.f64 s19, d7 :: Sd 0x00000000 Dm 0x7ff80000 00000000
+vcvt.s32.f64 s16, d16 :: Sd 0x0000004d Dm 0x40532ae1 47ae147b
+vcvt.f64.u32 d0, s1 :: Dd 0xfe000000 41efffff Sm 0x404ccccd
+vcvt.f64.u32 d30, s21 :: Dd 0x5c200000 41e88483 Sm 0xc4241ae1
+vcvt.f64.u32 d16, s12 :: Dd 0x62400000 41d11660 Sm 0x44598189
+vcvt.f64.u32 d29, s7 :: Dd 0xe6c00000 41e8a3de Sm 0xc51ef736
+vcvt.f64.u32 d12, s28 :: Dd 0x11000000 41d02800 Sm 0x40a00044
+vcvt.f64.u32 d7, s5 :: Dd 0x00000000 41eff000 Sm 0xff800000
+vcvt.f64.u32 d21, s20 :: Dd 0x00000000 41dfe000 Sm 0x7f800000
+vcvt.f64.u32 d11, s11 :: Dd 0x00000000 41dff000 Sm 0x7fc00000
+vcvt.f64.s32 d0, s1 :: Dd 0x00000000 c0300000 Sm 0x404ccccd
+vcvt.f64.s32 d30, s21 :: Dd 0x8f800000 c1cdedf2 Sm 0xc4241ae1
+vcvt.f64.s32 d16, s12 :: Dd 0x62400000 41d11660 Sm 0x44598189
+vcvt.f64.s32 d29, s7 :: Dd 0x65000000 c1cd7084 Sm 0xc51ef736
+vcvt.f64.s32 d12, s28 :: Dd 0x11000000 41d02800 Sm 0x40a00044
+vcvt.f64.s32 d7, s5 :: Dd 0x00000000 c1600000 Sm 0xff800000
+vcvt.f64.s32 d21, s20 :: Dd 0x00000000 41dfe000 Sm 0x7f800000
+vcvt.f64.s32 d11, s11 :: Dd 0x00000000 41dff000 Sm 0x7fc00000
+---- VCVT (single <-> double) ----
+vcvt.f64.f32 d0, s1 :: Dd 0xfffff555 0x40000000 Sm 0x404ccccd
+vcvt.f64.f32 d29, s21 :: Dd 0x406d54cc 0xc0000000 Sm 0x436aa666
+vcvt.f64.f32 d16, s30 :: Dd 0xc085e50a 0x40000000 Sm 0xc42f2852
+vcvt.f64.f32 d11, s7 :: Dd 0x401fff00 0x00000000 Sm 0x40fff800
+vcvt.f64.f32 d30, s3 :: Dd 0xc01fff00 0x00000000 Sm 0xc0fff800
+vcvt.f64.f32 d7, s19 :: Dd 0x4028ddb6 0x20000000 Sm 0x4146edb1
+vcvt.f64.f32 d2, s11 :: Dd 0x40505b1a 0xa0000000 Sm 0x4282d8d5
+vcvt.f64.f32 d9, s21 :: Dd 0x7ff80000 0x00000000 Sm 0x7fc00000
+vcvt.f64.f32 d17, s29 :: Dd 0xfff00000 0x00000000 Sm 0xff800000
+vcvt.f64.f32 d19, s0 :: Dd 0x7ff00000 0x00000000 Sm 0x7f800000
+vcvt.f32.f64 s0, d1 :: Sd 0x404ccccd Dm 0x40099999 9999999a
+vcvt.f32.f64 s29, d21 :: Sd 0x436aa666 Dm 0x406d54cc cccccccd
+vcvt.f32.f64 s16, d30 :: Sd 0xc42f2852 Dm 0xc085e50a 3d70a3d7
+vcvt.f32.f64 s11, d7 :: Sd 0x40fff800 Dm 0x401fff00 00000000
+vcvt.f32.f64 s30, d3 :: Sd 0xc0fff800 Dm 0xc01fff00 00000000
+vcvt.f32.f64 s7, d19 :: Sd 0x4146edb1 Dm 0x4028ddb6 1bb05faf
+vcvt.f32.f64 s2, d11 :: Sd 0x4282d8d5 Dm 0x40505b1a 9fbe76c9
+vcvt.f32.f64 s9, d21 :: Sd 0x7fc00000 Dm 0x7ff80000 00000000
+vcvt.f32.f64 s17, d29 :: Sd 0xff800000 Dm 0xfff00000 00000000
+vcvt.f32.f64 s19, d0 :: Sd 0x7f800000 Dm 0x7ff00000 00000000
+---- VCMP ----
+vcmp.f64 d0, d19 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65 Dm 0xc004fef9 db22d0e5
+vcmp.f64 d11, d16 :: FPSCR 0x20000000 Dd 0x40d6ecdc cccccccd Dm 0x40aac300 00000000
+vcmp.f64 d21, d30 :: FPSCR 0x20000000 Dd 0xc0b1ac80 00000000 Dm 0xc11b9be6 00000000
+vcmp.f64 d7, d28 :: FPSCR 0x20000000 Dd 0x407a9800 00000000 Dm 0xc07c84cc cccccccd
+vcmp.f64 d29, d3 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000 Dm 0x40e0e04e 66666666
+vcmp.f64 d3, d22 :: FPSCR 0x60000000 Dd 0x40000000 00000000 Dm 0x40000000 00000000
+vcmp.f64 d3, d22 :: FPSCR 0x60000000 Dd 0x40280bc6 a7ef9db2 Dm 0x40280bc6 a7ef9db2
+vcmp.f64 d3, d22 :: FPSCR 0x60000000 Dd 0x00000000 00000000 Dm 0x00000000 00000000
+vcmp.f64 d9, d2 :: FPSCR 0x60000000 Dd 0x7ff00000 00000000 Dm 0x7ff00000 00000000
+vcmp.f64 d30, d15 :: FPSCR 0x60000000 Dd 0xfff00000 00000000 Dm 0xfff00000 00000000
+vcmp.f64 d0, d19 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65 Dm 0xc004fef9 db22d0e5
+vcmp.f64 d11, d16 :: FPSCR 0x20000000 Dd 0xc0b557b3 33333333 Dm 0xfff00000 00000000
+vcmp.f64 d21, d30 :: FPSCR 0x80000000 Dd 0xfff00000 00000000 Dm 0x4055accc cccccccd
+vcmp.f64 d7, d28 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000 Dm 0xc0c0bbba 5e353f7d
+vcmp.f64 d29, d3 :: FPSCR 0x80000000 Dd 0xc0806333 33333333 Dm 0x40847400 00000000
+vcmp.f64 d3, d22 :: FPSCR 0x30000000 Dd 0x7ff80000 00000000 Dm 0xc019dc67 dfe32a06
+vcmp.f64 d9, d2 :: FPSCR 0x20000000 Dd 0x404c4810 624dd2f2 Dm 0x404c47ae 147ae148
+vcmp.f64 d30, d15 :: FPSCR 0x80000000 Dd 0x40b4f599 9a415f46 Dm 0x40ebb770 00000000
+vcmpe.f64 d0, d19 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65 Dm 0xc004fef9 db22d0e5
+vcmpe.f64 d11, d16 :: FPSCR 0x20000000 Dd 0x40d6ecdc cccccccd Dm 0x40aac300 00000000
+vcmpe.f64 d11, d16 :: FPSCR 0x30000000 Dd 0x40d6ecdc cccccccd Dm 0x7ff80000 00000000
+vcmpe.f64 d21, d30 :: FPSCR 0x20000000 Dd 0xc0b1ac80 00000000 Dm 0xc11b9be6 00000000
+vcmpe.f64 d7, d28 :: FPSCR 0x20000000 Dd 0x407a9800 00000000 Dm 0xc07c84cc cccccccd
+vcmpe.f64 d29, d3 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000 Dm 0x40e0e04e 66666666
+vcmpe.f64 d3, d22 :: FPSCR 0x60000000 Dd 0x40000000 00000000 Dm 0x40000000 00000000
+vcmpe.f64 d9, d2 :: FPSCR 0x60000000 Dd 0x7ff00000 00000000 Dm 0x7ff00000 00000000
+vcmpe.f64 d30, d15 :: FPSCR 0x60000000 Dd 0xfff00000 00000000 Dm 0xfff00000 00000000
+vcmpe.f64 d0, d19 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65 Dm 0xc004fef9 db22d0e5
+vcmpe.f64 d11, d16 :: FPSCR 0x20000000 Dd 0xc0b557b3 33333333 Dm 0xfff00000 00000000
+vcmpe.f64 d21, d30 :: FPSCR 0x80000000 Dd 0xfff00000 00000000 Dm 0x4055accc cccccccd
+vcmpe.f64 d7, d28 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000 Dm 0xc0c0bbba 5e353f7d
+vcmpe.f64 d29, d3 :: FPSCR 0x80000000 Dd 0xc0806333 33333333 Dm 0x40847400 00000000
+vcmpe.f64 d3, d22 :: FPSCR 0x20000000 Dd 0x40b21080 00000000 Dm 0xc019dc67 dfe32a06
+vcmpe.f64 d9, d2 :: FPSCR 0x20000000 Dd 0x404c4810 624dd2f2 Dm 0x404c47ae 147ae148
+vcmpe.f64 d30, d15 :: FPSCR 0x80000000 Dd 0x40b4f599 9a415f46 Dm 0x40ebb770 00000000
+vcmp.f32 s0, s19 :: FPSCR 0x8 Sd 0xc05d3a93 Sm 0xc027f7cf
+vcmp.f32 s11, s16 :: FPSCR 0x2 Sd 0x46b766e6 Sm 0x45561800
+vcmp.f32 s3, s22 :: FPSCR 0x6 Sd 0x40000000 Sm 0x40000000
+vcmp.f32 s0, s19 :: FPSCR 0x8 Sd 0xc05d3a93 Sm 0xc027f7cf
+vcmp.f32 s11, s16 :: FPSCR 0x2 Sd 0x46b766e6 Sm 0x45561800
+vcmp.f32 s21, s30 :: FPSCR 0x2 Sd 0xc58d6400 Sm 0xc8dcdf30
+vcmp.f32 s7, s28 :: FPSCR 0x2 Sd 0x43d4c000 Sm 0xc3e42666
+vcmp.f32 s29, s3 :: FPSCR 0x2 Sd 0x7f800000 Sm 0x47070273
+vcmp.f32 s3, s22 :: FPSCR 0x6 Sd 0x41405e35 Sm 0x41405e35
+vcmp.f32 s3, s22 :: FPSCR 0x6 Sd 0x00000000 Sm 0x00000000
+vcmp.f32 s9, s2 :: FPSCR 0x6 Sd 0x7f800000 Sm 0x7f800000
+vcmp.f32 s30, s15 :: FPSCR 0x6 Sd 0xff800000 Sm 0xff800000
+vcmp.f32 s0, s19 :: FPSCR 0x8 Sd 0xc05d3a93 Sm 0xc027f7cf
+vcmp.f32 s11, s16 :: FPSCR 0x2 Sd 0xc5aabd9a Sm 0xff800000
+vcmp.f32 s21, s30 :: FPSCR 0x8 Sd 0xff800000 Sm 0x42ad6666
+vcmp.f32 s7, s28 :: FPSCR 0x2 Sd 0x7f800000 Sm 0xc605ddd3
+vcmp.f32 s29, s3 :: FPSCR 0x8 Sd 0xc403199a Sm 0x4423a000
+vcmp.f32 s3, s22 :: FPSCR 0x3 Sd 0x7fc00000 Sm 0xc0cee33f
+vcmp.f32 s9, s2 :: FPSCR 0x2 Sd 0x42624083 Sm 0x42623d71
+vcmp.f32 s30, s15 :: FPSCR 0x8 Sd 0x45a7accd Sm 0x475dbb80
+vcmpe.f32 s0, s19 :: FPSCR 0x8 Sd 0xc05d3a93 Sm 0xc027f7cf
+vcmpe.f32 s11, s16 :: FPSCR 0x2 Sd 0x46b766e6 Sm 0x45561800
+vcmpe.f32 s11, s16 :: FPSCR 0x3 Sd 0x46b766e6 Sm 0x7fc00000
+vcmpe.f32 s21, s30 :: FPSCR 0x2 Sd 0xc58d6400 Sm 0xc8dcdf30
+vcmpe.f32 s7, s28 :: FPSCR 0x2 Sd 0x43d4c000 Sm 0xc3e42666
+vcmpe.f32 s29, s3 :: FPSCR 0x2 Sd 0x7f800000 Sm 0x47070273
+vcmpe.f32 s3, s22 :: FPSCR 0x6 Sd 0x40000000 Sm 0x40000000
+vcmpe.f32 s9, s2 :: FPSCR 0x6 Sd 0x7f800000 Sm 0x7f800000
+vcmpe.f32 s30, s15 :: FPSCR 0x6 Sd 0xff800000 Sm 0xff800000
+vcmpe.f32 s0, s19 :: FPSCR 0x8 Sd 0xc05d3a93 Sm 0xc027f7cf
+vcmpe.f32 s11, s16 :: FPSCR 0x2 Sd 0xc5aabd9a Sm 0xff800000
+vcmpe.f32 s21, s30 :: FPSCR 0x8 Sd 0xff800000 Sm 0x42ad6666
+vcmpe.f32 s7, s28 :: FPSCR 0x2 Sd 0x7f800000 Sm 0xc605ddd3
+vcmpe.f32 s29, s3 :: FPSCR 0x8 Sd 0xc403199a Sm 0x4423a000
+vcmpe.f32 s3, s22 :: FPSCR 0x2 Sd 0x45908400 Sm 0xc0cee33f
+vcmpe.f32 s9, s2 :: FPSCR 0x2 Sd 0x42624083 Sm 0x42623d71
+vcmpe.f32 s9, s2 :: FPSCR 0x8 Sd 0x00000000 Sm 0x42623d71
+vcmpe.f32 s9, s2 :: FPSCR 0x2 Sd 0x41200000 Sm 0x00000000
+vcmpe.f32 s9, s2 :: FPSCR 0x6 Sd 0x00000000 Sm 0x00000000
+vcmpe.f32 s9, s2 :: FPSCR 0x6 Sd 0x00000000 Sm 0x00000000
+---- VCMP (zero) ----
+vcmp.f64 d0 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65
+vcmp.f64 d11 :: FPSCR 0x20000000 Dd 0x40d6ecdc cccccccd
+vcmp.f64 d21 :: FPSCR 0x80000000 Dd 0xc0b1ac80 00000000
+vcmp.f64 d7 :: FPSCR 0x20000000 Dd 0x407a9800 00000000
+vcmp.f64 d29 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000
+vcmp.f64 d3 :: FPSCR 0x20000000 Dd 0x40000000 00000000
+vcmp.f64 d3 :: FPSCR 0x60000000 Dd 0x00000000 00000000
+vcmp.f64 d9 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000
+vcmp.f64 d30 :: FPSCR 0x80000000 Dd 0xfff00000 00000000
+vcmp.f64 d0 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65
+vcmp.f64 d11 :: FPSCR 0x80000000 Dd 0xc0b557b3 33333333
+vcmp.f64 d21 :: FPSCR 0x80000000 Dd 0xfff00000 00000000
+vcmp.f64 d7 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000
+vcmp.f64 d29 :: FPSCR 0x80000000 Dd 0xc0806333 33333333
+vcmp.f64 d3 :: FPSCR 0x20000000 Dd 0x40b21080 00000000
+vcmp.f64 d9 :: FPSCR 0x30000000 Dd 0x7ff80000 00000000
+vcmp.f64 d30 :: FPSCR 0x20000000 Dd 0x40b4f599 9a415f46
+vcmpe.f64 d0 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65
+vcmpe.f64 d11 :: FPSCR 0x20000000 Dd 0x40d6ecdc cccccccd
+vcmpe.f64 d21 :: FPSCR 0x80000000 Dd 0xc0b1ac80 00000000
+vcmpe.f64 d7 :: FPSCR 0x20000000 Dd 0x407a9800 00000000
+vcmpe.f64 d29 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000
+vcmpe.f64 d3 :: FPSCR 0x20000000 Dd 0x40000000 00000000
+vcmpe.f64 d3 :: FPSCR 0x60000000 Dd 0x00000000 00000000
+vcmpe.f64 d9 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000
+vcmpe.f64 d30 :: FPSCR 0x80000000 Dd 0xfff00000 00000000
+vcmpe.f64 d0 :: FPSCR 0x80000000 Dd 0xc00ba752 5460aa65
+vcmpe.f64 d11 :: FPSCR 0x80000000 Dd 0xc0b557b3 33333333
+vcmpe.f64 d21 :: FPSCR 0x80000000 Dd 0xfff00000 00000000
+vcmpe.f64 d7 :: FPSCR 0x20000000 Dd 0x7ff00000 00000000
+vcmpe.f64 d29 :: FPSCR 0x80000000 Dd 0xc0806333 33333333
+vcmpe.f64 d3 :: FPSCR 0x20000000 Dd 0x40b21080 00000000
+vcmpe.f64 d9 :: FPSCR 0x30000000 Dd 0x7ff80000 00000000
+vcmpe.f64 d30 :: FPSCR 0x20000000 Dd 0x40b4f599 9a415f46
+vcmp.f32 s0 :: FPSCR 0x80000000 Sd 0xc05d3a93
+vcmp.f32 s11 :: FPSCR 0x20000000 Sd 0x46b766e6
+vcmp.f32 s21 :: FPSCR 0x80000000 Sd 0xc58d6400
+vcmp.f32 s7 :: FPSCR 0x20000000 Sd 0x43d4c000
+vcmp.f32 s29 :: FPSCR 0x20000000 Sd 0x7f800000
+vcmp.f32 s3 :: FPSCR 0x20000000 Sd 0x40000000
+vcmp.f32 s3 :: FPSCR 0x60000000 Sd 0x00000000
+vcmp.f32 s9 :: FPSCR 0x20000000 Sd 0x7f800000
+vcmp.f32 s30 :: FPSCR 0x80000000 Sd 0xff800000
+vcmp.f32 s0 :: FPSCR 0x80000000 Sd 0xc05d3a93
+vcmp.f32 s11 :: FPSCR 0x80000000 Sd 0xc5aabd9a
+vcmp.f32 s21 :: FPSCR 0x80000000 Sd 0xff800000
+vcmp.f32 s7 :: FPSCR 0x20000000 Sd 0x7f800000
+vcmp.f32 s29 :: FPSCR 0x80000000 Sd 0xc403199a
+vcmp.f32 s3 :: FPSCR 0x20000000 Sd 0x45908400
+vcmp.f32 s9 :: FPSCR 0x30000000 Sd 0x7fc00000
+vcmp.f32 s30 :: FPSCR 0x20000000 Sd 0x45a7accd
+vcmpe.f32 s0 :: FPSCR 0x80000000 Sd 0xc05d3a93
+vcmpe.f32 s11 :: FPSCR 0x20000000 Sd 0x46b766e6
+vcmpe.f32 s21 :: FPSCR 0x80000000 Sd 0xc58d6400
+vcmpe.f32 s7 :: FPSCR 0x20000000 Sd 0x43d4c000
+vcmpe.f32 s29 :: FPSCR 0x20000000 Sd 0x7f800000
+vcmpe.f32 s3 :: FPSCR 0x20000000 Sd 0x40000000
+vcmpe.f32 s3 :: FPSCR 0x60000000 Sd 0x00000000
+vcmpe.f32 s9 :: FPSCR 0x20000000 Sd 0x7f800000
+vcmpe.f32 s30 :: FPSCR 0x80000000 Sd 0xff800000
+vcmpe.f32 s0 :: FPSCR 0x80000000 Sd 0xc05d3a93
+vcmpe.f32 s11 :: FPSCR 0x80000000 Sd 0xc5aabd9a
+vcmpe.f32 s21 :: FPSCR 0x80000000 Sd 0xff800000
+vcmpe.f32 s7 :: FPSCR 0x20000000 Sd 0x7f800000
+vcmpe.f32 s29 :: FPSCR 0x80000000 Sd 0xc403199a
+vcmpe.f32 s3 :: FPSCR 0x20000000 Sd 0x45908400
+vcmpe.f32 s9 :: FPSCR 0x30000000 Sd 0x7fc00000
+vcmpe.f32 s30 :: FPSCR 0x20000000 Sd 0x45a7accd
+---- VLDR ----
+vldr d9, [r6, #+4] :: Dd 0x0000011a 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+vldr d16, [r9, #-4] :: Dd 0x00000cc2 0x00000bb1 *(int*) (Rn + shift) 0x0bb1
+vldr d30, [r12] :: Dd 0x00000dd3 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr d22, [r9, #+8] :: Dd 0x0000022b 0x0000011a *(int*) (Rn + shift) 0x011a
+vldr d29, [r2, #-8] :: Dd 0x00000bb1 0x00000aa0 *(int*) (Rn + shift) 0x0aa0
+vldr d8, [r8, #+8] :: Dd 0x0000022b 0x0000011a *(int*) (Rn + shift) 0x011a
+vldr d11, [r12, #-4] :: Dd 0x00000cc2 0x00000bb1 *(int*) (Rn + shift) 0x0bb1
+vldr d18, [r3] :: Dd 0x00000dd3 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr d5, [r10, #+8] :: Dd 0x0000022b 0x0000011a *(int*) (Rn + shift) 0x011a
+vldr d17, [r10] :: Dd 0x00000dd3 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr d9, [r9, #-4] :: Dd 0x00000cc2 0x00000bb1 *(int*) (Rn + shift) 0x0bb1
+vldr d29, [r4, #-8] :: Dd 0x00000bb1 0x00000aa0 *(int*) (Rn + shift) 0x0aa0
+vldr d21, [r6, #+4] :: Dd 0x0000011a 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+vldr d8, [r4] :: Dd 0x00000dd3 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr d19, [r0, #-8] :: Dd 0x00000bb1 0x00000aa0 *(int*) (Rn + shift) 0x0aa0
+vldr d10, [r3, #+4] :: Dd 0x0000011a 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+vldr s10, [r3, #+4] :: Sd 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+vldr s9, [r6, #+4] :: Sd 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+vldr s16, [r9, #-4] :: Sd 0x00000bb1 *(int*) (Rn + shift) 0x0bb1
+vldr s30, [r12] :: Sd 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr s22, [r9, #+8] :: Sd 0x0000011a *(int*) (Rn + shift) 0x011a
+vldr s29, [r2, #-8] :: Sd 0x00000aa0 *(int*) (Rn + shift) 0x0aa0
+vldr s8, [r8, #+8] :: Sd 0x0000011a *(int*) (Rn + shift) 0x011a
+vldr s11, [r12, #-4] :: Sd 0x00000bb1 *(int*) (Rn + shift) 0x0bb1
+vldr s18, [r3] :: Sd 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr s5, [r10, #+8] :: Sd 0x0000011a *(int*) (Rn + shift) 0x011a
+vldr s17, [r10] :: Sd 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr s9, [r9, #-4] :: Sd 0x00000bb1 *(int*) (Rn + shift) 0x0bb1
+vldr s29, [r4, #-8] :: Sd 0x00000aa0 *(int*) (Rn + shift) 0x0aa0
+vldr s21, [r6, #+4] :: Sd 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+vldr s8, [r4] :: Sd 0x00000cc2 *(int*) (Rn + shift) 0x0cc2
+vldr s19, [r0, #-8] :: Sd 0x00000aa0 *(int*) (Rn + shift) 0x0aa0
+vldr s10, [r3, #+4] :: Sd 0x00000dd3 *(int*) (Rn + shift) 0x0dd3
+---- VLDM (Increment After, writeback) ----
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+vldmia rN!, qD1; vldmia rN!, qD2 :: Result 0x00000aa0 0x00000bb1 0x00000cc2 0x00000dd3
+---- VSTR ----
+vstr d9, [r6, #+4] :: Dd 0xa0a0a0a0 0xa0a0a0a0 *(int*) (Rm + shift) 0xa0a0a0a0
+vstr d16, [r9, #-4] :: Dd 0xb1b1b1b1 0xb1b1b1b1 *(int*) (Rm + shift) 0xb1b1b1b1
+vstr d30, [r12] :: Dd 0xc2c2c2c2 0xc2c2c2c2 *(int*) (Rm + shift) 0xc2c2c2c2
+vstr d22, [r9, #+8] :: Dd 0xd4d4d4d4 0xd4d4d4d4 *(int*) (Rm + shift) 0xd4d4d4d4
+vstr d29, [r2, #-8] :: Dd 0x00000000 0x00000000 *(int*) (Rm + shift) 0x0000
+vstr d8, [r8, #+8] :: Dd 0x11111111 0x11111111 *(int*) (Rm + shift) 0x11111111
+vstr d11, [r12, #-4] :: Dd 0x22222222 0x22222222 *(int*) (Rm + shift) 0x22222222
+vstr d18, [r3] :: Dd 0x33333333 0x33333333 *(int*) (Rm + shift) 0x33333333
+vstr d5, [r10, #+8] :: Dd 0x99999999 0x99999999 *(int*) (Rm + shift) 0x99999999
+vstr d17, [r10] :: Dd 0x77777777 0x77777777 *(int*) (Rm + shift) 0x77777777
+vstr d9, [r9, #-4] :: Dd 0xeeeeeeee 0xeeeeeeee *(int*) (Rm + shift) 0xeeeeeeee
+vstr d29, [r4, #-8] :: Dd 0xffffffff 0xffffffff *(int*) (Rm + shift) 0xffffffff
+vstr d10, [r3, #+4] :: Dd 0xbcbcbcbc 0xbcbcbcbc *(int*) (Rm + shift) 0xbcbcbcbc
+vstr d21, [r6, #+4] :: Dd 0x48484848 0x48484848 *(int*) (Rm + shift) 0x48484848
+vstr d8, [r4] :: Dd 0x1f1f1f1f 0x1f1f1f1f *(int*) (Rm + shift) 0x1f1f1f1f
+vstr d19, [r0, #-8] :: Dd 0xf9f9f9f9 0xf9f9f9f9 *(int*) (Rm + shift) 0xf9f9f9f9
+vstr s9, [r6, #+4] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s21, [r9, #-4] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s4, [r3, #+8] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s19, [r4, #-8] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s29, [r8] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s8, [r12] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s16, [r0, #+4] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s0, [r8, #-4] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s3, [r9, #+8] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s9, [r10, #-8] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s11, [r2] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+vstr s30, [r0] :: Sd 0xbe280000, *(int*) (Rm + shift) 0xbe280000
+---- VSTM (Increment After, no writeback) ----
+vstmia r6, {d21} :: Result 0xabababab 0xabababab
+vstmia r1, {d1} :: Result 0x13131313 0x13131313
+vstmia r9, {d2} :: Result 0x78787878 0x78787878
+vstmia r4, {d30} :: Result 0x00000000 0x00000000
+vstmia r12, {d23} :: Result 0xb9b9b9b9 0xb9b9b9b9
+vstmia r6, {d16} :: Result 0xa6a6a6a6 0xa6a6a6a6
+vstmia r6, {d8} :: Result 0x7f7f7f7f 0x7f7f7f7f
+vstmia r6, {d27} :: Result 0xffffffff 0xffffffff
+vstmia r5, {d11} :: Result 0x32323232 0x32323232
+vstmia r6, {d4} :: Result 0x10101010 0x10101010
+vstmia r10, {d9} :: Result 0x4f4f4f4f 0x4f4f4f4f
+vstmia r9, {d29} :: Result 0x97979797 0x97979797
+vstmia r10, {d17} :: Result 0xaaaaaaaa 0xaaaaaaaa
+vstmia r5, {d5} :: Result 0x2b2b2b2b 0x2b2b2b2b
+vstmia r9, {d7} :: Result 0x7b7b7b7b 0x7b7b7b7b
+vstmia r3, {d16} :: Result 0x11111111 0x11111111
+vstmia r6, {s21} :: Result 0x000000ab
+vstmia r1, {s1} :: Result 0x00000013
+vstmia r9, {s2} :: Result 0x00000078
+vstmia r4, {s30} :: Result 0x00000000
+vstmia r12, {s23} :: Result 0x000000b9
+vstmia r6, {s16} :: Result 0xa613451d
+vstmia r6, {s8} :: Result 0x0000007f
+vstmia r6, {s27} :: Result 0xff800000
+vstmia r5, {s11} :: Result 0x7fc00000
+vstmia r6, {s4} :: Result 0x00010ccb
+vstmia r10, {s9} :: Result 0x0004f543
+vstmia r9, {s29} :: Result 0x0097001a
+vstmia r10, {s17} :: Result 0x000aa45f
+vstmia r5, {s5} :: Result 0x7fc00000
+vstmia r9, {s7} :: Result 0xff800000
+vstmia r3, {s16} :: Result 0x7f800000
+---- VSTM (Increment After, writeback) ----
+vstmia r6!, d21; vstmia r6!, d2 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r1!, d1; vstmia r1!, d5 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r9!, d2; vstmia r9!, d17 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r4!, d30; vstmia r4!, d21 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r12!, d23; vstmia r12!, d29 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r6!, d16; vstmia r6!, d30 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r6!, d8; vstmia r6!, d12 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r6!, d27; vstmia r6!, d24 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r5!, d11; vstmia r5!, d13 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r6!, d4; vstmia r6!, d31 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r10!, d9; vstmia r10!, d27 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r9!, d29; vstmia r9!, d17 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r10!, d17; vstmia r10!, d7 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r5!, d5; vstmia r5!, d8 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r9!, d7; vstmia r9!, d16 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r3!, d16; vstmia r3!, d21 :: Result 0xa0a0a0a0 0xa0a0a0a0 0xb1b1b1b1 0xb1b1b1b1
+vstmia r6!, s21; vstmia r6!, s2 :: Result 0xbff80000 0x3fa80000
+vstmia r12!, s23; vstmia r12!, s21 :: Result 0xbff80000 0x3fa80000
+vstmia r3!, s3; vstmia r3!, s3 :: Result 0x3fa80000 0x3fa80000
+vstmia r10!, s19; vstmia r10!, s5 :: Result 0xbff80000 0x3fa80000
+vstmia r2!, s3; vstmia r2!, s12 :: Result 0xbff80000 0x3fa80000
+vstmia r8!, s7; vstmia r8!, s10 :: Result 0xbff80000 0x3fa80000
+vstmia r4!, s30; vstmia r4!, s13 :: Result 0xbff80000 0x3fa80000
+vstmia r6!, s17; vstmia r6!, s17 :: Result 0x3fa80000 0x3fa80000
+vstmia r9!, s11; vstmia r9!, s21 :: Result 0xbff80000 0x3fa80000
+vstmia r9!, s8; vstmia r9!, s30 :: Result 0xbff80000 0x3fa80000
+vstmia r3!, s12; vstmia r3!, s9 :: Result 0xbff80000 0x3fa80000
+vstmia r6!, s6; vstmia r6!, s11 :: Result 0xbff80000 0x3fa80000
+vstmia r8!, s17; vstmia r8!, s12 :: Result 0xbff80000 0x3fa80000
+vstmia r9!, s12; vstmia r9!, s12 :: Result 0x3fa80000 0x3fa80000
+vstmia r4!, s11; vstmia r4!, s11 :: Result 0x3fa80000 0x3fa80000
+---- VLDM (Decrement Before) ----
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+vldmdb rN!, qD1; vldmia rN!, qD2 :: Result 0x00000cc2 0x00000dd3 0x00000aa0 0x00000bb1
+----- VMOV (immediate) -----
+vmov s0, #0xbe880000 :: Sd 0xbe880000
+vmov s1, #0x3fa80000 :: Sd 0x3fa80000
+vmov s2, #0xbf080000 :: Sd 0xbf080000
+vmov s5, #0x3eb80000 :: Sd 0x3eb80000
+vmov s7, #0xbff80000 :: Sd 0xbff80000
+vmov s10, #0xbe280000 :: Sd 0xbe280000
+vmov s12, #0x40000000 :: Sd 0x40000000
+vmov s13, #0x3e880000 :: Sd 0x3e880000
+vmov s14, #0xbee80000 :: Sd 0xbee80000
+vmov s15, #0xc0b80000 :: Sd 0xc0b80000
+----- VMOV (ARM core register and single register) -----
+s12 0x04000aad vmov r12, s12 :: r12 0x04000aad
+s5 0x00ab45e7 vmov r2, s5 :: r2 0x00ab45e7
+s15 0x000add12 vmov r5, s15 :: r5 0x000add12
+s11 0x876450ff vmov r8, s11 :: r8 0x876450ff
+s5 0x0000ffff vmov r9, s5 :: r9 0x0000ffff
+s9 0x0087d34f vmov r10, s9 :: r10 0x0087d34f
+s10 0x0000ffff vmov r9, s10 :: r9 0x0000ffff
+s8 0x000ad4f8 vmov r6, s8 :: r6 0x000ad4f8
+s14 0x0920b8cf vmov r4, s14 :: r4 0x0920b8cf
+s7 0x7fc00000 vmov r3, s7 :: r3 0x7fc00000
+s0 0xff800000 vmov r2, s0 :: r2 0xff800000
+s1 0x7f800000 vmov r0, s1 :: r0 0x7f800000
+r9 0x0009465a vmov s2, r9 :: s2 0x0009465a
+r0 0x00d0b87a vmov s14, r0 :: s14 0x00d0b87a
+r2 0x0452bbc8 vmov s4, r2 :: s4 0x0452bbc8
+r8 0x00a7cb3d vmov s7, r8 :: s7 0x00a7cb3d
+r4 0x000dd8ec vmov s9, r4 :: s9 0x000dd8ec
+r12 0x008a7b6e vmov s10, r12 :: s10 0x008a7b6e
+r9 0x0004b00a vmov s13, r9 :: s13 0x0004b00a
+r3 0x00023455 vmov s3, r3 :: s3 0x00023455
+r5 0x7f800000 vmov s5, r5 :: s5 0x7f800000
+r6 0xff800000 vmov s8, r6 :: s8 0xff800000
+r0 0x000acb45 vmov s4, r0 :: s4 0x000acb45
+r6 0x7fc00000 vmov s0, r6 :: s0 0x7fc00000
+----- VMOV (ARM two core registers and two single registers) -----
+ r6 0x43252acc r9 0x000abcc4
+vmov s0, s1, r6, r9 :: s0 0x43252acc s1 0x000abcc4
+ r9 0x43252acc r9 0x000abcc4
+vmov s0, s1, r9, r9 :: s0 0x000abcc4 s1 0x000abcc4
+ r9 0xaa2e2acc r1 0x00000337
+vmov s30, s31, r9, r1 :: s30 0xaa2e2acc s31 0x00000337
+ r10 0x7fc00000 r9 0x7fc00000
+vmov s20, s21, r10, r9 :: s20 0x7fc00000 s21 0x7fc00000
+ r10 0x7fc00000 r9 0x7f800000
+vmov s20, s21, r10, r9 :: s20 0x7fc00000 s21 0x7f800000
+ r10 0x7fc00000 r9 0xff800000
+vmov s20, s21, r10, r9 :: s20 0x7fc00000 s21 0xff800000
+ r10 0x7fc00000 r9 0x00000000
+vmov s20, s21, r10, r9 :: s20 0x7fc00000 s21 0x00000000
+ r10 0x7f800000 r9 0x7fc00000
+vmov s20, s21, r10, r9 :: s20 0x7f800000 s21 0x7fc00000
+ r10 0x7f800000 r9 0x7f800000
+vmov s20, s21, r10, r9 :: s20 0x7f800000 s21 0x7f800000
+ r10 0x7f800000 r9 0xff800000
+vmov s20, s21, r10, r9 :: s20 0x7f800000 s21 0xff800000
+ r10 0x7f800000 r9 0x00000000
+vmov s20, s21, r10, r9 :: s20 0x7f800000 s21 0x00000000
+ r10 0xff800000 r9 0x7fc00000
+vmov s20, s21, r10, r9 :: s20 0xff800000 s21 0x7fc00000
+ r10 0xff800000 r9 0x7f800000
+vmov s20, s21, r10, r9 :: s20 0xff800000 s21 0x7f800000
+ r10 0xff800000 r9 0xff800000
+vmov s20, s21, r10, r9 :: s20 0xff800000 s21 0xff800000
+ r10 0xff800000 r9 0x00000000
+vmov s20, s21, r10, r9 :: s20 0xff800000 s21 0x00000000
+ r10 0x00000000 r9 0x7fc00000
+vmov s20, s21, r10, r9 :: s20 0x00000000 s21 0x7fc00000
+ r10 0x00000000 r9 0x7f800000
+vmov s20, s21, r10, r9 :: s20 0x00000000 s21 0x7f800000
+ r10 0x00000000 r9 0xff800000
+vmov s20, s21, r10, r9 :: s20 0x00000000 s21 0xff800000
+ r10 0x00000000 r9 0x00000000
+vmov s20, s21, r10, r9 :: s20 0x00000000 s21 0x00000000
+ r10 0x7fc00001 r9 0x7fc00000
+vmov s20, s21, r10, r9 :: s20 0x7fc00001 s21 0x7fc00000
+ r10 0x7fc00001 r9 0x00000000
+vmov s20, s21, r10, r9 :: s20 0x7fc00001 s21 0x00000000
+ r10 0x7fc00000 r9 0x7fbfffff
+vmov s20, s21, r10, r9 :: s20 0x7fc00000 s21 0x7fbfffff
+ r10 0x00000000 r9 0x7fbfffff
+vmov s20, s21, r10, r9 :: s20 0x00000000 s21 0x7fbfffff
+ s12 0x04000aad s13 0x000affff
+vmov r12, r9, s12, s13 :: r12 0x04000aad r9 0x000affff
+ s12 0x040ee56d s13 0x000123ff
+vmov r0, r9, s12, s13 :: r0 0x040ee56d r9 0x000123ff
+ s12 0x04000aad s13 0x000affff
+vmov r12, r9, s12, s13 :: r12 0x04000aad r9 0x000affff
+ s20 0x7fc00000 s21 0x7fc00000
+vmov r10, r9, s20, s21 :: r10 0x7fc00000 r9 0x7fc00000
+ s20 0x7fc00000 s21 0x7f800000
+vmov r10, r9, s20, s21 :: r10 0x7fc00000 r9 0x7f800000
+ s20 0x7fc00000 s21 0xff800000
+vmov r10, r9, s20, s21 :: r10 0x7fc00000 r9 0xff800000
+ s20 0x7fc00000 s21 0x00000000
+vmov r10, r9, s20, s21 :: r10 0x7fc00000 r9 0x00000000
+ s20 0x7f800000 s21 0x7fc00000
+vmov r10, r9, s20, s21 :: r10 0x7f800000 r9 0x7fc00000
+ s20 0x7f800000 s21 0x7f800000
+vmov r10, r9, s20, s21 :: r10 0x7f800000 r9 0x7f800000
+ s20 0x7f800000 s21 0xff800000
+vmov r10, r9, s20, s21 :: r10 0x7f800000 r9 0xff800000
+ s20 0x7f800000 s21 0x00000000
+vmov r10, r9, s20, s21 :: r10 0x7f800000 r9 0x00000000
+ s20 0xff800000 s21 0x7fc00000
+vmov r10, r9, s20, s21 :: r10 0xff800000 r9 0x7fc00000
+ s20 0xff800000 s21 0x7f800000
+vmov r10, r9, s20, s21 :: r10 0xff800000 r9 0x7f800000
+ s20 0xff800000 s21 0xff800000
+vmov r10, r9, s20, s21 :: r10 0xff800000 r9 0xff800000
+ s20 0xff800000 s21 0x00000000
+vmov r10, r9, s20, s21 :: r10 0xff800000 r9 0x00000000
+ s20 0x00000000 s21 0x7fc00000
+vmov r10, r9, s20, s21 :: r10 0x00000000 r9 0x7fc00000
+ s20 0x00000000 s21 0x7f800000
+vmov r10, r9, s20, s21 :: r10 0x00000000 r9 0x7f800000
+ s20 0x00000000 s21 0xff800000
+vmov r10, r9, s20, s21 :: r10 0x00000000 r9 0xff800000
+ s20 0x00000000 s21 0x00000000
+vmov r10, r9, s20, s21 :: r10 0x00000000 r9 0x00000000
+ s20 0x7fc00001 s21 0x7fc00000
+vmov r10, r9, s20, s21 :: r10 0x7fc00001 r9 0x7fc00000
+ s20 0x7fc00001 s21 0x00000000
+vmov r10, r9, s20, s21 :: r10 0x7fc00001 r9 0x00000000
+ s20 0x7fc00000 s21 0x7fbfffff
+vmov r10, r9, s20, s21 :: r10 0x7fc00000 r9 0x7fbfffff
+ s20 0x00000000 s21 0x7fbfffff
+vmov r10, r9, s20, s21 :: r10 0x00000000 r9 0x7fbfffff
+----- VMOV (ARM two core registers and double register) -----
+r6 0x43252acc r9 0x00045bbd vmov d3, r6, r9 :: d3 0x43252acc 0x00045bbd
+r10 0x001243b4 r2 0x00237ffb vmov d4, r10, r2 :: d4 0x001243b4 0x00237ffb
+r1 0x00030cc4 r6 0x0314c043 vmov d21, r1, r6 :: d21 0x00030cc4 0x0314c043
+r9 0x00008ddf r9 0x0087bbca vmov d30, r9, r9 :: d30 0x0087bbca 0x0087bbca
+r3 0x0000aaa0 r5 0x0000bbb1 vmov d29, r3, r5 :: d29 0x0000aaa0 0x0000bbb1
+r8 0x0aa455bb r8 0x00013434 vmov d16, r8, r8 :: d16 0x00013434 0x00013434
+r12 0x00004003 r9 0x0452bbc1 vmov d17, r12, r9 :: d17 0x00004003 0x0452bbc1
+r9 0x0000134c r0 0x0041ffb6 vmov d9, r9, r0 :: d9 0x0000134c 0x0041ffb6
+r0 0x35425dcc r6 0x00876c43 vmov d7, r0, r6 :: d7 0x35425dcc 0x00876c43
+r3 0x00000000 r9 0x7ff80000 vmov d13, r3, r9 :: d13 0x00000000 0x7ff80000
+r6 0x00000000 r5 0x7ff00000 vmov d19, r6, r5 :: d19 0x00000000 0x7ff00000
+r2 0x00000000 r6 0xfff00000 vmov d0, r2, r6 :: d0 0x00000000 0xfff00000
+d9 0x43252acc 0x00045bbd vmov r3, r6, d9 :: r3 0x43252acc r6 0x00045bbd
+d2 0x001243b4 0x00237ffb vmov r4, r10, d2 :: r4 0x001243b4 r10 0x00237ffb
+d6 0x00030cc4 0x0314c043 vmov r2, r1, d6 :: r2 0x00030cc4 r1 0x0314c043
+d11 0x00008ddf 0x0087bbca vmov r0, r9, d11 :: r0 0x00008ddf r9 0x0087bbca
+d5 0x0000aaa0 0x0000bbb1 vmov r9, r3, d5 :: r9 0x0000aaa0 r3 0x0000bbb1
+d8 0x0aa455bb 0x00013434 vmov r10, r8, d8 :: r10 0x0aa455bb r8 0x00013434
+d11 0x00004003 0x0452bbc1 vmov r9, r12, d11 :: r9 0x00004003 r12 0x0452bbc1
+d7 0x35425dcc 0x00876c43 vmov r6, r0, d7 :: r6 0x35425dcc r0 0x00876c43
+d11 0x00000000 0x7ff80000 vmov r12, r3, d11 :: r12 0x00000000 r3 0x7ff80000
+d5 0x00000000 0x7ff00000 vmov r1, r6, d5 :: r1 0x00000000 r6 0x7ff00000
+d7 0x00000000 0xfff00000 vmov r0, r2, d7 :: r0 0x00000000 r2 0xfff00000
+d0 0x00000000 0x7ff00000 vmov r2, r9, d0 :: r2 0x00000000 r9 0x7ff00000
+d10 0x0014534c 0x0041ffb6 vmov r6, r9, d10 :: r6 0x0014534c r9 0x0041ffb6
+d20 0x00000000 0x7ff80000 vmov r0, r9, d20 :: r0 0x00000000 r9 0x7ff80000
+----- VPUSH, VPOP -----
+s3 0x00aaaaaa s4 0x00bbbbbb s5 0x00cccccc s0 0x00cccccc s1 0x00aaaaaa s2 0x00bbbbbb
+s1 0x000134f4 s2 0x0870ccb3 s3 0x00aba0f1 s9 0x00aba0f1 s10 0x000134f4 s11 0x0870ccb3
+s3 0x00dddddd s4 0x00eeeeee s5 0x00ffffff s0 0x00ffffff s1 0x00dddddd s2 0x00eeeeee
+s11 0x0013454c s12 0x00000341 s13 0x00aac45f s6 0x00aac45f s7 0x0013454c s8 0x00000341
+s21 0x00000000 s22 0x7fc00000 s23 0x7f800000 s23 0x7f800000 s24 0x00000000 s25 0x7fc00000
+s12 0x00ffffff s13 0x0f542dd4 s14 0xff800000 s11 0xff800000 s12 0x00ffffff s13 0x0f542dd4
+s25 0x000045cd s26 0x00a3ccb5 s27 0x000bbcaf s0 0x000bbcaf s1 0x000045cd s2 0x00a3ccb5
+s1 0x7fc00000 s2 0x000aaca3 s3 0x00876008 s6 0x00876008 s7 0x7fc00000 s8 0x000aaca3
+s9 0x003cc66a s10 0x00002f43 s11 0x7f800000 s9 0x003cc66a s10 0x00002f43 s11 0x7f800000
+s10 0x7f800000 s11 0x00134cc5 s12 0x7fc00000 s2 0x7fc00000 s3 0x7f800000 s4 0x00134cc5
+s7 0x00cc006d s8 0x0001308c s9 0x00abbc45 s21 0x00abbc45 s22 0x00cc006d s23 0x0001308c
+s19 0xff800000 s20 0x00452146 s21 0x00388bbc s4 0x00388bbc s5 0xff800000 s6 0x00452146
+s16 0x000542aa s17 0x00addcd5 s18 0x00087acc s18 0x00087acc s19 0x000542aa s20 0x00addcd5
+s22 0x05ccb708 s23 0x0052345c s24 0x0098745c s12 0x0098745c s13 0x05ccb708 s14 0x0052345c
+s24 0x0099234f s25 0x00001aac s26 0x0003746c s28 0x0003746c s29 0x0099234f s30 0x00001aac
+s13 0x00134ccc s14 0x0006bb43 s15 0x000834aa s0 0x000834aa s1 0x00134ccc s2 0x0006bb43
+d3 0x00aaaaaa 0000aac3 d4 0x00bbbbbb 00034ccb d0 0x00aaaaaa 0000aac3 d1 0x00bbbbbb 00034ccb
+d1 0x000134f4 00341531 d2 0x0870ccb3 04576bbc d9 0x000134f4 00341531 d10 0x0870ccb3 04576bbc
+d3 0x00dddddd 013451cc d4 0x00eeeeee 0123ddc8 d0 0x00dddddd 013451cc d1 0x00eeeeee 0123ddc8
+d11 0x0013454c 0541bbc3 d12 0x00000341 0000ccb5 d6 0x0013454c 0541bbc3 d7 0x00000341 0000ccb5
+d21 0x00000000 00123c33 d22 0x00000000 7ff80000 d23 0x00000000 00123c33 d24 0x00000000 7ff80000
+d12 0x0f542dd4 00788ffc d13 0x0f542dd4 00788ffc d11 0x00ffffff 0001940c d12 0x0f542dd4 00788ffc
+d25 0x000045cd 0001309c d26 0x00a3ccb5 0004588b d0 0x000045cd 0001309c d1 0x00a3ccb5 0004588b
+d1 0x00000000 7ff80000 d2 0x000aaca3 0001120a d6 0x00000000 7ff80000 d7 0x000aaca3 0001120a
+d9 0x00002f43 00019ff9 d10 0x00000000 7ff00000 d9 0x00002f43 00019ff9 d10 0x00000000 7ff00000
+d10 0x00000000 7ff00000 d11 0x00134cc5 0078cbbd d2 0x00000000 7ff00000 d3 0x00134cc5 0078cbbd
+d7 0x00cc006d 00028354 d8 0x0001308c 001993bc d21 0x00cc006d 00028354 d22 0x0001308c 001993bc
+d19 0x00000000 fff00000 d20 0x00452146 0138476c d4 0x00000000 fff00000 d5 0x00452146 0138476c
+d16 0x000542aa 00012dd4 d17 0x00addcd5 000399cb d18 0x000542aa 00012dd4 d19 0x00addcd5 000399cb
+d22 0x05ccb708 0008009c d23 0x0052345c 0029902c d12 0x05ccb708 0008009c d13 0x0052345c 0029902c
+d24 0x0099234f 003457ff d25 0x00001aac 01002cba d28 0x0099234f 003457ff d29 0x00001aac 01002cba
+d13 0x00134ccc 00faa309 d14 0x0006bb43 000199cb d0 0x00134ccc 00faa309 d1 0x0006bb43 000199cb