]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add VFP test cases, as per bug 244493 comment 1. Minorly cleaned up
authorJulian Seward <jseward@acm.org>
Thu, 23 Sep 2010 01:26:06 +0000 (01:26 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 23 Sep 2010 01:26:06 +0000 (01:26 +0000)
version of a patch by (Dmitry Zhurikhin, zhur@ispras.ru)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11374

none/tests/arm/Makefile.am
none/tests/arm/vfp.c [new file with mode: 0644]
none/tests/arm/vfp.stderr.exp [new file with mode: 0644]
none/tests/arm/vfp.stdout.exp [new file with mode: 0644]
none/tests/arm/vfp.vgtest [new file with mode: 0644]

index 9f4df58cdf3772c7d513a0e2f66dc04c7fcef4db..ffa52bdd0c0bb2978000de1a2dc954504d04fac5 100644 (file)
@@ -8,14 +8,16 @@ EXTRA_DIST = \
        neon64.stdout.exp neon64.stderr.exp neon64.vgtest \
        v6intARM.stdout.exp v6intARM.stderr.exp v6intARM.vgtest \
        v6intThumb.stdout.exp v6intThumb.stderr.exp v6intThumb.vgtest \
-       v6media.stdout.exp v6media.stderr.exp v6media.vgtest
+       v6media.stdout.exp v6media.stderr.exp v6media.vgtest \
+       vfp.stdout.exp vfp.stderr.exp vfp.vgtest
 
 check_PROGRAMS = \
        neon128 \
        neon64 \
        v6intARM \
        v6intThumb \
-       v6media
+       v6media \
+       vfp
 
 AM_CFLAGS    += @FLAG_M32@
 AM_CXXFLAGS  += @FLAG_M32@
@@ -33,6 +35,11 @@ v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
 
 v6media_CFLAGS    = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
 
+vfp_CFLAGS        = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
+                       -mfpu=neon -mfloat-abi=softfp \
+                       -mthumb
+
+
 neon128_CFLAGS    = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
                        -mfpu=neon -mfloat-abi=softfp \
                        -mthumb
diff --git a/none/tests/arm/vfp.c b/none/tests/arm/vfp.c
new file mode 100644 (file)
index 0000000..7d7f0dc
--- /dev/null
@@ -0,0 +1,2277 @@
+
+/* 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;
+}
diff --git a/none/tests/arm/vfp.stderr.exp b/none/tests/arm/vfp.stderr.exp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/none/tests/arm/vfp.stdout.exp b/none/tests/arm/vfp.stdout.exp
new file mode 100644 (file)
index 0000000..1f6be32
--- /dev/null
@@ -0,0 +1,1220 @@
+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
diff --git a/none/tests/arm/vfp.vgtest b/none/tests/arm/vfp.vgtest
new file mode 100644 (file)
index 0000000..fd3e759
--- /dev/null
@@ -0,0 +1,2 @@
+prog: vfp
+vgopts: -q