]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 438038 Adds arm64 v8.2 FP compare & conditional compare instructions.
authorAssad Hashmi <assad.hashmi@linaro.org>
Tue, 29 Jun 2021 14:06:35 +0000 (10:06 -0400)
committerAssad Hashmi <assad.hashmi@linaro.org>
Tue, 29 Jun 2021 14:10:54 +0000 (10:10 -0400)
This patch adds half-precision floating-point support for the following:
FCCMP <Hn>, <Hm>, #<nzcv>, <cond>
FCCMPE <Hn>, <Hm>, #<nzcv>, <cond>
FCMEQ <Hd>, <Hn>, <Hm>
FCMEQ <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
FCMGE <Hd>, <Hn>, <Hm>
FCMGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
FCMGT <Hd>, <Hn>, <Hm>
FCMGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>

Fixes https://bugs.kde.org/show_bug.cgi?id=438038

VEX/priv/guest_arm64_toIR.c
VEX/priv/host_arm64_defs.c
VEX/priv/host_arm64_defs.h
VEX/priv/host_arm64_isel.c
VEX/priv/ir_defs.c
VEX/pub/libvex_ir.h
memcheck/mc_translate.c
memcheck/tests/vbit-test/irops.c
none/tests/arm64/fp_and_simd_v82.c
none/tests/arm64/fp_and_simd_v82.stdout.exp

index e25a17fe00c49cb9ec93281310e2b0369cbc45fb..572d16832297516c1995da3bb73c4533334c1d84 100644 (file)
@@ -10695,6 +10695,36 @@ Bool dis_AdvSIMD_scalar_three_same_extra(/*MB_OUT*/DisResult* dres, UInt insn,
       return True;
    }
 
+   if (size == X01 && opcode == BITS5(0,0,1,0,0)) {
+      /* -------- 0,01,00100 FCMEQ h_h_h -------- */
+      /* -------- 1,01,00100 FCMGE h_h_h -------- */
+      if ((archinfo->hwcaps & VEX_HWCAPS_ARM64_FP16) == 0)
+         return False;
+      Bool   isGE  = bitU == 1;
+      IROp   opCMP = isGE ? Iop_CmpLE16Fx8 : Iop_CmpEQ16Fx8;
+      IRTemp res   = newTempV128();
+      /* Swap source and destination in order to use existing LE IR op for GE. */
+      assign(res, isGE ? binop(opCMP, getQReg128(mm), getQReg128(nn))
+                       : binop(opCMP, getQReg128(nn), getQReg128(mm)));
+      putQReg128(dd, mkexpr(math_ZERO_ALL_EXCEPT_LOWEST_LANE(X01, mkexpr(res))));
+      DIP("%s %s, %s, %s\n", isGE ? "fcmge" : "fcmeq",
+          nameQRegLO(dd, Ity_F16), nameQRegLO(nn, Ity_F16), nameQRegLO(mm, Ity_F16));
+      return True;
+   }
+
+   if (bitU == 1 && size == X11 && opcode == BITS5(0,0,1,0,0)) {
+      /* -------- 1,11,00100 FCMGT h_h_h -------- */
+      if ((archinfo->hwcaps & VEX_HWCAPS_ARM64_FP16) == 0)
+         return False;
+      IRTemp res   = newTempV128();
+      /* Swap source and destination in order to use existing LT IR op for GT. */
+      assign(res, binop(Iop_CmpLT16Fx8, getQReg128(mm), getQReg128(nn)));
+      putQReg128(dd, mkexpr(math_ZERO_ALL_EXCEPT_LOWEST_LANE(X01, mkexpr(res))));
+      DIP("%s %s, %s, %s\n", "fcmgt",
+          nameQRegLO(dd, Ity_F16), nameQRegLO(nn, Ity_F16), nameQRegLO(mm, Ity_F16));
+      return True;
+   }
+
    if (bitU == 1 && opcode == BITS5(0,0,1,0,1)) {
       /* -------- 1,01,00101 FACGE h_h_h -------- */
       /* -------- 1,01,00101 FACGT h_h_h -------- */
@@ -12877,6 +12907,33 @@ Bool dis_AdvSIMD_three_same_fp16(/*MB_OUT*/DisResult* dres, UInt insn,
       return True;
    }
 
+   if (size == X01 && opcode == BITS5(0,0,1,0,0)) {
+      /* -------- 0,01,00100 FCMEQ 4h_4h_4h, 8h_8h_8h -------- */
+      /* -------- 1,01,00100 FCMGE 4h_4h_4h, 8h_8h_8h -------- */
+      Bool   isGE  = bitU == 1;
+      IRTemp t1    = newTempV128();
+      /* Swap source and destination in order to use existing LE IR op for GE. */
+      assign(t1, isGE ? binop(Iop_CmpLE16Fx8, getQReg128(mm), getQReg128(nn))
+                      : binop(Iop_CmpEQ16Fx8, getQReg128(nn), getQReg128(mm)));
+      putQReg128(dd, math_MAYBE_ZERO_HI64(bitQ, t1));
+      const HChar* arr = bitQ == 0 ? "4h" : "8h";
+      DIP("%s %s.%s, %s.%s, %s.%s\n", isGE ? "fcmge" : "fcmeq",
+          nameQReg128(dd), arr, nameQReg128(nn), arr, nameQReg128(mm), arr);
+      return True;
+   }
+
+   if (size == X11 && opcode == BITS5(0,0,1,0,0)) {
+      /* -------- 1,11,00100 FCMGT 4h_4h_4h, 8h_8h_8h -------- */
+      IRTemp t1    = newTempV128();
+      /* Swap source and destination in order to use existing LT IR op for GT. */
+      assign(t1, binop(Iop_CmpLT16Fx8, getQReg128(mm), getQReg128(nn)));
+      putQReg128(dd, math_MAYBE_ZERO_HI64(bitQ, t1));
+      const HChar* arr = bitQ == 0 ? "4h" : "8h";
+      DIP("%s %s.%s, %s.%s, %s.%s\n", "fcmgt",
+          nameQReg128(dd), arr, nameQReg128(nn), arr, nameQReg128(mm), arr);
+      return True;
+   }
+
    if (bitU == 1 && opcode == BITS5(0,0,1,0,1)) {
       /* -------- 1,01,00101 FACGE 4h_4h_4h 8h_8h_8h -------- */
       /* -------- 1,11,00101 FACGT 4h_4h_4h 8h_8h_8h -------- */
@@ -14324,7 +14381,8 @@ Bool dis_AdvSIMD_fp_compare(/*MB_OUT*/DisResult* dres, UInt insn)
 
 
 static
-Bool dis_AdvSIMD_fp_conditional_compare(/*MB_OUT*/DisResult* dres, UInt insn)
+Bool dis_AdvSIMD_fp_conditional_compare(/*MB_OUT*/DisResult* dres, UInt insn,
+                                        const VexArchInfo* archinfo, Bool sigill_diag)
 {
    /* 31  28    23 21 20 15   11 9 4  3
       000 11110 ty 1  m  cond 01 n op nzcv
@@ -14344,46 +14402,65 @@ Bool dis_AdvSIMD_fp_conditional_compare(/*MB_OUT*/DisResult* dres, UInt insn)
    UInt nzcv = INSN(3,0);
    vassert(ty < 4 && op <= 1);
 
-   if (ty <= BITS2(0,1)) {
-      /* -------- 00,0 FCCMP  s_s -------- */
-      /* -------- 00,1 FCCMPE s_s -------- */
-      /* -------- 01,0 FCCMP  d_d -------- */
-      /* -------- 01,1 FCCMPE d_d -------- */
-
-      /* FCCMPE generates Invalid Operation exn if either arg is any kind
-         of NaN.  FCCMP generates Invalid Operation exn if either arg is a
-         signalling NaN.  We ignore this detail here and produce the same
-         IR for both.
-      */
-      Bool   isD    = (ty & 1) == 1;
-      Bool   isCMPE = op == 1;
-      IRType ity    = isD ? Ity_F64 : Ity_F32;
-      IRTemp argL   = newTemp(ity);
-      IRTemp argR   = newTemp(ity);
-      IRTemp irRes  = newTemp(Ity_I32);
-      assign(argL,  getQRegLO(nn, ity));
-      assign(argR,  getQRegLO(mm, ity));
-      assign(irRes, binop(isD ? Iop_CmpF64 : Iop_CmpF32,
-                          mkexpr(argL), mkexpr(argR)));
-      IRTemp condT = newTemp(Ity_I1);
-      assign(condT, unop(Iop_64to1, mk_arm64g_calculate_condition(cond)));
-      IRTemp nzcvT = mk_convert_IRCmpF64Result_to_NZCV(irRes);
-
-      IRTemp nzcvT_28x0 = newTemp(Ity_I64);
-      assign(nzcvT_28x0, binop(Iop_Shl64, mkexpr(nzcvT), mkU8(28)));
-
-      IRExpr* nzcvF_28x0 = mkU64(((ULong)nzcv) << 28);
-
-      IRTemp nzcv_28x0 = newTemp(Ity_I64);
-      assign(nzcv_28x0, IRExpr_ITE(mkexpr(condT),
-                                   mkexpr(nzcvT_28x0), nzcvF_28x0));
-      setFlags_COPY(nzcv_28x0);
-      DIP("fccmp%s %s, %s, #%u, %s\n", isCMPE ? "e" : "",
-          nameQRegLO(nn, ity), nameQRegLO(mm, ity), nzcv, nameCC(cond));
-      return True;
+   /* -------- 00,0 FCCMP  s_s -------- */
+   /* -------- 00,1 FCCMPE s_s -------- */
+   /* -------- 01,0 FCCMP  d_d -------- */
+   /* -------- 01,1 FCCMPE d_d -------- */
+   /* -------- 11,0 FCCMP  h_h -------- */
+   /* -------- 11,1 FCCMPE h_h -------- */
+
+   /* FCCMPE generates Invalid Operation exn if either arg is any kind
+      of NaN.  FCCMP generates Invalid Operation exn if either arg is a
+      signalling NaN.  We ignore this detail here and produce the same
+      IR for both.
+   */
+   Bool   isCMPE = op == 1;
+   IRType ity;
+   IROp   irop;
+   if (ty == 0) {
+      ity  = Ity_F32;
+      irop = Iop_CmpF32;
+   }
+   else if (ty == 1) {
+      ity  = Ity_F64;
+      irop = Iop_CmpF64;
+   }
+   else if (ty == 3) {
+      if ((archinfo->hwcaps & VEX_HWCAPS_ARM64_FP16) == 0)
+         return False;
+      ity  = Ity_F16;
+      irop = Iop_CmpF16;
    }
+   else {
+      /* ty = 2 is an illegal encoding */
+      if (sigill_diag) {
+         vex_printf("ARM64 front end: dis_AdvSIMD_fp_conditional_compare\n");
+      }
+      return False;
+   }
+   IRTemp argL   = newTemp(ity);
+   IRTemp argR   = newTemp(ity);
+   IRTemp irRes  = newTemp(Ity_I32);
+   assign(argL,  getQRegLO(nn, ity));
+   assign(argR,  getQRegLO(mm, ity));
+   assign(irRes, binop(irop, mkexpr(argL), mkexpr(argR)));
+   IRTemp condT = newTemp(Ity_I1);
+   assign(condT, unop(Iop_64to1, mk_arm64g_calculate_condition(cond)));
+   IRTemp nzcvT = mk_convert_IRCmpF64Result_to_NZCV(irRes);
+
+   IRTemp nzcvT_28x0 = newTemp(Ity_I64);
+   assign(nzcvT_28x0, binop(Iop_Shl64, mkexpr(nzcvT), mkU8(28)));
+
+   IRExpr* nzcvF_28x0 = mkU64(((ULong)nzcv) << 28);
+
+   IRTemp nzcv_28x0 = newTemp(Ity_I64);
+   assign(nzcv_28x0, IRExpr_ITE(mkexpr(condT),
+                                mkexpr(nzcvT_28x0), nzcvF_28x0));
+   setFlags_COPY(nzcv_28x0);
+   DIP("fccmp%s %s, %s, #%u, %s\n", isCMPE ? "e" : "",
+       nameQRegLO(nn, ity), nameQRegLO(mm, ity), nzcv, nameCC(cond));
+   return True;
 
-   return False;
 #  undef INSN
 }
 
@@ -15218,7 +15295,7 @@ Bool dis_AdvSIMD_fp_to_from_int_conv(/*MB_OUT*/DisResult* dres, UInt insn)
 
 static
 Bool dis_ARM64_simd_and_fp(/*MB_OUT*/DisResult* dres, UInt insn,
-                           const VexArchInfo* archinfo)
+                           const VexArchInfo* archinfo, Bool sigill_diag)
 {
    Bool ok;
    ok = dis_AdvSIMD_EXT(dres, insn);
@@ -15273,7 +15350,7 @@ Bool dis_ARM64_simd_and_fp(/*MB_OUT*/DisResult* dres, UInt insn,
    if (UNLIKELY(ok)) return True;
    ok = dis_AdvSIMD_fp_compare(dres, insn);
    if (UNLIKELY(ok)) return True;
-   ok = dis_AdvSIMD_fp_conditional_compare(dres, insn);
+   ok = dis_AdvSIMD_fp_conditional_compare(dres, insn, archinfo, sigill_diag);
    if (UNLIKELY(ok)) return True;
    ok = dis_AdvSIMD_fp_conditional_select(dres, insn);
    if (UNLIKELY(ok)) return True;
@@ -15451,7 +15528,7 @@ Bool disInstr_ARM64_WRK (
          break;
       case BITS4(0,1,1,1): case BITS4(1,1,1,1): 
          // Data processing - SIMD and floating point
-         ok = dis_ARM64_simd_and_fp(dres, insn, archinfo);
+         ok = dis_ARM64_simd_and_fp(dres, insn, archinfo, sigill_diag);
          break;
       case BITS4(0,0,0,0): case BITS4(0,0,0,1):
       case BITS4(0,0,1,0): case BITS4(0,0,1,1):
index cc4d50a82a199d9bbdb26d315bfa63339225a5bf..5dccc049546b070a9b8d7f8f018b5eff8900b494 100644 (file)
@@ -644,6 +644,7 @@ static void showARM64VecBinOp(/*OUT*/const HChar** nm,
       case ARM64vecb_FCMGT64x2:    *nm = "fcmgt ";    *ar = "2d";   return;
       case ARM64vecb_FCMGT32x4:    *nm = "fcmgt ";    *ar = "4s";   return;
       case ARM64vecb_FCMGT16x8:    *nm = "fcmgt ";    *ar = "8h";   return;
+      case ARM64vecb_FCMEQ16x8:    *nm = "fcmeq ";    *ar = "8h";   return;
       case ARM64vecb_TBL1:         *nm = "tbl   ";    *ar = "16b";  return;
       case ARM64vecb_UZP164x2:     *nm = "uzp1  ";    *ar = "2d";   return;
       case ARM64vecb_UZP132x4:     *nm = "uzp1  ";    *ar = "4s";   return;
@@ -1253,6 +1254,13 @@ ARM64Instr* ARM64Instr_VCmpS ( HReg argL, HReg argR ) {
    i->ARM64in.VCmpS.argR = argR;
    return i;
 }
+ARM64Instr* ARM64Instr_VCmpH ( HReg argL, HReg argR ) {
+   ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
+   i->tag                = ARM64in_VCmpH;
+   i->ARM64in.VCmpH.argL = argL;
+   i->ARM64in.VCmpH.argR = argR;
+   return i;
+}
 ARM64Instr* ARM64Instr_VFCSel ( HReg dst, HReg argL, HReg argR,
                                 ARM64CondCode cond, Bool isD ) {
    ARM64Instr* i          = LibVEX_Alloc_inline(sizeof(ARM64Instr));
@@ -1897,6 +1905,12 @@ void ppARM64Instr ( const ARM64Instr* i ) {
          vex_printf(", ");
          ppHRegARM64asSreg(i->ARM64in.VCmpS.argR);
          return;
+      case ARM64in_VCmpH:
+         vex_printf("fcmp   ");
+         ppHRegARM64asHreg(i->ARM64in.VCmpH.argL);
+         vex_printf(", ");
+         ppHRegARM64asHreg(i->ARM64in.VCmpH.argR);
+         return;
       case ARM64in_VFCSel: {
          UInt (*ppHRegARM64fp)(HReg)
             = (i->ARM64in.VFCSel.isD ? ppHRegARM64 : ppHRegARM64asSreg);
@@ -2360,6 +2374,10 @@ void getRegUsage_ARM64Instr ( HRegUsage* u, const ARM64Instr* i, Bool mode64 )
          addHRegUse(u, HRmRead, i->ARM64in.VCmpS.argL);
          addHRegUse(u, HRmRead, i->ARM64in.VCmpS.argR);
          return;
+      case ARM64in_VCmpH:
+         addHRegUse(u, HRmRead, i->ARM64in.VCmpH.argL);
+         addHRegUse(u, HRmRead, i->ARM64in.VCmpH.argR);
+         return;
       case ARM64in_VFCSel:
          addHRegUse(u, HRmRead, i->ARM64in.VFCSel.argL);
          addHRegUse(u, HRmRead, i->ARM64in.VFCSel.argR);
@@ -2643,6 +2661,10 @@ void mapRegs_ARM64Instr ( HRegRemap* m, ARM64Instr* i, Bool mode64 )
          i->ARM64in.VCmpS.argL = lookupHRegRemap(m, i->ARM64in.VCmpS.argL);
          i->ARM64in.VCmpS.argR = lookupHRegRemap(m, i->ARM64in.VCmpS.argR);
          return;
+      case ARM64in_VCmpH:
+         i->ARM64in.VCmpH.argL = lookupHRegRemap(m, i->ARM64in.VCmpH.argL);
+         i->ARM64in.VCmpH.argR = lookupHRegRemap(m, i->ARM64in.VCmpH.argR);
+         return;
       case ARM64in_VFCSel:
          i->ARM64in.VFCSel.argL = lookupHRegRemap(m, i->ARM64in.VFCSel.argL);
          i->ARM64in.VFCSel.argR = lookupHRegRemap(m, i->ARM64in.VFCSel.argR);
@@ -3010,6 +3032,7 @@ static inline UInt qregEnc ( HReg r )
 #define X11011110  BITS8(1,1,0,1,1,1,1,0)
 #define X11100010  BITS8(1,1,1,0,0,0,1,0)
 #define X11110001  BITS8(1,1,1,1,0,0,0,1)
+#define X11110010  BITS8(1,1,1,1,0,0,1,0)
 #define X11110011  BITS8(1,1,1,1,0,0,1,1)
 #define X11110101  BITS8(1,1,1,1,0,1,0,1)
 #define X11110111  BITS8(1,1,1,1,0,1,1,1)
@@ -4708,6 +4731,13 @@ Int emit_ARM64Instr ( /*MB_MOD*/Bool* is_profInc,
          *p++ = X_3_8_5_6_5_5(X000, X11110001, sM, X001000, sN, X00000);
          goto done;
       }
+      case ARM64in_VCmpH: {
+         /* 000 11110 11 1 m 00 1000 n 00 000  FCMP Hn, Hm */
+         UInt hN = dregEnc(i->ARM64in.VCmpH.argL);
+         UInt hM = dregEnc(i->ARM64in.VCmpH.argR);
+         *p++ = X_3_8_5_6_5_5(X000, X11110111, hM, X001000, hN, X00000);
+         goto done;
+      }
       case ARM64in_VFCSel: {
          /* 31        23 21 20 15   11 9 5
             000 11110 00 1  m  cond 11 n d  FCSEL Sd,Sn,Sm,cond
@@ -5071,6 +5101,9 @@ Int emit_ARM64Instr ( /*MB_MOD*/Bool* is_profInc,
             case ARM64vecb_FCMEQ32x4:
                *p++ = X_3_8_5_6_5_5(X010, X01110001, vM, X111001, vN, vD);
                break;
+            case ARM64vecb_FCMEQ16x8:
+               *p++ = X_3_8_5_6_5_5(X010, X11110010, vM, X001001, vN, vD);
+               break;
 
             case ARM64vecb_FCMGE64x2:
                *p++ = X_3_8_5_6_5_5(X011, X01110011, vM, X111001, vN, vD);
index b6646e850187ef89cbe233c9e5fe136eab08ad43..f0737f2c68cbb894309a3262c99d9ec216b9fcd3 100644 (file)
@@ -362,8 +362,8 @@ typedef
       ARM64vecb_FCMEQ64x2,   ARM64vecb_FCMEQ32x4,
       ARM64vecb_FCMGE64x2,   ARM64vecb_FCMGE32x4,
       ARM64vecb_FCMGT64x2,   ARM64vecb_FCMGT32x4,
-      ARM64vecb_FCMGE16x8,
-      ARM64vecb_FCMGT16x8,
+      ARM64vecb_FCMGE16x8,   ARM64vecb_FCMGT16x8,
+      ARM64vecb_FCMEQ16x8,
       ARM64vecb_TBL1,
       ARM64vecb_UZP164x2,    ARM64vecb_UZP132x4,
       ARM64vecb_UZP116x8,    ARM64vecb_UZP18x16,
@@ -535,6 +535,7 @@ typedef
       ARM64in_VTriS,
       ARM64in_VCmpD,
       ARM64in_VCmpS,
+      ARM64in_VCmpH,
       ARM64in_VFCSel,
       ARM64in_FPCR,
       ARM64in_FPSR,
@@ -882,6 +883,11 @@ typedef
             HReg argL;
             HReg argR;
          } VCmpS;
+         /* 16-bit FP compare */
+         struct {
+            HReg argL;
+            HReg argR;
+         } VCmpH;
          /* 32- or 64-bit FP conditional select */
          struct {
             HReg          dst;
@@ -1053,6 +1059,7 @@ extern ARM64Instr* ARM64Instr_VTriS   ( ARM64FpTriOp op, HReg dst,
                                         HReg, HReg, HReg );
 extern ARM64Instr* ARM64Instr_VCmpD   ( HReg argL, HReg argR );
 extern ARM64Instr* ARM64Instr_VCmpS   ( HReg argL, HReg argR );
+extern ARM64Instr* ARM64Instr_VCmpH   ( HReg argL, HReg argR );
 extern ARM64Instr* ARM64Instr_VFCSel  ( HReg dst, HReg argL, HReg argR,
                                         ARM64CondCode cond, Bool isD );
 extern ARM64Instr* ARM64Instr_FPCR    ( Bool toFPCR, HReg iReg );
index dedaad72b8ab0d1acd993db9ae4340a3e155c02f..26b27f1f7c23359c21df3d8c5699075173972cce 100644 (file)
@@ -1842,15 +1842,29 @@ static HReg iselIntExpr_R_wrk ( ISelEnv* env, IRExpr* e )
          return hi32;
       }
 
-      if (e->Iex.Binop.op == Iop_CmpF64 || e->Iex.Binop.op == Iop_CmpF32) {
-         Bool isD = e->Iex.Binop.op == Iop_CmpF64;
-         HReg dL  = (isD ? iselDblExpr : iselFltExpr)(env, e->Iex.Binop.arg1);
-         HReg dR  = (isD ? iselDblExpr : iselFltExpr)(env, e->Iex.Binop.arg2);
+      if (e->Iex.Binop.op == Iop_CmpF64 || e->Iex.Binop.op == Iop_CmpF32 ||
+          e->Iex.Binop.op == Iop_CmpF16) {
+         HReg (*iselExpr)(ISelEnv*, IRExpr*) = NULL;
+         ARM64Instr* (*VCmp)(HReg, HReg) = NULL;
+         if (e->Iex.Binop.op == Iop_CmpF64) {
+            iselExpr = &iselDblExpr;
+            VCmp     = &ARM64Instr_VCmpD;
+         }
+         else if (e->Iex.Binop.op == Iop_CmpF32) {
+            iselExpr = &iselFltExpr;
+            VCmp     = &ARM64Instr_VCmpS;
+         }
+         else {
+            iselExpr = &iselF16Expr;
+            VCmp     = &ARM64Instr_VCmpH;
+         }
+         HReg dL  = (iselExpr)(env, e->Iex.Binop.arg1);
+         HReg dR  = (iselExpr)(env, e->Iex.Binop.arg2);
          HReg dst = newVRegI(env);
          HReg imm = newVRegI(env);
          /* Do the compare (FCMP), which sets NZCV in PSTATE.  Then
             create in dst, the IRCmpF64Result encoded result. */
-         addInstr(env, (isD ? ARM64Instr_VCmpD : ARM64Instr_VCmpS)(dL, dR));
+         addInstr(env, (VCmp)(dL, dR));
          addInstr(env, ARM64Instr_Imm64(dst, 0));
          addInstr(env, ARM64Instr_Imm64(imm, 0x40)); // 0x40 = Ircr_EQ
          addInstr(env, ARM64Instr_CSel(dst, imm, dst, ARM64cc_EQ));
@@ -2644,7 +2658,7 @@ static HReg iselV128Expr_wrk ( ISelEnv* env, IRExpr* e )
          case Iop_CmpEQ64Fx2: case Iop_CmpEQ32Fx4:
          case Iop_CmpLE64Fx2: case Iop_CmpLE32Fx4:
          case Iop_CmpLT64Fx2: case Iop_CmpLT32Fx4:
-         case Iop_CmpLT16Fx8: case Iop_CmpLE16Fx8:
+         case Iop_CmpLT16Fx8: case Iop_CmpLE16Fx8: case Iop_CmpEQ16Fx8:
          case Iop_Perm8x16:
          case Iop_InterleaveLO64x2: case Iop_CatEvenLanes32x4:
          case Iop_CatEvenLanes16x8: case Iop_CatEvenLanes8x16:
@@ -2730,6 +2744,7 @@ static HReg iselV128Expr_wrk ( ISelEnv* env, IRExpr* e )
                case Iop_CmpLE16Fx8: op = ARM64vecb_FCMGE16x8; sw = True; break;
                case Iop_CmpLT64Fx2: op = ARM64vecb_FCMGT64x2; sw = True; break;
                case Iop_CmpLT16Fx8: op = ARM64vecb_FCMGT16x8; sw = True; break;
+               case Iop_CmpEQ16Fx8: op = ARM64vecb_FCMEQ16x8; sw = True; break;
                case Iop_CmpLT32Fx4: op = ARM64vecb_FCMGT32x4; sw = True; break;
                case Iop_Perm8x16:   op = ARM64vecb_TBL1; break;
                case Iop_InterleaveLO64x2: op = ARM64vecb_UZP164x2; sw = True;
index fcd76b86dfa19fd70223ed218e01317b9bd35978..25566c41cc4ba159cf452fd6749940ecd5fd77e4 100644 (file)
@@ -750,6 +750,7 @@ void ppIROp ( IROp op )
       case Iop_CmpGE32Fx2: vex_printf("CmpGE32Fx2"); return;
       case Iop_CmpLT16Fx8: vex_printf("CmpLT16Fx8"); return;
       case Iop_CmpLE16Fx8: vex_printf("CmpLE16Fx8"); return;
+      case Iop_CmpEQ16Fx8: vex_printf("CmpEQ16Fx8"); return;
 
       case Iop_CmpEQ32F0x4: vex_printf("CmpEQ32F0x4"); return;
       case Iop_CmpLT32F0x4: vex_printf("CmpLT32F0x4"); return;
@@ -1438,7 +1439,8 @@ Bool primopMightTrap ( IROp op )
    case Iop_NegF32: case Iop_AbsF32: case Iop_SqrtF64: case Iop_SqrtF32:
    case Iop_NegF16: case Iop_AbsF16: case Iop_SqrtF16: case Iop_SubF16:
    case Iop_AddF16:
-   case Iop_CmpF64: case Iop_CmpF32: case Iop_CmpF128: case Iop_F64toI16S:
+   case Iop_CmpF64: case Iop_CmpF32: case Iop_CmpF16: case Iop_CmpF128:
+   case Iop_F64toI16S:
    case Iop_F64toI32S: case Iop_F64toI64S: case Iop_F64toI64U:
    case Iop_F64toI32U: case Iop_I32StoF64: case Iop_I64StoF64:
    case Iop_I64UtoF64: case Iop_I64UtoF32: case Iop_I32UtoF32:
@@ -1617,7 +1619,7 @@ Bool primopMightTrap ( IROp op )
    case Iop_Add64Fx2: case Iop_Sub64Fx2: case Iop_Mul64Fx2: case Iop_Div64Fx2:
    case Iop_Max64Fx2: case Iop_Min64Fx2:
    case Iop_CmpEQ64Fx2: case Iop_CmpLT64Fx2: case Iop_CmpLE64Fx2:
-   case Iop_CmpLT16Fx8: case Iop_CmpLE16Fx8:
+   case Iop_CmpLT16Fx8: case Iop_CmpLE16Fx8: case Iop_CmpEQ16Fx8:
    case Iop_CmpUN64Fx2: case Iop_Abs64Fx2: case Iop_Neg64Fx2:
    case Iop_Sqrt64Fx2: case Iop_Scale2_64Fx2: case Iop_Log2_64Fx2:
    case Iop_RecipEst64Fx2: case Iop_RecipStep64Fx2: case Iop_RSqrtEst64Fx2:
@@ -3401,6 +3403,9 @@ void typeOfPrimop ( IROp op,
       case Iop_MaxNumF32: case Iop_MinNumF32:
          BINARY(Ity_F32,Ity_F32, Ity_F32);
 
+     case Iop_CmpF16:
+         BINARY(Ity_F16,Ity_F16, Ity_I32);
+
      case Iop_CmpF32:
          BINARY(Ity_F32,Ity_F32, Ity_I32);
 
@@ -3553,7 +3558,7 @@ void typeOfPrimop ( IROp op,
       case Iop_Dup16x4: UNARY(Ity_I16, Ity_I64);
       case Iop_Dup32x2: UNARY(Ity_I32, Ity_I64);
 
-      case Iop_CmpLT16Fx8: case Iop_CmpLE16Fx8:
+      case Iop_CmpLT16Fx8: case Iop_CmpLE16Fx8: case Iop_CmpEQ16Fx8:
       case Iop_CmpEQ32Fx4: case Iop_CmpLT32Fx4:
       case Iop_CmpEQ64Fx2: case Iop_CmpLT64Fx2:
       case Iop_CmpLE32Fx4: case Iop_CmpUN32Fx4:
index 66691fe894cd82ab1fb945440aac4485d2a3d678..deaa044c1341534ed2f8470ef0694bb9e244dc55 100644 (file)
@@ -628,6 +628,7 @@ typedef
       /* :: F64 x F64 -> IRCmpF64Result(I32) */
       Iop_CmpF64,
       Iop_CmpF32,
+      Iop_CmpF16,
       Iop_CmpF128,
 
       /* --- Int to/from FP conversions. --- */
@@ -1383,7 +1384,7 @@ typedef
       Iop_Add16Fx8, Iop_Sub16Fx8,
 
       /* binary */
-      Iop_CmpLT16Fx8, Iop_CmpLE16Fx8,
+      Iop_CmpLT16Fx8, Iop_CmpLE16Fx8, Iop_CmpEQ16Fx8,
 
       /* unary */
       Iop_Abs16Fx8,
index 0f2b613d13a35b6ceaf89c7e45bbf767659e218c..c6fd2653f47f5f3f3ba3702e20dcc439fe003c5a 100644 (file)
@@ -4055,6 +4055,7 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
 
       case Iop_CmpLT16Fx8:
       case Iop_CmpLE16Fx8:
+      case Iop_CmpEQ16Fx8:
          return binary16Fx8(mce, vatom1, vatom2);
 
       case Iop_Sub64F0x2:
@@ -4540,6 +4541,7 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
          /*  I64 x I128 -> D128 */
          return mkLazy2(mce, Ity_I128, vatom1, vatom2);
 
+      case Iop_CmpF16:
       case Iop_CmpF32:
       case Iop_CmpF64:
       case Iop_CmpF128:
index f711ebc8fed11aa63a36984b0378f15bf550052c..0cbd16e52554a3e4c0098f23c905c43bd56f84aa 100644 (file)
@@ -220,6 +220,7 @@ static irop_t irops[] = {
   { DEFOP(Iop_SqrtF16,   UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 1, .ppc64 = 0, .ppc32 = 0, .mips32 = 0, .mips64 = 0 },
   { DEFOP(Iop_CmpF64,    UNDEF_ALL), .s390x = 1, .amd64 = 1, .x86 = 1, .arm = 1, .ppc64 = 1, .ppc32 = 1, .mips32 = 1, .mips64 = 1 },
   { DEFOP(Iop_CmpF32,    UNDEF_ALL), .s390x = 1, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 0, .ppc32 = 0, .mips32 = 0, .mips64 = 0 }, // mips asserts
+  { DEFOP(Iop_CmpF16,    UNDEF_ALL), .s390x = 1, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 0, .ppc32 = 0, .mips32 = 0, .mips64 = 0 },
   { DEFOP(Iop_CmpF128,   UNDEF_ALL), .s390x = 1, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 0, .ppc32 = 0, .mips32 = 0, .mips64 = 0 },
   { DEFOP(Iop_F64toI16S, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 1, .arm = 0, .ppc64 = 0, .ppc32 = 0, .mips32 = 0, .mips64 = 0 },
   { DEFOP(Iop_F64toI32S, UNDEF_ALL), .s390x = 1, .amd64 = 1, .x86 = 1, .arm = 1, .ppc64 = 1, .ppc32 = 1, .mips32 = 1, .mips64 = 1 },
@@ -696,6 +697,7 @@ static irop_t irops[] = {
   { DEFOP(Iop_CmpLE64Fx2, UNDEF_UNKNOWN), },
   { DEFOP(Iop_CmpLT16Fx8, UNDEF_UNKNOWN), },
   { DEFOP(Iop_CmpLE16Fx8, UNDEF_UNKNOWN), },
+  { DEFOP(Iop_CmpEQ16Fx8, UNDEF_UNKNOWN), },
   { DEFOP(Iop_CmpUN64Fx2, UNDEF_UNKNOWN), },
   { DEFOP(Iop_Abs64Fx2, UNDEF_UNKNOWN), },
   { DEFOP(Iop_Sqrt64Fx2, UNDEF_UNKNOWN), },
index 1c6cbb6395c3ddb167b16f311ed99f32a2d867e2..63c5bbf5ac12057c70c2a0495aed5faa9ce24fa1 100644 (file)
@@ -2916,6 +2916,365 @@ GEN_THREEVEC_TEST(facge_4h_27_28_29, "facge v27.4h, v28.4h, v29.4h",    27, 28,
 GEN_THREEVEC_TEST(facge_4h_28_29_30, "facge v28.4h, v29.4h, v30.4h",    28, 29, 30)
 GEN_THREEVEC_TEST(facge_4h_29_30_31, "facge v29.4h, v30.4h, v31.4h",    29, 30, 31)
 
+// FCCMP <Hn>, <Hm>, #<nzcv>, <cond>
+
+GEN_TWOVEC_TEST(fccmp_h_00_01, "fccmp h0, h1, #0, EQ", 0, 1)
+GEN_TWOVEC_TEST(fccmp_h_01_02, "fccmp h1, h2, #1, NE", 1, 2)
+GEN_TWOVEC_TEST(fccmp_h_02_03, "fccmp h2, h3, #2, HS", 2, 3)
+GEN_TWOVEC_TEST(fccmp_h_03_04, "fccmp h3, h4, #3, LO", 3, 4)
+GEN_TWOVEC_TEST(fccmp_h_04_05, "fccmp h4, h5, #4, MI", 4, 5)
+GEN_TWOVEC_TEST(fccmp_h_05_06, "fccmp h5, h6, #5, PL", 5, 6)
+GEN_TWOVEC_TEST(fccmp_h_06_07, "fccmp h6, h7, #6, VS", 6, 7)
+GEN_TWOVEC_TEST(fccmp_h_07_08, "fccmp h7, h8, #7, VC", 7, 8)
+GEN_TWOVEC_TEST(fccmp_h_08_09, "fccmp h8, h9, #8, HI", 8, 9)
+GEN_TWOVEC_TEST(fccmp_h_09_10, "fccmp h9, h10, #9, LS", 9, 10)
+GEN_TWOVEC_TEST(fccmp_h_10_11, "fccmp h10, h11, #10, GE", 10, 11)
+GEN_TWOVEC_TEST(fccmp_h_11_12, "fccmp h11, h12, #11, LT", 11, 12)
+GEN_TWOVEC_TEST(fccmp_h_12_13, "fccmp h12, h13, #12, GT", 12, 13)
+GEN_TWOVEC_TEST(fccmp_h_13_14, "fccmp h13, h14, #13, LE", 13, 14)
+GEN_TWOVEC_TEST(fccmp_h_14_15, "fccmp h14, h15, #14, AL", 14, 15)
+GEN_TWOVEC_TEST(fccmp_h_15_16, "fccmp h15, h16, #15, NV", 15, 16)
+GEN_TWOVEC_TEST(fccmp_h_16_17, "fccmp h16, h17, #0, EQ", 16, 17)
+GEN_TWOVEC_TEST(fccmp_h_17_18, "fccmp h17, h18, #1, NE", 17, 18)
+GEN_TWOVEC_TEST(fccmp_h_18_19, "fccmp h18, h19, #2, HS", 18, 19)
+GEN_TWOVEC_TEST(fccmp_h_19_20, "fccmp h19, h20, #3, LO", 19, 20)
+GEN_TWOVEC_TEST(fccmp_h_20_21, "fccmp h20, h21, #4, MI", 20, 21)
+GEN_TWOVEC_TEST(fccmp_h_21_22, "fccmp h21, h22, #5, PL", 21, 22)
+GEN_TWOVEC_TEST(fccmp_h_22_23, "fccmp h22, h23, #6, VS", 22, 23)
+GEN_TWOVEC_TEST(fccmp_h_23_24, "fccmp h23, h24, #7, VC", 23, 24)
+GEN_TWOVEC_TEST(fccmp_h_24_25, "fccmp h24, h25, #8, HI", 24, 25)
+GEN_TWOVEC_TEST(fccmp_h_25_26, "fccmp h25, h26, #9, LS", 25, 26)
+GEN_TWOVEC_TEST(fccmp_h_26_27, "fccmp h26, h27, #10, GE", 26, 27)
+GEN_TWOVEC_TEST(fccmp_h_27_28, "fccmp h27, h28, #11, LT", 27, 28)
+GEN_TWOVEC_TEST(fccmp_h_28_29, "fccmp h28, h29, #12, GT", 28, 29)
+GEN_TWOVEC_TEST(fccmp_h_29_30, "fccmp h29, h30, #13, LE", 29, 30)
+GEN_TWOVEC_TEST(fccmp_h_30_31, "fccmp h30, h31, #14, AL", 30, 31)
+
+// FCCMPE <Hn>, <Hm>, #<nzcv>, <cond>
+
+GEN_TWOVEC_TEST(fccmpe_h_00_01, "fccmpe h0, h1, #0, EQ", 0, 1)
+GEN_TWOVEC_TEST(fccmpe_h_01_02, "fccmpe h1, h2, #1, NE", 1, 2)
+GEN_TWOVEC_TEST(fccmpe_h_02_03, "fccmpe h2, h3, #2, HS", 2, 3)
+GEN_TWOVEC_TEST(fccmpe_h_03_04, "fccmpe h3, h4, #3, LO", 3, 4)
+GEN_TWOVEC_TEST(fccmpe_h_04_05, "fccmpe h4, h5, #4, MI", 4, 5)
+GEN_TWOVEC_TEST(fccmpe_h_05_06, "fccmpe h5, h6, #5, PL", 5, 6)
+GEN_TWOVEC_TEST(fccmpe_h_06_07, "fccmpe h6, h7, #6, VS", 6, 7)
+GEN_TWOVEC_TEST(fccmpe_h_07_08, "fccmpe h7, h8, #7, VC", 7, 8)
+GEN_TWOVEC_TEST(fccmpe_h_08_09, "fccmpe h8, h9, #8, HI", 8, 9)
+GEN_TWOVEC_TEST(fccmpe_h_09_10, "fccmpe h9, h10, #9, LS", 9, 10)
+GEN_TWOVEC_TEST(fccmpe_h_10_11, "fccmpe h10, h11, #10, GE", 10, 11)
+GEN_TWOVEC_TEST(fccmpe_h_11_12, "fccmpe h11, h12, #11, LT", 11, 12)
+GEN_TWOVEC_TEST(fccmpe_h_12_13, "fccmpe h12, h13, #12, GT", 12, 13)
+GEN_TWOVEC_TEST(fccmpe_h_13_14, "fccmpe h13, h14, #13, LE", 13, 14)
+GEN_TWOVEC_TEST(fccmpe_h_14_15, "fccmpe h14, h15, #14, AL", 14, 15)
+GEN_TWOVEC_TEST(fccmpe_h_15_16, "fccmpe h15, h16, #15, NV", 15, 16)
+GEN_TWOVEC_TEST(fccmpe_h_16_17, "fccmpe h16, h17, #0, EQ", 16, 17)
+GEN_TWOVEC_TEST(fccmpe_h_17_18, "fccmpe h17, h18, #1, NE", 17, 18)
+GEN_TWOVEC_TEST(fccmpe_h_18_19, "fccmpe h18, h19, #2, HS", 18, 19)
+GEN_TWOVEC_TEST(fccmpe_h_19_20, "fccmpe h19, h20, #3, LO", 19, 20)
+GEN_TWOVEC_TEST(fccmpe_h_20_21, "fccmpe h20, h21, #4, MI", 20, 21)
+GEN_TWOVEC_TEST(fccmpe_h_21_22, "fccmpe h21, h22, #5, PL", 21, 22)
+GEN_TWOVEC_TEST(fccmpe_h_22_23, "fccmpe h22, h23, #6, VS", 22, 23)
+GEN_TWOVEC_TEST(fccmpe_h_23_24, "fccmpe h23, h24, #7, VC", 23, 24)
+GEN_TWOVEC_TEST(fccmpe_h_24_25, "fccmpe h24, h25, #8, HI", 24, 25)
+GEN_TWOVEC_TEST(fccmpe_h_25_26, "fccmpe h25, h26, #9, LS", 25, 26)
+GEN_TWOVEC_TEST(fccmpe_h_26_27, "fccmpe h26, h27, #10, GE", 26, 27)
+GEN_TWOVEC_TEST(fccmpe_h_27_28, "fccmpe h27, h28, #11, LT", 27, 28)
+GEN_TWOVEC_TEST(fccmpe_h_28_29, "fccmpe h28, h29, #12, GT", 28, 29)
+GEN_TWOVEC_TEST(fccmpe_h_29_30, "fccmpe h29, h30, #13, LE", 29, 30)
+GEN_TWOVEC_TEST(fccmpe_h_30_31, "fccmpe h30, h31, #14, AL", 30, 31)
+
+// FCMEQ <Hd>, <Hn>, <Hm>
+
+GEN_THREEVEC_TEST(fcmeq_h_00_01_02, "fcmeq h0, h1, h2", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmeq_h_01_02_03, "fcmeq h1, h2, h3", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmeq_h_02_03_04, "fcmeq h2, h3, h4", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmeq_h_03_04_05, "fcmeq h3, h4, h5", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmeq_h_04_05_06, "fcmeq h4, h5, h6", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmeq_h_05_06_07, "fcmeq h5, h6, h7", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmeq_h_06_07_08, "fcmeq h6, h7, h8", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmeq_h_07_08_09, "fcmeq h7, h8, h9", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmeq_h_08_09_10, "fcmeq h8, h9, h10", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmeq_h_09_10_11, "fcmeq h9, h10, h11", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmeq_h_10_11_12, "fcmeq h10, h11, h12", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmeq_h_11_12_13, "fcmeq h11, h12, h13", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmeq_h_12_13_14, "fcmeq h12, h13, h14", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmeq_h_13_14_15, "fcmeq h13, h14, h15", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmeq_h_14_15_16, "fcmeq h14, h15, h16", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmeq_h_15_16_17, "fcmeq h15, h16, h17", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmeq_h_16_17_18, "fcmeq h16, h17, h18", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmeq_h_17_18_19, "fcmeq h17, h18, h19", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmeq_h_18_19_20, "fcmeq h18, h19, h20", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmeq_h_19_20_21, "fcmeq h19, h20, h21", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmeq_h_20_21_22, "fcmeq h20, h21, h22", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmeq_h_21_22_23, "fcmeq h21, h22, h23", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmeq_h_22_23_24, "fcmeq h22, h23, h24", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmeq_h_23_24_25, "fcmeq h23, h24, h25", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmeq_h_24_25_26, "fcmeq h24, h25, h26", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmeq_h_25_26_27, "fcmeq h25, h26, h27", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmeq_h_26_27_28, "fcmeq h26, h27, h28", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmeq_h_27_28_29, "fcmeq h27, h28, h29", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmeq_h_28_29_30, "fcmeq h28, h29, h30", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmeq_h_29_30_31, "fcmeq h29, h30, h31", 29, 30, 31)
+
+// FCMEQ <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
+
+GEN_THREEVEC_TEST(fcmeq_8h_00_01_02, "fcmeq v0.8h, v1.8h, v2.8h", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmeq_8h_01_02_03, "fcmeq v1.8h, v2.8h, v3.8h", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmeq_8h_02_03_04, "fcmeq v2.8h, v3.8h, v4.8h", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmeq_8h_03_04_05, "fcmeq v3.8h, v4.8h, v5.8h", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmeq_8h_04_05_06, "fcmeq v4.8h, v5.8h, v6.8h", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmeq_8h_05_06_07, "fcmeq v5.8h, v6.8h, v7.8h", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmeq_8h_06_07_08, "fcmeq v6.8h, v7.8h, v8.8h", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmeq_8h_07_08_09, "fcmeq v7.8h, v8.8h, v9.8h", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmeq_8h_08_09_10, "fcmeq v8.8h, v9.8h, v10.8h", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmeq_8h_09_10_11, "fcmeq v9.8h, v10.8h, v11.8h", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmeq_8h_10_11_12, "fcmeq v10.8h, v11.8h, v12.8h", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmeq_8h_11_12_13, "fcmeq v11.8h, v12.8h, v13.8h", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmeq_8h_12_13_14, "fcmeq v12.8h, v13.8h, v14.8h", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmeq_8h_13_14_15, "fcmeq v13.8h, v14.8h, v15.8h", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmeq_8h_14_15_16, "fcmeq v14.8h, v15.8h, v16.8h", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmeq_8h_15_16_17, "fcmeq v15.8h, v16.8h, v17.8h", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmeq_8h_16_17_18, "fcmeq v16.8h, v17.8h, v18.8h", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmeq_8h_17_18_19, "fcmeq v17.8h, v18.8h, v19.8h", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmeq_8h_18_19_20, "fcmeq v18.8h, v19.8h, v20.8h", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmeq_8h_19_20_21, "fcmeq v19.8h, v20.8h, v21.8h", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmeq_8h_20_21_22, "fcmeq v20.8h, v21.8h, v22.8h", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmeq_8h_21_22_23, "fcmeq v21.8h, v22.8h, v23.8h", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmeq_8h_22_23_24, "fcmeq v22.8h, v23.8h, v24.8h", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmeq_8h_23_24_25, "fcmeq v23.8h, v24.8h, v25.8h", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmeq_8h_24_25_26, "fcmeq v24.8h, v25.8h, v26.8h", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmeq_8h_25_26_27, "fcmeq v25.8h, v26.8h, v27.8h", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmeq_8h_26_27_28, "fcmeq v26.8h, v27.8h, v28.8h", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmeq_8h_27_28_29, "fcmeq v27.8h, v28.8h, v29.8h", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmeq_8h_28_29_30, "fcmeq v28.8h, v29.8h, v30.8h", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmeq_8h_29_30_31, "fcmeq v29.8h, v30.8h, v31.8h", 29, 30, 31)
+
+GEN_THREEVEC_TEST(fcmeq_4h_00_01_02, "fcmeq v0.4h, v1.4h, v2.4h", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmeq_4h_01_02_03, "fcmeq v1.4h, v2.4h, v3.4h", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmeq_4h_02_03_04, "fcmeq v2.4h, v3.4h, v4.4h", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmeq_4h_03_04_05, "fcmeq v3.4h, v4.4h, v5.4h", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmeq_4h_04_05_06, "fcmeq v4.4h, v5.4h, v6.4h", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmeq_4h_05_06_07, "fcmeq v5.4h, v6.4h, v7.4h", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmeq_4h_06_07_08, "fcmeq v6.4h, v7.4h, v8.4h", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmeq_4h_07_08_09, "fcmeq v7.4h, v8.4h, v9.4h", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmeq_4h_08_09_10, "fcmeq v8.4h, v9.4h, v10.4h", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmeq_4h_09_10_11, "fcmeq v9.4h, v10.4h, v11.4h", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmeq_4h_10_11_12, "fcmeq v10.4h, v11.4h, v12.4h", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmeq_4h_11_12_13, "fcmeq v11.4h, v12.4h, v13.4h", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmeq_4h_12_13_14, "fcmeq v12.4h, v13.4h, v14.4h", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmeq_4h_13_14_15, "fcmeq v13.4h, v14.4h, v15.4h", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmeq_4h_14_15_16, "fcmeq v14.4h, v15.4h, v16.4h", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmeq_4h_15_16_17, "fcmeq v15.4h, v16.4h, v17.4h", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmeq_4h_16_17_18, "fcmeq v16.4h, v17.4h, v18.4h", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmeq_4h_17_18_19, "fcmeq v17.4h, v18.4h, v19.4h", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmeq_4h_18_19_20, "fcmeq v18.4h, v19.4h, v20.4h", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmeq_4h_19_20_21, "fcmeq v19.4h, v20.4h, v21.4h", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmeq_4h_20_21_22, "fcmeq v20.4h, v21.4h, v22.4h", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmeq_4h_21_22_23, "fcmeq v21.4h, v22.4h, v23.4h", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmeq_4h_22_23_24, "fcmeq v22.4h, v23.4h, v24.4h", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmeq_4h_23_24_25, "fcmeq v23.4h, v24.4h, v25.4h", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmeq_4h_24_25_26, "fcmeq v24.4h, v25.4h, v26.4h", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmeq_4h_25_26_27, "fcmeq v25.4h, v26.4h, v27.4h", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmeq_4h_26_27_28, "fcmeq v26.4h, v27.4h, v28.4h", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmeq_4h_27_28_29, "fcmeq v27.4h, v28.4h, v29.4h", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmeq_4h_28_29_30, "fcmeq v28.4h, v29.4h, v30.4h", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmeq_4h_29_30_31, "fcmeq v29.4h, v30.4h, v31.4h", 29, 30, 31)
+
+// FCMGE <Hd>, <Hn>, <Hm>
+
+GEN_THREEVEC_TEST(fcmge_h_00_01_02, "fcmge h0, h1, h2", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmge_h_01_02_03, "fcmge h1, h2, h3", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmge_h_02_03_04, "fcmge h2, h3, h4", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmge_h_03_04_05, "fcmge h3, h4, h5", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmge_h_04_05_06, "fcmge h4, h5, h6", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmge_h_05_06_07, "fcmge h5, h6, h7", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmge_h_06_07_08, "fcmge h6, h7, h8", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmge_h_07_08_09, "fcmge h7, h8, h9", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmge_h_08_09_10, "fcmge h8, h9, h10", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmge_h_09_10_11, "fcmge h9, h10, h11", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmge_h_10_11_12, "fcmge h10, h11, h12", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmge_h_11_12_13, "fcmge h11, h12, h13", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmge_h_12_13_14, "fcmge h12, h13, h14", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmge_h_13_14_15, "fcmge h13, h14, h15", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmge_h_14_15_16, "fcmge h14, h15, h16", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmge_h_15_16_17, "fcmge h15, h16, h17", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmge_h_16_17_18, "fcmge h16, h17, h18", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmge_h_17_18_19, "fcmge h17, h18, h19", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmge_h_18_19_20, "fcmge h18, h19, h20", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmge_h_19_20_21, "fcmge h19, h20, h21", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmge_h_20_21_22, "fcmge h20, h21, h22", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmge_h_21_22_23, "fcmge h21, h22, h23", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmge_h_22_23_24, "fcmge h22, h23, h24", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmge_h_23_24_25, "fcmge h23, h24, h25", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmge_h_24_25_26, "fcmge h24, h25, h26", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmge_h_25_26_27, "fcmge h25, h26, h27", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmge_h_26_27_28, "fcmge h26, h27, h28", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmge_h_27_28_29, "fcmge h27, h28, h29", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmge_h_28_29_30, "fcmge h28, h29, h30", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmge_h_29_30_31, "fcmge h29, h30, h31", 29, 30, 31)
+
+// FCMGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
+
+GEN_THREEVEC_TEST(fcmge_8h_00_01_02, "fcmge v0.8h, v1.8h, v2.8h", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmge_8h_01_02_03, "fcmge v1.8h, v2.8h, v3.8h", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmge_8h_02_03_04, "fcmge v2.8h, v3.8h, v4.8h", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmge_8h_03_04_05, "fcmge v3.8h, v4.8h, v5.8h", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmge_8h_04_05_06, "fcmge v4.8h, v5.8h, v6.8h", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmge_8h_05_06_07, "fcmge v5.8h, v6.8h, v7.8h", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmge_8h_06_07_08, "fcmge v6.8h, v7.8h, v8.8h", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmge_8h_07_08_09, "fcmge v7.8h, v8.8h, v9.8h", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmge_8h_08_09_10, "fcmge v8.8h, v9.8h, v10.8h", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmge_8h_09_10_11, "fcmge v9.8h, v10.8h, v11.8h", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmge_8h_10_11_12, "fcmge v10.8h, v11.8h, v12.8h", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmge_8h_11_12_13, "fcmge v11.8h, v12.8h, v13.8h", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmge_8h_12_13_14, "fcmge v12.8h, v13.8h, v14.8h", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmge_8h_13_14_15, "fcmge v13.8h, v14.8h, v15.8h", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmge_8h_14_15_16, "fcmge v14.8h, v15.8h, v16.8h", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmge_8h_15_16_17, "fcmge v15.8h, v16.8h, v17.8h", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmge_8h_16_17_18, "fcmge v16.8h, v17.8h, v18.8h", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmge_8h_17_18_19, "fcmge v17.8h, v18.8h, v19.8h", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmge_8h_18_19_20, "fcmge v18.8h, v19.8h, v20.8h", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmge_8h_19_20_21, "fcmge v19.8h, v20.8h, v21.8h", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmge_8h_20_21_22, "fcmge v20.8h, v21.8h, v22.8h", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmge_8h_21_22_23, "fcmge v21.8h, v22.8h, v23.8h", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmge_8h_22_23_24, "fcmge v22.8h, v23.8h, v24.8h", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmge_8h_23_24_25, "fcmge v23.8h, v24.8h, v25.8h", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmge_8h_24_25_26, "fcmge v24.8h, v25.8h, v26.8h", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmge_8h_25_26_27, "fcmge v25.8h, v26.8h, v27.8h", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmge_8h_26_27_28, "fcmge v26.8h, v27.8h, v28.8h", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmge_8h_27_28_29, "fcmge v27.8h, v28.8h, v29.8h", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmge_8h_28_29_30, "fcmge v28.8h, v29.8h, v30.8h", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmge_8h_29_30_31, "fcmge v29.8h, v30.8h, v31.8h", 29, 30, 31)
+
+GEN_THREEVEC_TEST(fcmge_4h_00_01_02, "fcmge v0.4h, v1.4h, v2.4h", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmge_4h_01_02_03, "fcmge v1.4h, v2.4h, v3.4h", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmge_4h_02_03_04, "fcmge v2.4h, v3.4h, v4.4h", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmge_4h_03_04_05, "fcmge v3.4h, v4.4h, v5.4h", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmge_4h_04_05_06, "fcmge v4.4h, v5.4h, v6.4h", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmge_4h_05_06_07, "fcmge v5.4h, v6.4h, v7.4h", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmge_4h_06_07_08, "fcmge v6.4h, v7.4h, v8.4h", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmge_4h_07_08_09, "fcmge v7.4h, v8.4h, v9.4h", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmge_4h_08_09_10, "fcmge v8.4h, v9.4h, v10.4h", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmge_4h_09_10_11, "fcmge v9.4h, v10.4h, v11.4h", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmge_4h_10_11_12, "fcmge v10.4h, v11.4h, v12.4h", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmge_4h_11_12_13, "fcmge v11.4h, v12.4h, v13.4h", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmge_4h_12_13_14, "fcmge v12.4h, v13.4h, v14.4h", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmge_4h_13_14_15, "fcmge v13.4h, v14.4h, v15.4h", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmge_4h_14_15_16, "fcmge v14.4h, v15.4h, v16.4h", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmge_4h_15_16_17, "fcmge v15.4h, v16.4h, v17.4h", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmge_4h_16_17_18, "fcmge v16.4h, v17.4h, v18.4h", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmge_4h_17_18_19, "fcmge v17.4h, v18.4h, v19.4h", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmge_4h_18_19_20, "fcmge v18.4h, v19.4h, v20.4h", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmge_4h_19_20_21, "fcmge v19.4h, v20.4h, v21.4h", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmge_4h_20_21_22, "fcmge v20.4h, v21.4h, v22.4h", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmge_4h_21_22_23, "fcmge v21.4h, v22.4h, v23.4h", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmge_4h_22_23_24, "fcmge v22.4h, v23.4h, v24.4h", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmge_4h_23_24_25, "fcmge v23.4h, v24.4h, v25.4h", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmge_4h_24_25_26, "fcmge v24.4h, v25.4h, v26.4h", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmge_4h_25_26_27, "fcmge v25.4h, v26.4h, v27.4h", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmge_4h_26_27_28, "fcmge v26.4h, v27.4h, v28.4h", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmge_4h_27_28_29, "fcmge v27.4h, v28.4h, v29.4h", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmge_4h_28_29_30, "fcmge v28.4h, v29.4h, v30.4h", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmge_4h_29_30_31, "fcmge v29.4h, v30.4h, v31.4h", 29, 30, 31)
+
+// FCMGT <Hd>, <Hn>, <Hm>
+
+GEN_THREEVEC_TEST(fcmgt_h_00_01_02, "fcmgt h0, h1, h2", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmgt_h_01_02_03, "fcmgt h1, h2, h3", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmgt_h_02_03_04, "fcmgt h2, h3, h4", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmgt_h_03_04_05, "fcmgt h3, h4, h5", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmgt_h_04_05_06, "fcmgt h4, h5, h6", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmgt_h_05_06_07, "fcmgt h5, h6, h7", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmgt_h_06_07_08, "fcmgt h6, h7, h8", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmgt_h_07_08_09, "fcmgt h7, h8, h9", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmgt_h_08_09_10, "fcmgt h8, h9, h10", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmgt_h_09_10_11, "fcmgt h9, h10, h11", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmgt_h_10_11_12, "fcmgt h10, h11, h12", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmgt_h_11_12_13, "fcmgt h11, h12, h13", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmgt_h_12_13_14, "fcmgt h12, h13, h14", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmgt_h_13_14_15, "fcmgt h13, h14, h15", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmgt_h_14_15_16, "fcmgt h14, h15, h16", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmgt_h_15_16_17, "fcmgt h15, h16, h17", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmgt_h_16_17_18, "fcmgt h16, h17, h18", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmgt_h_17_18_19, "fcmgt h17, h18, h19", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmgt_h_18_19_20, "fcmgt h18, h19, h20", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmgt_h_19_20_21, "fcmgt h19, h20, h21", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmgt_h_20_21_22, "fcmgt h20, h21, h22", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmgt_h_21_22_23, "fcmgt h21, h22, h23", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmgt_h_22_23_24, "fcmgt h22, h23, h24", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmgt_h_23_24_25, "fcmgt h23, h24, h25", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmgt_h_24_25_26, "fcmgt h24, h25, h26", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmgt_h_25_26_27, "fcmgt h25, h26, h27", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmgt_h_26_27_28, "fcmgt h26, h27, h28", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmgt_h_27_28_29, "fcmgt h27, h28, h29", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmgt_h_28_29_30, "fcmgt h28, h29, h30", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmgt_h_29_30_31, "fcmgt h29, h30, h31", 29, 30, 31)
+
+// FCMGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
+
+GEN_THREEVEC_TEST(fcmgt_8h_00_01_02, "fcmgt v0.8h, v1.8h, v2.8h", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmgt_8h_01_02_03, "fcmgt v1.8h, v2.8h, v3.8h", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmgt_8h_02_03_04, "fcmgt v2.8h, v3.8h, v4.8h", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmgt_8h_03_04_05, "fcmgt v3.8h, v4.8h, v5.8h", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmgt_8h_04_05_06, "fcmgt v4.8h, v5.8h, v6.8h", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmgt_8h_05_06_07, "fcmgt v5.8h, v6.8h, v7.8h", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmgt_8h_06_07_08, "fcmgt v6.8h, v7.8h, v8.8h", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmgt_8h_07_08_09, "fcmgt v7.8h, v8.8h, v9.8h", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmgt_8h_08_09_10, "fcmgt v8.8h, v9.8h, v10.8h", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmgt_8h_09_10_11, "fcmgt v9.8h, v10.8h, v11.8h", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmgt_8h_10_11_12, "fcmgt v10.8h, v11.8h, v12.8h", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmgt_8h_11_12_13, "fcmgt v11.8h, v12.8h, v13.8h", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmgt_8h_12_13_14, "fcmgt v12.8h, v13.8h, v14.8h", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmgt_8h_13_14_15, "fcmgt v13.8h, v14.8h, v15.8h", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmgt_8h_14_15_16, "fcmgt v14.8h, v15.8h, v16.8h", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmgt_8h_15_16_17, "fcmgt v15.8h, v16.8h, v17.8h", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmgt_8h_16_17_18, "fcmgt v16.8h, v17.8h, v18.8h", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmgt_8h_17_18_19, "fcmgt v17.8h, v18.8h, v19.8h", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmgt_8h_18_19_20, "fcmgt v18.8h, v19.8h, v20.8h", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmgt_8h_19_20_21, "fcmgt v19.8h, v20.8h, v21.8h", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmgt_8h_20_21_22, "fcmgt v20.8h, v21.8h, v22.8h", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmgt_8h_21_22_23, "fcmgt v21.8h, v22.8h, v23.8h", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmgt_8h_22_23_24, "fcmgt v22.8h, v23.8h, v24.8h", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmgt_8h_23_24_25, "fcmgt v23.8h, v24.8h, v25.8h", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmgt_8h_24_25_26, "fcmgt v24.8h, v25.8h, v26.8h", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmgt_8h_25_26_27, "fcmgt v25.8h, v26.8h, v27.8h", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmgt_8h_26_27_28, "fcmgt v26.8h, v27.8h, v28.8h", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmgt_8h_27_28_29, "fcmgt v27.8h, v28.8h, v29.8h", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmgt_8h_28_29_30, "fcmgt v28.8h, v29.8h, v30.8h", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmgt_8h_29_30_31, "fcmgt v29.8h, v30.8h, v31.8h", 29, 30, 31)
+
+GEN_THREEVEC_TEST(fcmgt_4h_00_01_02, "fcmgt v0.4h, v1.4h, v2.4h", 0, 1, 2)
+GEN_THREEVEC_TEST(fcmgt_4h_01_02_03, "fcmgt v1.4h, v2.4h, v3.4h", 1, 2, 3)
+GEN_THREEVEC_TEST(fcmgt_4h_02_03_04, "fcmgt v2.4h, v3.4h, v4.4h", 2, 3, 4)
+GEN_THREEVEC_TEST(fcmgt_4h_03_04_05, "fcmgt v3.4h, v4.4h, v5.4h", 3, 4, 5)
+GEN_THREEVEC_TEST(fcmgt_4h_04_05_06, "fcmgt v4.4h, v5.4h, v6.4h", 4, 5, 6)
+GEN_THREEVEC_TEST(fcmgt_4h_05_06_07, "fcmgt v5.4h, v6.4h, v7.4h", 5, 6, 7)
+GEN_THREEVEC_TEST(fcmgt_4h_06_07_08, "fcmgt v6.4h, v7.4h, v8.4h", 6, 7, 8)
+GEN_THREEVEC_TEST(fcmgt_4h_07_08_09, "fcmgt v7.4h, v8.4h, v9.4h", 7, 8, 9)
+GEN_THREEVEC_TEST(fcmgt_4h_08_09_10, "fcmgt v8.4h, v9.4h, v10.4h", 8, 9, 10)
+GEN_THREEVEC_TEST(fcmgt_4h_09_10_11, "fcmgt v9.4h, v10.4h, v11.4h", 9, 10, 11)
+GEN_THREEVEC_TEST(fcmgt_4h_10_11_12, "fcmgt v10.4h, v11.4h, v12.4h", 10, 11, 12)
+GEN_THREEVEC_TEST(fcmgt_4h_11_12_13, "fcmgt v11.4h, v12.4h, v13.4h", 11, 12, 13)
+GEN_THREEVEC_TEST(fcmgt_4h_12_13_14, "fcmgt v12.4h, v13.4h, v14.4h", 12, 13, 14)
+GEN_THREEVEC_TEST(fcmgt_4h_13_14_15, "fcmgt v13.4h, v14.4h, v15.4h", 13, 14, 15)
+GEN_THREEVEC_TEST(fcmgt_4h_14_15_16, "fcmgt v14.4h, v15.4h, v16.4h", 14, 15, 16)
+GEN_THREEVEC_TEST(fcmgt_4h_15_16_17, "fcmgt v15.4h, v16.4h, v17.4h", 15, 16, 17)
+GEN_THREEVEC_TEST(fcmgt_4h_16_17_18, "fcmgt v16.4h, v17.4h, v18.4h", 16, 17, 18)
+GEN_THREEVEC_TEST(fcmgt_4h_17_18_19, "fcmgt v17.4h, v18.4h, v19.4h", 17, 18, 19)
+GEN_THREEVEC_TEST(fcmgt_4h_18_19_20, "fcmgt v18.4h, v19.4h, v20.4h", 18, 19, 20)
+GEN_THREEVEC_TEST(fcmgt_4h_19_20_21, "fcmgt v19.4h, v20.4h, v21.4h", 19, 20, 21)
+GEN_THREEVEC_TEST(fcmgt_4h_20_21_22, "fcmgt v20.4h, v21.4h, v22.4h", 20, 21, 22)
+GEN_THREEVEC_TEST(fcmgt_4h_21_22_23, "fcmgt v21.4h, v22.4h, v23.4h", 21, 22, 23)
+GEN_THREEVEC_TEST(fcmgt_4h_22_23_24, "fcmgt v22.4h, v23.4h, v24.4h", 22, 23, 24)
+GEN_THREEVEC_TEST(fcmgt_4h_23_24_25, "fcmgt v23.4h, v24.4h, v25.4h", 23, 24, 25)
+GEN_THREEVEC_TEST(fcmgt_4h_24_25_26, "fcmgt v24.4h, v25.4h, v26.4h", 24, 25, 26)
+GEN_THREEVEC_TEST(fcmgt_4h_25_26_27, "fcmgt v25.4h, v26.4h, v27.4h", 25, 26, 27)
+GEN_THREEVEC_TEST(fcmgt_4h_26_27_28, "fcmgt v26.4h, v27.4h, v28.4h", 26, 27, 28)
+GEN_THREEVEC_TEST(fcmgt_4h_27_28_29, "fcmgt v27.4h, v28.4h, v29.4h", 27, 28, 29)
+GEN_THREEVEC_TEST(fcmgt_4h_28_29_30, "fcmgt v28.4h, v29.4h, v30.4h", 28, 29, 30)
+GEN_THREEVEC_TEST(fcmgt_4h_29_30_31, "fcmgt v29.4h, v30.4h, v31.4h", 29, 30, 31)
+
 /* ---------------------------------------------------------------- */
 /* -- main()                                                     -- */
 /* ---------------------------------------------------------------- */
@@ -3710,6 +4069,365 @@ int main ( void )
    if (1) test_facge_4h_28_29_30(TyH);
    if (1) test_facge_4h_29_30_31(TyH);
 
+   printf("\nFCCMP <Hn>, <Hm>, #<nzcv>, <cond>\n\n");
+
+   if (1) test_fccmp_h_00_01(TyH);
+   if (1) test_fccmp_h_01_02(TyH);
+   if (1) test_fccmp_h_02_03(TyH);
+   if (1) test_fccmp_h_03_04(TyH);
+   if (1) test_fccmp_h_04_05(TyH);
+   if (1) test_fccmp_h_05_06(TyH);
+   if (1) test_fccmp_h_06_07(TyH);
+   if (1) test_fccmp_h_07_08(TyH);
+   if (1) test_fccmp_h_08_09(TyH);
+   if (1) test_fccmp_h_09_10(TyH);
+   if (1) test_fccmp_h_10_11(TyH);
+   if (1) test_fccmp_h_11_12(TyH);
+   if (1) test_fccmp_h_12_13(TyH);
+   if (1) test_fccmp_h_13_14(TyH);
+   if (1) test_fccmp_h_14_15(TyH);
+   if (1) test_fccmp_h_15_16(TyH);
+   if (1) test_fccmp_h_16_17(TyH);
+   if (1) test_fccmp_h_17_18(TyH);
+   if (1) test_fccmp_h_18_19(TyH);
+   if (1) test_fccmp_h_19_20(TyH);
+   if (1) test_fccmp_h_20_21(TyH);
+   if (1) test_fccmp_h_21_22(TyH);
+   if (1) test_fccmp_h_22_23(TyH);
+   if (1) test_fccmp_h_23_24(TyH);
+   if (1) test_fccmp_h_24_25(TyH);
+   if (1) test_fccmp_h_25_26(TyH);
+   if (1) test_fccmp_h_26_27(TyH);
+   if (1) test_fccmp_h_27_28(TyH);
+   if (1) test_fccmp_h_28_29(TyH);
+   if (1) test_fccmp_h_29_30(TyH);
+   if (1) test_fccmp_h_30_31(TyH);
+
+   printf("\nFCCMPE <Hn>, <Hm>, #<nzcv>, <cond>\n\n");
+
+   if (1) test_fccmpe_h_00_01(TyH);
+   if (1) test_fccmpe_h_01_02(TyH);
+   if (1) test_fccmpe_h_02_03(TyH);
+   if (1) test_fccmpe_h_03_04(TyH);
+   if (1) test_fccmpe_h_04_05(TyH);
+   if (1) test_fccmpe_h_05_06(TyH);
+   if (1) test_fccmpe_h_06_07(TyH);
+   if (1) test_fccmpe_h_07_08(TyH);
+   if (1) test_fccmpe_h_08_09(TyH);
+   if (1) test_fccmpe_h_09_10(TyH);
+   if (1) test_fccmpe_h_10_11(TyH);
+   if (1) test_fccmpe_h_11_12(TyH);
+   if (1) test_fccmpe_h_12_13(TyH);
+   if (1) test_fccmpe_h_13_14(TyH);
+   if (1) test_fccmpe_h_14_15(TyH);
+   if (1) test_fccmpe_h_15_16(TyH);
+   if (1) test_fccmpe_h_16_17(TyH);
+   if (1) test_fccmpe_h_17_18(TyH);
+   if (1) test_fccmpe_h_18_19(TyH);
+   if (1) test_fccmpe_h_19_20(TyH);
+   if (1) test_fccmpe_h_20_21(TyH);
+   if (1) test_fccmpe_h_21_22(TyH);
+   if (1) test_fccmpe_h_22_23(TyH);
+   if (1) test_fccmpe_h_23_24(TyH);
+   if (1) test_fccmpe_h_24_25(TyH);
+   if (1) test_fccmpe_h_25_26(TyH);
+   if (1) test_fccmpe_h_26_27(TyH);
+   if (1) test_fccmpe_h_27_28(TyH);
+   if (1) test_fccmpe_h_28_29(TyH);
+   if (1) test_fccmpe_h_29_30(TyH);
+   if (1) test_fccmpe_h_30_31(TyH);
+
+   printf("\nFCMEQ <Hd>, <Hn>, <Hm>\n\n");
+
+   if (1) test_fcmeq_h_00_01_02(TyH);
+   if (1) test_fcmeq_h_01_02_03(TyH);
+   if (1) test_fcmeq_h_02_03_04(TyH);
+   if (1) test_fcmeq_h_03_04_05(TyH);
+   if (1) test_fcmeq_h_04_05_06(TyH);
+   if (1) test_fcmeq_h_05_06_07(TyH);
+   if (1) test_fcmeq_h_06_07_08(TyH);
+   if (1) test_fcmeq_h_07_08_09(TyH);
+   if (1) test_fcmeq_h_08_09_10(TyH);
+   if (1) test_fcmeq_h_09_10_11(TyH);
+   if (1) test_fcmeq_h_10_11_12(TyH);
+   if (1) test_fcmeq_h_11_12_13(TyH);
+   if (1) test_fcmeq_h_12_13_14(TyH);
+   if (1) test_fcmeq_h_13_14_15(TyH);
+   if (1) test_fcmeq_h_14_15_16(TyH);
+   if (1) test_fcmeq_h_15_16_17(TyH);
+   if (1) test_fcmeq_h_16_17_18(TyH);
+   if (1) test_fcmeq_h_17_18_19(TyH);
+   if (1) test_fcmeq_h_18_19_20(TyH);
+   if (1) test_fcmeq_h_19_20_21(TyH);
+   if (1) test_fcmeq_h_20_21_22(TyH);
+   if (1) test_fcmeq_h_21_22_23(TyH);
+   if (1) test_fcmeq_h_22_23_24(TyH);
+   if (1) test_fcmeq_h_23_24_25(TyH);
+   if (1) test_fcmeq_h_24_25_26(TyH);
+   if (1) test_fcmeq_h_25_26_27(TyH);
+   if (1) test_fcmeq_h_26_27_28(TyH);
+   if (1) test_fcmeq_h_27_28_29(TyH);
+   if (1) test_fcmeq_h_28_29_30(TyH);
+   if (1) test_fcmeq_h_29_30_31(TyH);
+
+   printf("\nFCMEQ <Vd>.<T>, <Vn>.<T>, <Vm>.<T>\n\n");
+
+   if (1) test_fcmeq_8h_00_01_02(TyH);
+   if (1) test_fcmeq_8h_01_02_03(TyH);
+   if (1) test_fcmeq_8h_02_03_04(TyH);
+   if (1) test_fcmeq_8h_03_04_05(TyH);
+   if (1) test_fcmeq_8h_04_05_06(TyH);
+   if (1) test_fcmeq_8h_05_06_07(TyH);
+   if (1) test_fcmeq_8h_06_07_08(TyH);
+   if (1) test_fcmeq_8h_07_08_09(TyH);
+   if (1) test_fcmeq_8h_08_09_10(TyH);
+   if (1) test_fcmeq_8h_09_10_11(TyH);
+   if (1) test_fcmeq_8h_10_11_12(TyH);
+   if (1) test_fcmeq_8h_11_12_13(TyH);
+   if (1) test_fcmeq_8h_12_13_14(TyH);
+   if (1) test_fcmeq_8h_13_14_15(TyH);
+   if (1) test_fcmeq_8h_14_15_16(TyH);
+   if (1) test_fcmeq_8h_15_16_17(TyH);
+   if (1) test_fcmeq_8h_16_17_18(TyH);
+   if (1) test_fcmeq_8h_17_18_19(TyH);
+   if (1) test_fcmeq_8h_18_19_20(TyH);
+   if (1) test_fcmeq_8h_19_20_21(TyH);
+   if (1) test_fcmeq_8h_20_21_22(TyH);
+   if (1) test_fcmeq_8h_21_22_23(TyH);
+   if (1) test_fcmeq_8h_22_23_24(TyH);
+   if (1) test_fcmeq_8h_23_24_25(TyH);
+   if (1) test_fcmeq_8h_24_25_26(TyH);
+   if (1) test_fcmeq_8h_25_26_27(TyH);
+   if (1) test_fcmeq_8h_26_27_28(TyH);
+   if (1) test_fcmeq_8h_27_28_29(TyH);
+   if (1) test_fcmeq_8h_28_29_30(TyH);
+   if (1) test_fcmeq_8h_29_30_31(TyH);
+
+   if (1) test_fcmeq_4h_00_01_02(TyH);
+   if (1) test_fcmeq_4h_01_02_03(TyH);
+   if (1) test_fcmeq_4h_02_03_04(TyH);
+   if (1) test_fcmeq_4h_03_04_05(TyH);
+   if (1) test_fcmeq_4h_04_05_06(TyH);
+   if (1) test_fcmeq_4h_05_06_07(TyH);
+   if (1) test_fcmeq_4h_06_07_08(TyH);
+   if (1) test_fcmeq_4h_07_08_09(TyH);
+   if (1) test_fcmeq_4h_08_09_10(TyH);
+   if (1) test_fcmeq_4h_09_10_11(TyH);
+   if (1) test_fcmeq_4h_10_11_12(TyH);
+   if (1) test_fcmeq_4h_11_12_13(TyH);
+   if (1) test_fcmeq_4h_12_13_14(TyH);
+   if (1) test_fcmeq_4h_13_14_15(TyH);
+   if (1) test_fcmeq_4h_14_15_16(TyH);
+   if (1) test_fcmeq_4h_15_16_17(TyH);
+   if (1) test_fcmeq_4h_16_17_18(TyH);
+   if (1) test_fcmeq_4h_17_18_19(TyH);
+   if (1) test_fcmeq_4h_18_19_20(TyH);
+   if (1) test_fcmeq_4h_19_20_21(TyH);
+   if (1) test_fcmeq_4h_20_21_22(TyH);
+   if (1) test_fcmeq_4h_21_22_23(TyH);
+   if (1) test_fcmeq_4h_22_23_24(TyH);
+   if (1) test_fcmeq_4h_23_24_25(TyH);
+   if (1) test_fcmeq_4h_24_25_26(TyH);
+   if (1) test_fcmeq_4h_25_26_27(TyH);
+   if (1) test_fcmeq_4h_26_27_28(TyH);
+   if (1) test_fcmeq_4h_27_28_29(TyH);
+   if (1) test_fcmeq_4h_28_29_30(TyH);
+   if (1) test_fcmeq_4h_29_30_31(TyH);
+
+   printf("\nFCMGE <Hd>, <Hn>, <Hm>\n\n");
+
+   if (1) test_fcmge_h_00_01_02(TyH);
+   if (1) test_fcmge_h_01_02_03(TyH);
+   if (1) test_fcmge_h_02_03_04(TyH);
+   if (1) test_fcmge_h_03_04_05(TyH);
+   if (1) test_fcmge_h_04_05_06(TyH);
+   if (1) test_fcmge_h_05_06_07(TyH);
+   if (1) test_fcmge_h_06_07_08(TyH);
+   if (1) test_fcmge_h_07_08_09(TyH);
+   if (1) test_fcmge_h_08_09_10(TyH);
+   if (1) test_fcmge_h_09_10_11(TyH);
+   if (1) test_fcmge_h_10_11_12(TyH);
+   if (1) test_fcmge_h_11_12_13(TyH);
+   if (1) test_fcmge_h_12_13_14(TyH);
+   if (1) test_fcmge_h_13_14_15(TyH);
+   if (1) test_fcmge_h_14_15_16(TyH);
+   if (1) test_fcmge_h_15_16_17(TyH);
+   if (1) test_fcmge_h_16_17_18(TyH);
+   if (1) test_fcmge_h_17_18_19(TyH);
+   if (1) test_fcmge_h_18_19_20(TyH);
+   if (1) test_fcmge_h_19_20_21(TyH);
+   if (1) test_fcmge_h_20_21_22(TyH);
+   if (1) test_fcmge_h_21_22_23(TyH);
+   if (1) test_fcmge_h_22_23_24(TyH);
+   if (1) test_fcmge_h_23_24_25(TyH);
+   if (1) test_fcmge_h_24_25_26(TyH);
+   if (1) test_fcmge_h_25_26_27(TyH);
+   if (1) test_fcmge_h_26_27_28(TyH);
+   if (1) test_fcmge_h_27_28_29(TyH);
+   if (1) test_fcmge_h_28_29_30(TyH);
+   if (1) test_fcmge_h_29_30_31(TyH);
+
+   printf("\nFCMGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T>\n\n");
+
+   if (1) test_fcmge_8h_00_01_02(TyH);
+   if (1) test_fcmge_8h_01_02_03(TyH);
+   if (1) test_fcmge_8h_02_03_04(TyH);
+   if (1) test_fcmge_8h_03_04_05(TyH);
+   if (1) test_fcmge_8h_04_05_06(TyH);
+   if (1) test_fcmge_8h_05_06_07(TyH);
+   if (1) test_fcmge_8h_06_07_08(TyH);
+   if (1) test_fcmge_8h_07_08_09(TyH);
+   if (1) test_fcmge_8h_08_09_10(TyH);
+   if (1) test_fcmge_8h_09_10_11(TyH);
+   if (1) test_fcmge_8h_10_11_12(TyH);
+   if (1) test_fcmge_8h_11_12_13(TyH);
+   if (1) test_fcmge_8h_12_13_14(TyH);
+   if (1) test_fcmge_8h_13_14_15(TyH);
+   if (1) test_fcmge_8h_14_15_16(TyH);
+   if (1) test_fcmge_8h_15_16_17(TyH);
+   if (1) test_fcmge_8h_16_17_18(TyH);
+   if (1) test_fcmge_8h_17_18_19(TyH);
+   if (1) test_fcmge_8h_18_19_20(TyH);
+   if (1) test_fcmge_8h_19_20_21(TyH);
+   if (1) test_fcmge_8h_20_21_22(TyH);
+   if (1) test_fcmge_8h_21_22_23(TyH);
+   if (1) test_fcmge_8h_22_23_24(TyH);
+   if (1) test_fcmge_8h_23_24_25(TyH);
+   if (1) test_fcmge_8h_24_25_26(TyH);
+   if (1) test_fcmge_8h_25_26_27(TyH);
+   if (1) test_fcmge_8h_26_27_28(TyH);
+   if (1) test_fcmge_8h_27_28_29(TyH);
+   if (1) test_fcmge_8h_28_29_30(TyH);
+   if (1) test_fcmge_8h_29_30_31(TyH);
+
+   if (1) test_fcmge_4h_00_01_02(TyH);
+   if (1) test_fcmge_4h_01_02_03(TyH);
+   if (1) test_fcmge_4h_02_03_04(TyH);
+   if (1) test_fcmge_4h_03_04_05(TyH);
+   if (1) test_fcmge_4h_04_05_06(TyH);
+   if (1) test_fcmge_4h_05_06_07(TyH);
+   if (1) test_fcmge_4h_06_07_08(TyH);
+   if (1) test_fcmge_4h_07_08_09(TyH);
+   if (1) test_fcmge_4h_08_09_10(TyH);
+   if (1) test_fcmge_4h_09_10_11(TyH);
+   if (1) test_fcmge_4h_10_11_12(TyH);
+   if (1) test_fcmge_4h_11_12_13(TyH);
+   if (1) test_fcmge_4h_12_13_14(TyH);
+   if (1) test_fcmge_4h_13_14_15(TyH);
+   if (1) test_fcmge_4h_14_15_16(TyH);
+   if (1) test_fcmge_4h_15_16_17(TyH);
+   if (1) test_fcmge_4h_16_17_18(TyH);
+   if (1) test_fcmge_4h_17_18_19(TyH);
+   if (1) test_fcmge_4h_18_19_20(TyH);
+   if (1) test_fcmge_4h_19_20_21(TyH);
+   if (1) test_fcmge_4h_20_21_22(TyH);
+   if (1) test_fcmge_4h_21_22_23(TyH);
+   if (1) test_fcmge_4h_22_23_24(TyH);
+   if (1) test_fcmge_4h_23_24_25(TyH);
+   if (1) test_fcmge_4h_24_25_26(TyH);
+   if (1) test_fcmge_4h_25_26_27(TyH);
+   if (1) test_fcmge_4h_26_27_28(TyH);
+   if (1) test_fcmge_4h_27_28_29(TyH);
+   if (1) test_fcmge_4h_28_29_30(TyH);
+   if (1) test_fcmge_4h_29_30_31(TyH);
+
+   printf("\nFCMGT <Hd>, <Hn>, <Hm>\n\n");
+
+   if (1) test_fcmgt_h_00_01_02(TyH);
+   if (1) test_fcmgt_h_01_02_03(TyH);
+   if (1) test_fcmgt_h_02_03_04(TyH);
+   if (1) test_fcmgt_h_03_04_05(TyH);
+   if (1) test_fcmgt_h_04_05_06(TyH);
+   if (1) test_fcmgt_h_05_06_07(TyH);
+   if (1) test_fcmgt_h_06_07_08(TyH);
+   if (1) test_fcmgt_h_07_08_09(TyH);
+   if (1) test_fcmgt_h_08_09_10(TyH);
+   if (1) test_fcmgt_h_09_10_11(TyH);
+   if (1) test_fcmgt_h_10_11_12(TyH);
+   if (1) test_fcmgt_h_11_12_13(TyH);
+   if (1) test_fcmgt_h_12_13_14(TyH);
+   if (1) test_fcmgt_h_13_14_15(TyH);
+   if (1) test_fcmgt_h_14_15_16(TyH);
+   if (1) test_fcmgt_h_15_16_17(TyH);
+   if (1) test_fcmgt_h_16_17_18(TyH);
+   if (1) test_fcmgt_h_17_18_19(TyH);
+   if (1) test_fcmgt_h_18_19_20(TyH);
+   if (1) test_fcmgt_h_19_20_21(TyH);
+   if (1) test_fcmgt_h_20_21_22(TyH);
+   if (1) test_fcmgt_h_21_22_23(TyH);
+   if (1) test_fcmgt_h_22_23_24(TyH);
+   if (1) test_fcmgt_h_23_24_25(TyH);
+   if (1) test_fcmgt_h_24_25_26(TyH);
+   if (1) test_fcmgt_h_25_26_27(TyH);
+   if (1) test_fcmgt_h_26_27_28(TyH);
+   if (1) test_fcmgt_h_27_28_29(TyH);
+   if (1) test_fcmgt_h_28_29_30(TyH);
+   if (1) test_fcmgt_h_29_30_31(TyH);
+
+   printf("\nFCMGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>\n\n");
+
+   if (1) test_fcmgt_8h_00_01_02(TyH);
+   if (1) test_fcmgt_8h_01_02_03(TyH);
+   if (1) test_fcmgt_8h_02_03_04(TyH);
+   if (1) test_fcmgt_8h_03_04_05(TyH);
+   if (1) test_fcmgt_8h_04_05_06(TyH);
+   if (1) test_fcmgt_8h_05_06_07(TyH);
+   if (1) test_fcmgt_8h_06_07_08(TyH);
+   if (1) test_fcmgt_8h_07_08_09(TyH);
+   if (1) test_fcmgt_8h_08_09_10(TyH);
+   if (1) test_fcmgt_8h_09_10_11(TyH);
+   if (1) test_fcmgt_8h_10_11_12(TyH);
+   if (1) test_fcmgt_8h_11_12_13(TyH);
+   if (1) test_fcmgt_8h_12_13_14(TyH);
+   if (1) test_fcmgt_8h_13_14_15(TyH);
+   if (1) test_fcmgt_8h_14_15_16(TyH);
+   if (1) test_fcmgt_8h_15_16_17(TyH);
+   if (1) test_fcmgt_8h_16_17_18(TyH);
+   if (1) test_fcmgt_8h_17_18_19(TyH);
+   if (1) test_fcmgt_8h_18_19_20(TyH);
+   if (1) test_fcmgt_8h_19_20_21(TyH);
+   if (1) test_fcmgt_8h_20_21_22(TyH);
+   if (1) test_fcmgt_8h_21_22_23(TyH);
+   if (1) test_fcmgt_8h_22_23_24(TyH);
+   if (1) test_fcmgt_8h_23_24_25(TyH);
+   if (1) test_fcmgt_8h_24_25_26(TyH);
+   if (1) test_fcmgt_8h_25_26_27(TyH);
+   if (1) test_fcmgt_8h_26_27_28(TyH);
+   if (1) test_fcmgt_8h_27_28_29(TyH);
+   if (1) test_fcmgt_8h_28_29_30(TyH);
+   if (1) test_fcmgt_8h_29_30_31(TyH);
+
+   if (1) test_fcmgt_4h_00_01_02(TyH);
+   if (1) test_fcmgt_4h_01_02_03(TyH);
+   if (1) test_fcmgt_4h_02_03_04(TyH);
+   if (1) test_fcmgt_4h_03_04_05(TyH);
+   if (1) test_fcmgt_4h_04_05_06(TyH);
+   if (1) test_fcmgt_4h_05_06_07(TyH);
+   if (1) test_fcmgt_4h_06_07_08(TyH);
+   if (1) test_fcmgt_4h_07_08_09(TyH);
+   if (1) test_fcmgt_4h_08_09_10(TyH);
+   if (1) test_fcmgt_4h_09_10_11(TyH);
+   if (1) test_fcmgt_4h_10_11_12(TyH);
+   if (1) test_fcmgt_4h_11_12_13(TyH);
+   if (1) test_fcmgt_4h_12_13_14(TyH);
+   if (1) test_fcmgt_4h_13_14_15(TyH);
+   if (1) test_fcmgt_4h_14_15_16(TyH);
+   if (1) test_fcmgt_4h_15_16_17(TyH);
+   if (1) test_fcmgt_4h_16_17_18(TyH);
+   if (1) test_fcmgt_4h_17_18_19(TyH);
+   if (1) test_fcmgt_4h_18_19_20(TyH);
+   if (1) test_fcmgt_4h_19_20_21(TyH);
+   if (1) test_fcmgt_4h_20_21_22(TyH);
+   if (1) test_fcmgt_4h_21_22_23(TyH);
+   if (1) test_fcmgt_4h_22_23_24(TyH);
+   if (1) test_fcmgt_4h_23_24_25(TyH);
+   if (1) test_fcmgt_4h_24_25_26(TyH);
+   if (1) test_fcmgt_4h_25_26_27(TyH);
+   if (1) test_fcmgt_4h_26_27_28(TyH);
+   if (1) test_fcmgt_4h_27_28_29(TyH);
+   if (1) test_fcmgt_4h_28_29_30(TyH);
+   if (1) test_fcmgt_4h_29_30_31(TyH);
+
    return 0;
 }
 
@@ -3734,4 +4452,12 @@ int main ( void )
    FACGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T> Floating-point Absolute Compare Greater than (vector).
    FACGE <Hd>, <Hn>, <Hm> Floating-point Absolute Compare Greater than or Equal (scalar).
    FACGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T> Floating-point Absolute Compare Greater than or Equal (vector).
+   FCCMP <Hn>, <Hm>, #<nzcv>, <cond> Floating-point Conditional quiet Compare (scalar). 
+   FCCMPE <Hn>, <Hm>, #<nzcv>, <cond> Floating-point Conditional signaling Compare (scalar).
+   FCMEQ <Hd>, <Hn>, <Hm> Floating-point Compare Equal (scalar).
+   FCMEQ <Vd>.<T>, <Vn>.<T>, <Vm>.<T> Floating-point Compare Equal (vector).
+   FCMGE <Hd>, <Hn>, <Hm> Floating-point Compare Greater than or Equal (scalar).
+   FCMGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T> Floating-point Compare Greater than or Equal (vector).
+   FCMGT <Hd>, <Hn>, <Hm> Floating-point Compare Greater than (scalar).
+   FCMGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T> Floating-point Compare Greater than (vector).
 */
index fb39020372ed1705c66c3ccacffad9138e28edda..eae83ec30d7360487798e502949f4f21f95c0d68 100644 (file)
@@ -790,3 +790,366 @@ facge v26.4h, v27.4h, v28.4h   bfabaa4726ce2638294f0def146db2dd  f7c620c2691f996
 facge v27.4h, v28.4h, v29.4h   7578b920499a626b38c5f2de39aeadcb  89a3b8e6d8b8b1cfd058b6d175aa2469  7b286f69342b8c4f2ee36901e435f62f  0000000000000000ffff0000ffff0000  89a3b8e6d8b8b1cfd058b6d175aa2469  7b286f69342b8c4f2ee36901e435f62f fpsr=00000000
 facge v28.4h, v29.4h, v30.4h   0a6476516b694127207ea551064f2ef4  d90e0a3fd6e1e5542363d2c4d3bcaca8  9ef87162a7cbfb6bfa6e48faf7b68c94  00000000000000000000ffff0000ffff  d90e0a3fd6e1e5542363d2c4d3bcaca8  9ef87162a7cbfb6bfa6e48faf7b68c94 fpsr=00000000
 facge v29.4h, v30.4h, v31.4h   bbf986edcf44303e02fa708326ec1c2b  8f2a073101f4bd53f13c45c5290f86a9  865378255a3a2d2817b90a90b5eb2b4c  0000000000000000ffffffff00000000  8f2a073101f4bd53f13c45c5290f86a9  865378255a3a2d2817b90a90b5eb2b4c fpsr=00000000
+
+FCCMP <Hn>, <Hm>, #<nzcv>, <cond>
+
+fccmp h0, h1, #0, EQ   f4cb6e82d60bbc743f678bdf17751b1e  6d0d36015e65f850b681948f2d2523ff  f4cb6e82d60bbc743f678bdf17751b1e  6d0d36015e65f850b681948f2d2523ff fpsr=00000000
+fccmp h1, h2, #1, NE   f2a6b9fca5c912d65aed259eef215519  c2e0914983cd4a4f223b50d1c6e85cfc  f2a6b9fca5c912d65aed259eef215519  c2e0914983cd4a4f223b50d1c6e85cfc fpsr=00000000
+fccmp h2, h3, #2, HS   1e07cdc6b78e925deefe24ee815b2b10  30fd309bf0e77ba12cc7a70a624855c3  1e07cdc6b78e925deefe24ee815b2b10  30fd309bf0e77ba12cc7a70a624855c3 fpsr=00000000
+fccmp h3, h4, #3, LO   0975b5809188adbdd0ed067f6a9bac31  739deabf51c9d6e1573d5428e3ee2171  0975b5809188adbdd0ed067f6a9bac31  739deabf51c9d6e1573d5428e3ee2171 fpsr=00000000
+fccmp h4, h5, #4, MI   ed8e4c298655755214d73b25e8857bea  14580e982e6e9d0e6ce58d3e2a9ad69b  ed8e4c298655755214d73b25e8857bea  14580e982e6e9d0e6ce58d3e2a9ad69b fpsr=00000000
+fccmp h5, h6, #5, PL   a654339fbc3e0cca75b96b8312ad507e  507151d8289ebc5ec9d8aa9a01f5b5ec  a654339fbc3e0cca75b96b8312ad507e  507151d8289ebc5ec9d8aa9a01f5b5ec fpsr=00000000
+fccmp h6, h7, #6, VS   6456f15d3ca32a6c6209e890155a670f  1d7a00ca9c1db60b84637566422cb0ee  6456f15d3ca32a6c6209e890155a670f  1d7a00ca9c1db60b84637566422cb0ee fpsr=00000000
+fccmp h7, h8, #7, VC   8ab3a624ab136916925b4ff99fe4ed48  c15ba9a7754c9c89813d3dbf12b5f7b1  8ab3a624ab136916925b4ff99fe4ed48  c15ba9a7754c9c89813d3dbf12b5f7b1 fpsr=00000000
+fccmp h8, h9, #8, HI   4710625accb7a4f855ea02bc317d348b  05a0251b1d8a8477c4f1c1759556ec66  4710625accb7a4f855ea02bc317d348b  05a0251b1d8a8477c4f1c1759556ec66 fpsr=00000000
+fccmp h9, h10, #9, LS   30018da3f0ee49f45234f694665043be  a2b01dca8964129f946f3f1dbc1b4d0a  30018da3f0ee49f45234f694665043be  a2b01dca8964129f946f3f1dbc1b4d0a fpsr=00000000
+fccmp h10, h11, #10, GE   24dcc3a0ccd7ce5f0c67bb7a6503de18  3a4a816a2b5dd21c2cdd849d2a8c631c  24dcc3a0ccd7ce5f0c67bb7a6503de18  3a4a816a2b5dd21c2cdd849d2a8c631c fpsr=00000000
+fccmp h11, h12, #11, LT   bf93a67192a6f218d2eaf28a71cf9cd4  325689b7ef54a8408832321ddd2e15e8  bf93a67192a6f218d2eaf28a71cf9cd4  325689b7ef54a8408832321ddd2e15e8 fpsr=00000000
+fccmp h12, h13, #12, GT   e285157623b99480841b7a216c155c53  6a361711b4a8756b88ce28feb66141ce  e285157623b99480841b7a216c155c53  6a361711b4a8756b88ce28feb66141ce fpsr=00000000
+fccmp h13, h14, #13, LE   c24a0ad75cba19fb0c12489f9585c82f  409c1a9e2031d6db2c0dfb6aab8d6618  c24a0ad75cba19fb0c12489f9585c82f  409c1a9e2031d6db2c0dfb6aab8d6618 fpsr=00000000
+fccmp h14, h15, #14, AL   3b8170814e55358ee18db6daaf7f6f1d  528b9d28d09566d01f1082a2e52367df  3b8170814e55358ee18db6daaf7f6f1d  528b9d28d09566d01f1082a2e52367df fpsr=00000000
+fccmp h15, h16, #15, NV   3e20d317c63e936f033c4153216afb66  28d500f5031b785fa2c34ba12a5ca811  3e20d317c63e936f033c4153216afb66  28d500f5031b785fa2c34ba12a5ca811 fpsr=00000000
+fccmp h16, h17, #0, EQ   45da310c925be8738cb7dccd3d708343  3a6e15ba14b52b305059dbd5a36b5120  45da310c925be8738cb7dccd3d708343  3a6e15ba14b52b305059dbd5a36b5120 fpsr=00000000
+fccmp h17, h18, #1, NE   177260ff071980443f52160cb556c79e  27f1349a256b97a393bc1e91d26ceab7  177260ff071980443f52160cb556c79e  27f1349a256b97a393bc1e91d26ceab7 fpsr=00000000
+fccmp h18, h19, #2, HS   615a23bc107ef9ad9c8ed54f6cc001d3  53a744003a4cef75bdd03dd53ba58a08  615a23bc107ef9ad9c8ed54f6cc001d3  53a744003a4cef75bdd03dd53ba58a08 fpsr=00000000
+randV128: 3840 calls, 5080 iters
+fccmp h19, h20, #3, LO   9d6dee6fe6dc798830978a494b091c83  c6182bce1e9848af0b4525d60a1a795f  9d6dee6fe6dc798830978a494b091c83  c6182bce1e9848af0b4525d60a1a795f fpsr=00000000
+fccmp h20, h21, #4, MI   81ab34c95d11f0f60b4a669ffbc96e49  6e79ba2ce64a5bff3a5ef94a26d7c2fd  81ab34c95d11f0f60b4a669ffbc96e49  6e79ba2ce64a5bff3a5ef94a26d7c2fd fpsr=00000000
+fccmp h21, h22, #5, PL   188ff1fa57040f6286983ceed567477b  195ca4a288bfc376e7c0b84953484d81  188ff1fa57040f6286983ceed567477b  195ca4a288bfc376e7c0b84953484d81 fpsr=00000000
+fccmp h22, h23, #6, VS   73b57918d8b3f983916d464b3838e3ea  a56ead1c295c35e4586fc755308670ab  73b57918d8b3f983916d464b3838e3ea  a56ead1c295c35e4586fc755308670ab fpsr=00000000
+fccmp h23, h24, #7, VC   dc84883c0d86707495814c3c67cf4a37  6d9eec876c9e92762954695e2108388b  dc84883c0d86707495814c3c67cf4a37  6d9eec876c9e92762954695e2108388b fpsr=00000000
+fccmp h24, h25, #8, HI   6f0425c45026f23bd0d5b64d0b6012fd  9eb884539df542c7163e876270925093  6f0425c45026f23bd0d5b64d0b6012fd  9eb884539df542c7163e876270925093 fpsr=00000000
+fccmp h25, h26, #9, LS   1753a87c696f8f6089b44f59521a87bf  bd7bf8a483f5ab0ce6254ff2afd37a3a  1753a87c696f8f6089b44f59521a87bf  bd7bf8a483f5ab0ce6254ff2afd37a3a fpsr=00000000
+fccmp h26, h27, #10, GE   81f82c99cb76774a271c39a9da18c5ab  48763cb33bf1b0c6052dc98352e260a0  81f82c99cb76774a271c39a9da18c5ab  48763cb33bf1b0c6052dc98352e260a0 fpsr=00000000
+fccmp h27, h28, #11, LT   5f5b41acf0423190b0cb59fa76a90500  09ce79ea3bcc79534e255948e6b840c6  5f5b41acf0423190b0cb59fa76a90500  09ce79ea3bcc79534e255948e6b840c6 fpsr=00000000
+fccmp h28, h29, #12, GT   18d6853c451c6c245f2905482d28bd26  69d29d5838e180949d48f628aedfc5fe  18d6853c451c6c245f2905482d28bd26  69d29d5838e180949d48f628aedfc5fe fpsr=00000000
+fccmp h29, h30, #13, LE   31702f5bdf9be7e3b87ac3f143df2d58  22587602185593def8f6727b414f8d60  31702f5bdf9be7e3b87ac3f143df2d58  22587602185593def8f6727b414f8d60 fpsr=00000000
+fccmp h30, h31, #14, AL   ead4efb7623b0cd729b4cd7430494d01  e3dd8fd8727c06a7638fdc1356afe6d7  ead4efb7623b0cd729b4cd7430494d01  e3dd8fd8727c06a7638fdc1356afe6d7 fpsr=00000000
+
+FCCMPE <Hn>, <Hm>, #<nzcv>, <cond>
+
+fccmpe h0, h1, #0, EQ   49db847186b6944e557008c61c0da136  9ba6e699cfcc1c55a20aabe2a5748967  49db847186b6944e557008c61c0da136  9ba6e699cfcc1c55a20aabe2a5748967 fpsr=00000000
+fccmpe h1, h2, #1, NE   21ce178f63270aa45e8c05d0e6fa675c  84f233971e299939747d3241097b1741  21ce178f63270aa45e8c05d0e6fa675c  84f233971e299939747d3241097b1741 fpsr=00000000
+fccmpe h2, h3, #2, HS   500b8671dbee4f372267a2f36e7080d5  cfc5063ab60f1667d07a439cdfbd223e  500b8671dbee4f372267a2f36e7080d5  cfc5063ab60f1667d07a439cdfbd223e fpsr=00000000
+fccmpe h3, h4, #3, LO   65952bc9128c482455c8ec3194cc7454  66e88597b88915ec12e996b7a8b53c47  65952bc9128c482455c8ec3194cc7454  66e88597b88915ec12e996b7a8b53c47 fpsr=00000000
+fccmpe h4, h5, #4, MI   1dac96bc76513aec2361df827ad6024d  86469029844994204006395a5e275811  1dac96bc76513aec2361df827ad6024d  86469029844994204006395a5e275811 fpsr=00000000
+fccmpe h5, h6, #5, PL   81b268182981cc3a83c48b8792ef17ac  dc35ce69fa198e13e0d0f3bb15f71a6e  81b268182981cc3a83c48b8792ef17ac  dc35ce69fa198e13e0d0f3bb15f71a6e fpsr=00000000
+fccmpe h6, h7, #6, VS   e5831580cf72f90784788b5530feb077  a3ae40dc4795e8cd253d85c3317ce46c  e5831580cf72f90784788b5530feb077  a3ae40dc4795e8cd253d85c3317ce46c fpsr=00000000
+fccmpe h7, h8, #7, VC   b97b399d733155958cd408106a34c2a5  84cf07069af5faffd3dc708a41e08f87  b97b399d733155958cd408106a34c2a5  84cf07069af5faffd3dc708a41e08f87 fpsr=00000000
+fccmpe h8, h9, #8, HI   28940f233a22929caf2a2d766175f231  665b63dddc79f4a5ad1bb1602ac83fc4  28940f233a22929caf2a2d766175f231  665b63dddc79f4a5ad1bb1602ac83fc4 fpsr=00000000
+fccmpe h9, h10, #9, LS   bcd9c95dae9e6a1dcf840b3ee10bf05f  16e605e7057b6dcd539e4b5db09fddc3  bcd9c95dae9e6a1dcf840b3ee10bf05f  16e605e7057b6dcd539e4b5db09fddc3 fpsr=00000000
+fccmpe h10, h11, #10, GE   9b92bb1149096044db9db5a587c8a3bd  ca4dd6b095e64d766ee225cdf409bd48  9b92bb1149096044db9db5a587c8a3bd  ca4dd6b095e64d766ee225cdf409bd48 fpsr=00000000
+fccmpe h11, h12, #11, LT   9de70be5080e04860dcd28fd3e65f748  d1698964d6bd18a7137d878027597018  9de70be5080e04860dcd28fd3e65f748  d1698964d6bd18a7137d878027597018 fpsr=00000000
+fccmpe h12, h13, #12, GT   df02d341a5c0a4009c3972b082a532af  24e2a02995aafa8f4ac35acbcb978f24  df02d341a5c0a4009c3972b082a532af  24e2a02995aafa8f4ac35acbcb978f24 fpsr=00000000
+fccmpe h13, h14, #13, LE   960179c920e62813192acf852e8083e4  e249856f18eaab2fc6590813e8f90e4c  960179c920e62813192acf852e8083e4  e249856f18eaab2fc6590813e8f90e4c fpsr=00000000
+fccmpe h14, h15, #14, AL   a7d352742596c6452e824bc120c1eb8e  f7f5d0ec11af8c9835c6ef11ccd21b25  a7d352742596c6452e824bc120c1eb8e  f7f5d0ec11af8c9835c6ef11ccd21b25 fpsr=00000000
+fccmpe h15, h16, #15, NV   3a0fa0672012cff581523a53a8740c92  dd94cb39a0806eb153b61b32d0c89576  3a0fa0672012cff581523a53a8740c92  dd94cb39a0806eb153b61b32d0c89576 fpsr=00000000
+fccmpe h16, h17, #0, EQ   2cbe93063e8af04b970992e57557c750  da3f620a8967e0c7ed26a82b520722da  2cbe93063e8af04b970992e57557c750  da3f620a8967e0c7ed26a82b520722da fpsr=00000000
+fccmpe h17, h18, #1, NE   752e8e7a34ed4526b1dff4a3561c5ccc  ad66647e99dcaf28262f4c198aa2d314  752e8e7a34ed4526b1dff4a3561c5ccc  ad66647e99dcaf28262f4c198aa2d314 fpsr=00000000
+fccmpe h18, h19, #2, HS   f911f7de379db9bf8ac13f739bbcc4a9  023e08ad22a59af3305bcf5f40eb5aa8  f911f7de379db9bf8ac13f739bbcc4a9  023e08ad22a59af3305bcf5f40eb5aa8 fpsr=00000000
+fccmpe h19, h20, #3, LO   6e17b7933fc3e3247a23237639705721  347b4fbe88d3d6a2166f8ab2e5554110  6e17b7933fc3e3247a23237639705721  347b4fbe88d3d6a2166f8ab2e5554110 fpsr=00000000
+fccmpe h20, h21, #4, MI   260a9a5b6fdf89d81f4b0ee72fcf2311  d25e2602fb4c1440d1edb7d8dab09fff  260a9a5b6fdf89d81f4b0ee72fcf2311  d25e2602fb4c1440d1edb7d8dab09fff fpsr=00000000
+fccmpe h21, h22, #5, PL   6210eef04722ce671a9d87bc00fa86d8  c8a4bfba430ed3571dd9f27036795764  6210eef04722ce671a9d87bc00fa86d8  c8a4bfba430ed3571dd9f27036795764 fpsr=00000000
+fccmpe h22, h23, #6, VS   5043f83001d03c472f449d95bdbe8058  3a6e583ceff22a60d24b1085b2686975  5043f83001d03c472f449d95bdbe8058  3a6e583ceff22a60d24b1085b2686975 fpsr=00000000
+fccmpe h23, h24, #7, VC   eb0b77cb9e3379702b0578fb55e8f6a1  61276ea5dc15f2e87bdabd283a5da18e  eb0b77cb9e3379702b0578fb55e8f6a1  61276ea5dc15f2e87bdabd283a5da18e fpsr=00000000
+fccmpe h24, h25, #8, HI   8d3fc38d814e7a2249cea2888a1d01c6  23c29068fa19d295bb0df2eb98e94f1e  8d3fc38d814e7a2249cea2888a1d01c6  23c29068fa19d295bb0df2eb98e94f1e fpsr=00000000
+fccmpe h25, h26, #9, LS   3e96b08175e7ed84cd9e255ede913f81  70bbeb59526115326faad38898ec5ec2  3e96b08175e7ed84cd9e255ede913f81  70bbeb59526115326faad38898ec5ec2 fpsr=00000000
+fccmpe h26, h27, #10, GE   5394f058735d88fae8bd6360c6f22110  5574d3e3dd6a6ee2bd0977f3b91e48e8  5394f058735d88fae8bd6360c6f22110  5574d3e3dd6a6ee2bd0977f3b91e48e8 fpsr=00000000
+fccmpe h27, h28, #11, LT   fb2dca5520c7ddef150d4b3dd9f7e6e5  4f111526dd638e52b239e1a53dd659cf  fb2dca5520c7ddef150d4b3dd9f7e6e5  4f111526dd638e52b239e1a53dd659cf fpsr=00000000
+fccmpe h28, h29, #12, GT   8ebce43e5eedb940d368ba645e1c5c39  3ff5568b18b21d0e0666c73d68d0c333  8ebce43e5eedb940d368ba645e1c5c39  3ff5568b18b21d0e0666c73d68d0c333 fpsr=00000000
+fccmpe h29, h30, #13, LE   d0c00a6c9ce7a6af1016cd6d0974a7d2  2ceca00d186acd4ef28a6aac11312f89  d0c00a6c9ce7a6af1016cd6d0974a7d2  2ceca00d186acd4ef28a6aac11312f89 fpsr=00000000
+fccmpe h30, h31, #14, AL   f74d01b35481c5cb14136b8c00e24e44  0f18b584574e11e85a1aaec94da6607d  f74d01b35481c5cb14136b8c00e24e44  0f18b584574e11e85a1aaec94da6607d fpsr=00000000
+
+FCMEQ <Hd>, <Hn>, <Hm>
+
+fcmeq h0, h1, h2   b8685d79fa7f69b713e2a7a635a82234  515d78c59ea29f258e2eaa2d8125df95  e5822a5de93ef28fdbf220a6666f53c2  00000000000000000000000000000000  515d78c59ea29f258e2eaa2d8125df95  e5822a5de93ef28fdbf220a6666f53c2 fpsr=00000000
+fcmeq h1, h2, h3   bec9610d4653541c1070c5d727b8efd4  362764d76564cb1e95a78671ddfae891  28e76c3ca4f80682ddb918fb16422c31  00000000000000000000000000000000  362764d76564cb1e95a78671ddfae891  28e76c3ca4f80682ddb918fb16422c31 fpsr=00000000
+fcmeq h2, h3, h4   0b6105c2c22784f1126114aa31a263df  c40d08643462eed16f640f4b78d1f0b2  3d558cf1bacac8543258b60d9590d488  00000000000000000000000000000000  c40d08643462eed16f640f4b78d1f0b2  3d558cf1bacac8543258b60d9590d488 fpsr=00000000
+fcmeq h3, h4, h5   229fd643936d7434f858f87969e651da  e0f392798c35f0c54c7ccd19097df127  bb2fca0735b517a5e45fcac59baea6a5  00000000000000000000000000000000  e0f392798c35f0c54c7ccd19097df127  bb2fca0735b517a5e45fcac59baea6a5 fpsr=00000000
+fcmeq h4, h5, h6   8ac9e094a5a76147623df222878777cb  104a31d0169704045449d5371c4920bc  786bfb35ac6981d1adad3f0a79b06b7e  00000000000000000000000000000000  104a31d0169704045449d5371c4920bc  786bfb35ac6981d1adad3f0a79b06b7e fpsr=00000000
+fcmeq h5, h6, h7   a8375b934b639a5f0b90dbbc90ad4927  0dc573990c1aa8c6325fe95c6000b0cc  77883f18b21ce6da16e6131952831730  00000000000000000000000000000000  0dc573990c1aa8c6325fe95c6000b0cc  77883f18b21ce6da16e6131952831730 fpsr=00000000
+fcmeq h6, h7, h8   44726a4479142e0fc4806957b199876b  c6f39cd9e8ce645f957f7199e8d9c783  e2ab3f6eb481eb16866ff7701fd521c3  00000000000000000000000000000000  c6f39cd9e8ce645f957f7199e8d9c783  e2ab3f6eb481eb16866ff7701fd521c3 fpsr=00000000
+fcmeq h7, h8, h9   946494b472c9270f0e6994d31f21baae  8bb7d90527f123e06b3769805a13e2ff  617b0da72fbb1d5a8c0d99f4ea4a309a  00000000000000000000000000000000  8bb7d90527f123e06b3769805a13e2ff  617b0da72fbb1d5a8c0d99f4ea4a309a fpsr=00000000
+fcmeq h8, h9, h10   fa51d528585bb29f94ab1b8192fe9d6f  4a22d16eda6fc4c19da63edd230f85ae  465c47299597b668ea1277139f47a703  00000000000000000000000000000000  4a22d16eda6fc4c19da63edd230f85ae  465c47299597b668ea1277139f47a703 fpsr=00000000
+fcmeq h9, h10, h11   18f60c8130ea0fbb4a01e533a1fdc6b3  a4459feaaba232b6fb3eb5875bc8f9d4  ddb1979858f7591d60ce7735687579a2  00000000000000000000000000000000  a4459feaaba232b6fb3eb5875bc8f9d4  ddb1979858f7591d60ce7735687579a2 fpsr=00000000
+fcmeq h10, h11, h12   b36769f87b7111d2416700d420feb29e  ad66dcbd663eedc652cdd2ef1ab9a082  b0ceb1331e330ad2f354134f8560973f  00000000000000000000000000000000  ad66dcbd663eedc652cdd2ef1ab9a082  b0ceb1331e330ad2f354134f8560973f fpsr=00000000
+fcmeq h11, h12, h13   cea659204fee6f83466bbf77b6c50972  15b58da2882fe4d0985b74b8d2ce9379  c2781e402b26d7e15437122a79d0e286  00000000000000000000000000000000  15b58da2882fe4d0985b74b8d2ce9379  c2781e402b26d7e15437122a79d0e286 fpsr=00000000
+fcmeq h12, h13, h14   b33264c1bcd377da03bb4710b48a0739  38fc33a784ebbbd1a76151651bad81a1  67b3ddfbaa6128cd5c0c211c6452cc30  00000000000000000000000000000000  38fc33a784ebbbd1a76151651bad81a1  67b3ddfbaa6128cd5c0c211c6452cc30 fpsr=00000000
+fcmeq h13, h14, h15   818df5868cc83db0814b27c229a4fad7  04db49a0031385cff26e406f276a5b45  a575f3af1c2bc20b87153c25e841f910  00000000000000000000000000000000  04db49a0031385cff26e406f276a5b45  a575f3af1c2bc20b87153c25e841f910 fpsr=00000000
+randV128: 4096 calls, 5413 iters
+fcmeq h14, h15, h16   967d4d61b44e3e1dc5b7948dba410a2c  a6160df00aff25f7d921d35e54b22a0b  1a349fc3f626ad2db527d06906bc9468  00000000000000000000000000000000  a6160df00aff25f7d921d35e54b22a0b  1a349fc3f626ad2db527d06906bc9468 fpsr=00000000
+fcmeq h15, h16, h17   32a9deb2e7797943f9a11d12fa999ae2  71b6d3e41c4d14b50a771bac5a9c5136  86a816e32a061c9bf76af327b5c9be3f  00000000000000000000000000000000  71b6d3e41c4d14b50a771bac5a9c5136  86a816e32a061c9bf76af327b5c9be3f fpsr=00000000
+fcmeq h16, h17, h18   caecb05260c1a0f34db80dbd063b0b46  d61625289d8472696620e4cadfd5e2d6  820ede051090701af21a7172a2c21f85  00000000000000000000000000000000  d61625289d8472696620e4cadfd5e2d6  820ede051090701af21a7172a2c21f85 fpsr=00000000
+fcmeq h17, h18, h19   e1fc15a460ff223db06ca16929a3e794  5d482b6fd3dc9081e076046f6b64764e  651287de57b7e391a534392ee0663115  00000000000000000000000000000000  5d482b6fd3dc9081e076046f6b64764e  651287de57b7e391a534392ee0663115 fpsr=00000000
+fcmeq h18, h19, h20   61d505ceca25285db3f23de2e6817948  349b3d0559a07012b3a6f154b97dacff  4cc2c7ea39a6f1058fc392d88e187084  00000000000000000000000000000000  349b3d0559a07012b3a6f154b97dacff  4cc2c7ea39a6f1058fc392d88e187084 fpsr=00000000
+fcmeq h19, h20, h21   2253f2b74d699fc494b37557ac2ddb7a  8f849a5bf75c3a9ca4aeb2c5b7c4e3eb  c690523f28c2fb33756bfab85ac2c88b  00000000000000000000000000000000  8f849a5bf75c3a9ca4aeb2c5b7c4e3eb  c690523f28c2fb33756bfab85ac2c88b fpsr=00000000
+fcmeq h20, h21, h22   e6a86d6d503ef7cde123ad6d31423b2c  25fcbac18e7acfb2353b3176207d01f5  8a7812c1eeb50a0226e23beec52a6219  00000000000000000000000000000000  25fcbac18e7acfb2353b3176207d01f5  8a7812c1eeb50a0226e23beec52a6219 fpsr=00000000
+fcmeq h21, h22, h23   3f2c8148261019cdb36a20d1156f2d9b  3a426ed9ac8ec061d6665228a2fb8ce8  1d8654250b9bbdafbb2b6e4f50e321b3  00000000000000000000000000000000  3a426ed9ac8ec061d6665228a2fb8ce8  1d8654250b9bbdafbb2b6e4f50e321b3 fpsr=00000000
+fcmeq h22, h23, h24   0cc4fb9dc294a728374355bc80f9e076  cf56b5a252970caa872e17db3b3e82c5  30d1edfab09cd98d57c847808169790f  00000000000000000000000000000000  cf56b5a252970caa872e17db3b3e82c5  30d1edfab09cd98d57c847808169790f fpsr=00000000
+fcmeq h23, h24, h25   ef3714774941e340e7e2e9790ce59e7d  124208b1ac909b48d73812dbd241f679  f691af7192ceced723585e6895c29e7b  00000000000000000000000000000000  124208b1ac909b48d73812dbd241f679  f691af7192ceced723585e6895c29e7b fpsr=00000000
+fcmeq h24, h25, h26   31425e73eb6c282ff2472f166f912b56  54e0967910d997fd47a460981b3ebf2c  426b594241f800720ffa6b177afa1e5d  00000000000000000000000000000000  54e0967910d997fd47a460981b3ebf2c  426b594241f800720ffa6b177afa1e5d fpsr=00000000
+fcmeq h25, h26, h27   12ba5bc1342eea572dea38540aa244b8  f5ac9853db77cfaca50f33b65b61d328  ced2588437d74e66c9fadb8738b8cae9  00000000000000000000000000000000  f5ac9853db77cfaca50f33b65b61d328  ced2588437d74e66c9fadb8738b8cae9 fpsr=00000000
+fcmeq h26, h27, h28   1eab93b63454d0cde4758fb889048d57  f6a50d3e0e6b4354f477883693a9326e  98c7a937746cb7b35458afb9ccfba01e  00000000000000000000000000000000  f6a50d3e0e6b4354f477883693a9326e  98c7a937746cb7b35458afb9ccfba01e fpsr=00000000
+fcmeq h27, h28, h29   57cbf63ba8b5f2f632dc6117c217ddfe  a34a4f5cfab63b5aad13e7ac39c3a3fd  70d6d4f7192fd907c1dfb6a1ae7a9557  00000000000000000000000000000000  a34a4f5cfab63b5aad13e7ac39c3a3fd  70d6d4f7192fd907c1dfb6a1ae7a9557 fpsr=00000000
+fcmeq h28, h29, h30   16205249aa54dc915f3fbe5ae9aad3d7  9fee66824c1b6a19c2790cb42b8fb7ba  6bd69df4bfe582f26c72da1f89d40d6c  00000000000000000000000000000000  9fee66824c1b6a19c2790cb42b8fb7ba  6bd69df4bfe582f26c72da1f89d40d6c fpsr=00000000
+fcmeq h29, h30, h31   eff32adea71df7e473d1a5e85f89e327  592366f03e13dc1db43e8f45c35d4256  626b8939af3aef928a2ff54b2610971f  00000000000000000000000000000000  592366f03e13dc1db43e8f45c35d4256  626b8939af3aef928a2ff54b2610971f fpsr=00000000
+
+FCMEQ <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
+
+fcmeq v0.8h, v1.8h, v2.8h   3f22337436d66e679875e3108a3eaf92  5de5230b2a358068d3e6813e4b681c9e  4d94225e420f92dc849a5d5ef273717d  00000000000000000000000000000000  5de5230b2a358068d3e6813e4b681c9e  4d94225e420f92dc849a5d5ef273717d fpsr=00000000
+fcmeq v1.8h, v2.8h, v3.8h   752520e8f814cf3674e7c36ebc560d94  932d1cdd1c32013b8458e96b2a457b1b  47da275fd9f7607430a6a809541c5f17  00000000000000000000000000000000  932d1cdd1c32013b8458e96b2a457b1b  47da275fd9f7607430a6a809541c5f17 fpsr=00000000
+fcmeq v2.8h, v3.8h, v4.8h   339b30cfb63b946c795140fe7a8db7e9  053f2aa0e9b4ae7ec0d6ec313f513690  d1374731bb28dabc70b153342f6ea01a  00000000000000000000000000000000  053f2aa0e9b4ae7ec0d6ec313f513690  d1374731bb28dabc70b153342f6ea01a fpsr=00000000
+fcmeq v3.8h, v4.8h, v5.8h   645d1732e2d2ec0a6fac6aedbe811e45  3ac8c084e40bd01f69ae3bbaa854c98c  8ce380a20d3e51afb3a800f8ab74aa1f  00000000000000000000000000000000  3ac8c084e40bd01f69ae3bbaa854c98c  8ce380a20d3e51afb3a800f8ab74aa1f fpsr=00000000
+fcmeq v4.8h, v5.8h, v6.8h   d1cc8fc13d68bea2e221bae7568254d2  0102242bda12a7aba7e919b72d208658  0934cdcd3a406add9a74e8e33916ab57  00000000000000000000000000000000  0102242bda12a7aba7e919b72d208658  0934cdcd3a406add9a74e8e33916ab57 fpsr=00000000
+fcmeq v5.8h, v6.8h, v7.8h   1de8fae180d24cb3c4140dc466295529  884a5cc3974d1a123501dbf609f2ef4e  c7677b970808c919cfaca8d70acbd2d0  00000000000000000000000000000000  884a5cc3974d1a123501dbf609f2ef4e  c7677b970808c919cfaca8d70acbd2d0 fpsr=00000000
+fcmeq v6.8h, v7.8h, v8.8h   ce9f674d1cbe285113f780763dc9036e  e12080178a060ee5f5c6049ffb8d4e63  3fb0146ff7cdbe9d89b9ef4a3af20c9e  00000000000000000000000000000000  e12080178a060ee5f5c6049ffb8d4e63  3fb0146ff7cdbe9d89b9ef4a3af20c9e fpsr=00000000
+fcmeq v7.8h, v8.8h, v9.8h   e6158841819457fd43d7383f63d4b097  5528abd5bb299941d772be21eb68ba33  d30145c86965d26a40ca0937c9a6c2b7  00000000000000000000000000000000  5528abd5bb299941d772be21eb68ba33  d30145c86965d26a40ca0937c9a6c2b7 fpsr=00000000
+fcmeq v8.8h, v9.8h, v10.8h   aec8b4308a9c5118c47773c1bf46121b  d6818e350e33bd51a734ea43cea0e7e5  533a5de9fb1bcdb204c8032a892dc8b7  00000000000000000000000000000000  d6818e350e33bd51a734ea43cea0e7e5  533a5de9fb1bcdb204c8032a892dc8b7 fpsr=00000000
+fcmeq v9.8h, v10.8h, v11.8h   735ef03622b304980837f1056ecbf342  d238d06aeb102220e30de9f33f37da7c  e672911250f1ca40829ae7ad6cc516fd  00000000000000000000000000000000  d238d06aeb102220e30de9f33f37da7c  e672911250f1ca40829ae7ad6cc516fd fpsr=00000000
+fcmeq v10.8h, v11.8h, v12.8h   b59e56075d6b0b25b72be249b41f47a9  617ad6e3fb9974cea475f905785d068b  0c1b517e059420a7e64a66a71a3b1fec  00000000000000000000000000000000  617ad6e3fb9974cea475f905785d068b  0c1b517e059420a7e64a66a71a3b1fec fpsr=00000000
+fcmeq v11.8h, v12.8h, v13.8h   6513022466168c4d0fbe0fcd6150737a  e66b86e3c6ad996719c5a7fd2ca5f0e7  c792113c8bcded22d0603065db792dfd  00000000000000000000000000000000  e66b86e3c6ad996719c5a7fd2ca5f0e7  c792113c8bcded22d0603065db792dfd fpsr=00000000
+fcmeq v12.8h, v13.8h, v14.8h   28b9025797c83fa6cae50ad6a2488d92  086e3df36db70e4807039e1d7289e891  c063bf3f3519186216a0befd8b1944db  00000000000000000000000000000000  086e3df36db70e4807039e1d7289e891  c063bf3f3519186216a0befd8b1944db fpsr=00000000
+fcmeq v13.8h, v14.8h, v15.8h   aa6cd67b91af8ed8d4e9e7213b4651d4  d872f5eb75e695024ddcb14ad5f6ab1f  18628b95881c39a651ab9927f32025a1  00000000000000000000000000000000  d872f5eb75e695024ddcb14ad5f6ab1f  18628b95881c39a651ab9927f32025a1 fpsr=00000000
+fcmeq v14.8h, v15.8h, v16.8h   458330a68d1f78eba85f0f7b34ddca15  5792d578824f1ebc12c83fb171c5e7fd  41b553ee23a30c69fb9c75bf1e353421  00000000000000000000000000000000  5792d578824f1ebc12c83fb171c5e7fd  41b553ee23a30c69fb9c75bf1e353421 fpsr=00000000
+fcmeq v15.8h, v16.8h, v17.8h   c6f8b4c6192cebdd99ad450ac708dbde  9e6fd2ec55a9631fbbf810fd1e17cb02  07d65bc40a75b5bf3adb8960df01d8d7  00000000000000000000000000000000  9e6fd2ec55a9631fbbf810fd1e17cb02  07d65bc40a75b5bf3adb8960df01d8d7 fpsr=00000000
+fcmeq v16.8h, v17.8h, v18.8h   87fb8c58edef7a285959df5a31b91852  053a02325019a33c13e5256c814fbc10  13244988977e8c830474672e78840863  00000000000000000000000000000000  053a02325019a33c13e5256c814fbc10  13244988977e8c830474672e78840863 fpsr=00000000
+fcmeq v17.8h, v18.8h, v19.8h   7b50e11f5c9c96365f8c9628889453a2  74fff83a2b2420bee202871eaa79ba32  6fb95c5721583491aff9916c568d348c  00000000000000000000000000000000  74fff83a2b2420bee202871eaa79ba32  6fb95c5721583491aff9916c568d348c fpsr=00000000
+fcmeq v18.8h, v19.8h, v20.8h   e3c98ce8292f7b034ac2e8a330e98a4b  f998b54f163cee74ddd10c50422ddc8d  20536c855f7dc17f5f432f618d36160e  00000000000000000000000000000000  f998b54f163cee74ddd10c50422ddc8d  20536c855f7dc17f5f432f618d36160e fpsr=00000000
+fcmeq v19.8h, v20.8h, v21.8h   2ed0c0e335deb700cc41da55f8d0732c  957df0c804d892443ee750659331cfdd  f55367cf1980d379f744a971d7619d21  00000000000000000000000000000000  957df0c804d892443ee750659331cfdd  f55367cf1980d379f744a971d7619d21 fpsr=00000000
+fcmeq v20.8h, v21.8h, v22.8h   a3d2072da4ecbd4d22e91f57da8683a1  acef30936a72e2fe5231d4ac4df994ba  a914285c50c8de444cc93409d0911337  00000000000000000000000000000000  acef30936a72e2fe5231d4ac4df994ba  a914285c50c8de444cc93409d0911337 fpsr=00000000
+fcmeq v21.8h, v22.8h, v23.8h   df19f7d58588a2a915a1808834d719e7  1706046cbbaa4e026915b21eb38ab3bd  c7749ef74585be6f6c31ae2dd92a085a  00000000000000000000000000000000  1706046cbbaa4e026915b21eb38ab3bd  c7749ef74585be6f6c31ae2dd92a085a fpsr=00000000
+fcmeq v22.8h, v23.8h, v24.8h   41a87410c1631643e009a5195fd216ec  03745c046d79c81e8a0029bfe5704f2e  cbc22852cff27a0b25f740e44f7458db  00000000000000000000000000000000  03745c046d79c81e8a0029bfe5704f2e  cbc22852cff27a0b25f740e44f7458db fpsr=00000000
+fcmeq v23.8h, v24.8h, v25.8h   bf8994bc891d65014d43f8b3ae2a8302  e2b20bbb98f1d0814b8a96a256a667c4  aebfa53f4036f2204d3ad67d3d647327  00000000000000000000000000000000  e2b20bbb98f1d0814b8a96a256a667c4  aebfa53f4036f2204d3ad67d3d647327 fpsr=00000000
+fcmeq v24.8h, v25.8h, v26.8h   830e0fbbbfb844685bda72ce31095da8  7bf808d9988cd1188adbae0fd5071cc1  a9f4c1d5b39a053683f447926c52dcd9  00000000000000000000000000000000  7bf808d9988cd1188adbae0fd5071cc1  a9f4c1d5b39a053683f447926c52dcd9 fpsr=00000000
+fcmeq v25.8h, v26.8h, v27.8h   36b80bdd0d60e2805fb868ecf10a96fa  692e1388a1cc61733d20ce496ec2c9ee  552f9aa2ac5b7554cbfaad5a73914a41  00000000000000000000000000000000  692e1388a1cc61733d20ce496ec2c9ee  552f9aa2ac5b7554cbfaad5a73914a41 fpsr=00000000
+fcmeq v26.8h, v27.8h, v28.8h   5e58c22b2676d5b399dd0933131c43ee  6873c4099f3c979e5ace1eb844669303  b47eea698e8af9547122440ba951d03c  00000000000000000000000000000000  6873c4099f3c979e5ace1eb844669303  b47eea698e8af9547122440ba951d03c fpsr=00000000
+randV128: 4352 calls, 5757 iters
+fcmeq v27.8h, v28.8h, v29.8h   f0b863f2720aa364cb236917f585af97  19f90aa4bba38a187a31ae95dc110751  2f9658db7419b7771cd225ab56beecf8  00000000000000000000000000000000  19f90aa4bba38a187a31ae95dc110751  2f9658db7419b7771cd225ab56beecf8 fpsr=00000000
+fcmeq v28.8h, v29.8h, v30.8h   14465fceb25510bbaffd8a342eb73a25  aa315255b9b47588e0b1d435904e31b1  73b268b1269acd43aa122d01dc8ec34a  00000000000000000000000000000000  aa315255b9b47588e0b1d435904e31b1  73b268b1269acd43aa122d01dc8ec34a fpsr=00000000
+fcmeq v29.8h, v30.8h, v31.8h   d42c7163c32d947c4f34bb46482d458b  36d75e64050946a9a1e4f8b1e4c4ea6e  8fd26a0b24941685b1d9a0973e0db6ff  00000000000000000000000000000000  36d75e64050946a9a1e4f8b1e4c4ea6e  8fd26a0b24941685b1d9a0973e0db6ff fpsr=00000000
+fcmeq v0.4h, v1.4h, v2.4h   e46d2f13175884cbe04b1031372aa56c  6fefc3341466509ff14d2eebcbb7052c  36f9f34ce2cde86165ae9452727f9abc  00000000000000000000000000000000  6fefc3341466509ff14d2eebcbb7052c  36f9f34ce2cde86165ae9452727f9abc fpsr=00000000
+fcmeq v1.4h, v2.4h, v3.4h   0a7d152b5990e78d037189c8396b5790  1e2d98dad40894fcf9131b166b284224  8fb7c4ef380351e0e297f32e387b97bf  00000000000000000000000000000000  1e2d98dad40894fcf9131b166b284224  8fb7c4ef380351e0e297f32e387b97bf fpsr=00000000
+fcmeq v2.4h, v3.4h, v4.4h   f96feb176e097079a28d4bc61d4c83dc  977a5412d86dc086e2398abc76ab0c86  f97d32b4366d21783efbafee8df3075b  00000000000000000000000000000000  977a5412d86dc086e2398abc76ab0c86  f97d32b4366d21783efbafee8df3075b fpsr=00000000
+fcmeq v3.4h, v4.4h, v5.4h   505564bb248807699abd5c2459b40191  2d0e61d9f67c4790d364491938b5dc03  f31edd23ea1c1e3c55a5b8819de73138  00000000000000000000000000000000  2d0e61d9f67c4790d364491938b5dc03  f31edd23ea1c1e3c55a5b8819de73138 fpsr=00000000
+fcmeq v4.4h, v5.4h, v6.4h   48bdc7d6b75869a6229e924d13432146  ba37bfe1a9e3c8f556bf5990057d229f  91e1debe66b6e910d8cf71e9364d4062  00000000000000000000000000000000  ba37bfe1a9e3c8f556bf5990057d229f  91e1debe66b6e910d8cf71e9364d4062 fpsr=00000000
+fcmeq v5.4h, v6.4h, v7.4h   8454c9d32b23a578d4a3df6240efe493  481ccc09514c2a258227ac8915854f6c  1a89a3c2eece655a3acce223252a10e0  00000000000000000000000000000000  481ccc09514c2a258227ac8915854f6c  1a89a3c2eece655a3acce223252a10e0 fpsr=00000000
+fcmeq v6.4h, v7.4h, v8.4h   f9feac55e360f62571ce658dbd6b10b8  113cd769221e29239fa93dbc2cedc40b  f7368861b419812ca07827e50ef0e4ac  00000000000000000000000000000000  113cd769221e29239fa93dbc2cedc40b  f7368861b419812ca07827e50ef0e4ac fpsr=00000000
+fcmeq v7.4h, v8.4h, v9.4h   db1ddd1a102b48d571191b7343ffe07f  a04693424ef0392c62da38666dcb73e4  ae47e6d01e0a3675967287524f0f875d  00000000000000000000000000000000  a04693424ef0392c62da38666dcb73e4  ae47e6d01e0a3675967287524f0f875d fpsr=00000000
+fcmeq v8.4h, v9.4h, v10.4h   7797819c4acc5e153520c77a1b9c5c9f  4b944dc94714e46403ae8495eb5b66d9  a4e697b1cfb006185cc94b8267b355b8  00000000000000000000000000000000  4b944dc94714e46403ae8495eb5b66d9  a4e697b1cfb006185cc94b8267b355b8 fpsr=00000000
+fcmeq v9.4h, v10.4h, v11.4h   f597494a49f21bf3af35ed72ec5ca271  f704b693750f1afc9cad6c14becb282e  da119c04c70cf214f27d727357dd4fbc  00000000000000000000000000000000  f704b693750f1afc9cad6c14becb282e  da119c04c70cf214f27d727357dd4fbc fpsr=00000000
+fcmeq v10.4h, v11.4h, v12.4h   02a2916f0a5f8c8c25aad8f4885f36cc  367adc526a4b94c93782c26d4bbcb799  f0a9390cb54852d012cca99aa3a08651  00000000000000000000000000000000  367adc526a4b94c93782c26d4bbcb799  f0a9390cb54852d012cca99aa3a08651 fpsr=00000000
+fcmeq v11.4h, v12.4h, v13.4h   6f0193bbdd20a87bd0382468d72e73d1  6d6de15c07053a169ea3c8364a1a8fb4  0412a0fd8fe41d198bffea99bdc2c5c1  00000000000000000000000000000000  6d6de15c07053a169ea3c8364a1a8fb4  0412a0fd8fe41d198bffea99bdc2c5c1 fpsr=00000000
+fcmeq v12.4h, v13.4h, v14.4h   a67a65723edcc94303aaf72badbecedc  1ab9c6cfaf3021605be36865235cd2f9  3765a45b6b01239a059b3bd903f934e6  00000000000000000000000000000000  1ab9c6cfaf3021605be36865235cd2f9  3765a45b6b01239a059b3bd903f934e6 fpsr=00000000
+fcmeq v13.4h, v14.4h, v15.4h   434cb713b8648f164fd15649ee108799  e7a02cf28f23a26a30b1e8631f16f1d7  618cda6b375248175d9032deb4ff2561  00000000000000000000000000000000  e7a02cf28f23a26a30b1e8631f16f1d7  618cda6b375248175d9032deb4ff2561 fpsr=00000000
+fcmeq v14.4h, v15.4h, v16.4h   cefecb632bff3dc769bf21d908feddf0  0d4c5ca96a2d780772fb07cff129c8c3  e3a4d51733152947f7d9406366b25239  00000000000000000000000000000000  0d4c5ca96a2d780772fb07cff129c8c3  e3a4d51733152947f7d9406366b25239 fpsr=00000000
+fcmeq v15.4h, v16.4h, v17.4h   c3ca3414fb9c1e77f16a6a6bdddd8b53  81543bc64d62605014958b1239a76739  5e7512ef5ffc0bbecda03b65c5131e83  00000000000000000000000000000000  81543bc64d62605014958b1239a76739  5e7512ef5ffc0bbecda03b65c5131e83 fpsr=00000000
+fcmeq v16.4h, v17.4h, v18.4h   5814e27712d949ceb303da683b3b55b8  44bedfaf666969c4b9a76533779de663  25299560e8c679ed58db0a49a1077b46  00000000000000000000000000000000  44bedfaf666969c4b9a76533779de663  25299560e8c679ed58db0a49a1077b46 fpsr=00000000
+fcmeq v17.4h, v18.4h, v19.4h   7656808e9b71318dca47a83022f33bb4  6ff43f616da1a1d799702b7fc977020c  17a7809760c96f02f14b1f47d9c0070b  00000000000000000000000000000000  6ff43f616da1a1d799702b7fc977020c  17a7809760c96f02f14b1f47d9c0070b fpsr=00000000
+fcmeq v18.4h, v19.4h, v20.4h   e87b74de172e14afab454feea6cfbdad  c83520c513846387c6fd82a69aace6a8  c8333ec0a00100f1d9971786687e3efa  00000000000000000000000000000000  c83520c513846387c6fd82a69aace6a8  c8333ec0a00100f1d9971786687e3efa fpsr=00000000
+fcmeq v19.4h, v20.4h, v21.4h   39cdcfdaa76e2db911c2f3074e422012  db49f4d950281160290938318d15c008  3d97e7892ae4d30fe6b9b883008e66a8  00000000000000000000000000000000  db49f4d950281160290938318d15c008  3d97e7892ae4d30fe6b9b883008e66a8 fpsr=00000000
+fcmeq v20.4h, v21.4h, v22.4h   799f1d2276aa7b34cd719b7803e6711d  2f4443c322c833e24e1cdb3543a24612  697434e67611f55b99c9b2c98c0bae53  00000000000000000000000000000000  2f4443c322c833e24e1cdb3543a24612  697434e67611f55b99c9b2c98c0bae53 fpsr=00000000
+fcmeq v21.4h, v22.4h, v23.4h   b83d467639a7642d2a7097b23c824693  e0201b5f67e0be29b2d6c0e73c1b5f0e  d0c8391b32edd031a9565d239aec17f5  00000000000000000000000000000000  e0201b5f67e0be29b2d6c0e73c1b5f0e  d0c8391b32edd031a9565d239aec17f5 fpsr=00000000
+fcmeq v22.4h, v23.4h, v24.4h   a3e210119234065989bafb2b6cc6dda0  2898888cd33ab5b549e4cc771d737533  95635649c84061a209ac0fe9b6b3e169  00000000000000000000000000000000  2898888cd33ab5b549e4cc771d737533  95635649c84061a209ac0fe9b6b3e169 fpsr=00000000
+fcmeq v23.4h, v24.4h, v25.4h   2c8eb63d18886194064da0e7c8e5976a  23e7b79dcbbefb0baff713a70ae69bb0  d6811e14b483229638b664fdd6ead07c  00000000000000000000000000000000  23e7b79dcbbefb0baff713a70ae69bb0  d6811e14b483229638b664fdd6ead07c fpsr=00000000
+fcmeq v24.4h, v25.4h, v26.4h   19f223b2bb4714e81046cdb63c392e30  cceaf6a1a7d931cadd6fb1341be4f09d  c5f7070dde81abd1f5e5604466e7566f  00000000000000000000000000000000  cceaf6a1a7d931cadd6fb1341be4f09d  c5f7070dde81abd1f5e5604466e7566f fpsr=00000000
+fcmeq v25.4h, v26.4h, v27.4h   8fcb237831c5895e82332bc686522d9a  703297844d2c20f96e46d2cb66ab6a8a  f3fb44774e354f658371bf4dce69080b  00000000000000000000000000000000  703297844d2c20f96e46d2cb66ab6a8a  f3fb44774e354f658371bf4dce69080b fpsr=00000000
+fcmeq v26.4h, v27.4h, v28.4h   918292473163fb41e7ebc36ae34c8109  18acc97fc32908cf8fbce74af64755a2  8571b7f030395a6d03be2dd9e73098ee  00000000000000000000000000000000  18acc97fc32908cf8fbce74af64755a2  8571b7f030395a6d03be2dd9e73098ee fpsr=00000000
+fcmeq v27.4h, v28.4h, v29.4h   092490e8d8f9a5645a74c9b476ac9f28  3e7aecfcad4769fb4c23d8b52e361443  fb3c8b38f68a36aa1b068503ca88acc8  00000000000000000000000000000000  3e7aecfcad4769fb4c23d8b52e361443  fb3c8b38f68a36aa1b068503ca88acc8 fpsr=00000000
+fcmeq v28.4h, v29.4h, v30.4h   d41b78003b23cf349125d2c695bf51b0  bc7e719620c24823e2e4d35eccf1f66c  ee2598f3c3010e5933ac1b01f03caf51  00000000000000000000000000000000  bc7e719620c24823e2e4d35eccf1f66c  ee2598f3c3010e5933ac1b01f03caf51 fpsr=00000000
+fcmeq v29.4h, v30.4h, v31.4h   28631c532c9d24e359da8dfc51ab686c  4e8546d55061a75bd9d2e0ea99dc197b  9fa42b9e520c060ec3540d5a193afbb0  00000000000000000000000000000000  4e8546d55061a75bd9d2e0ea99dc197b  9fa42b9e520c060ec3540d5a193afbb0 fpsr=00000000
+
+FCMGE <Hd>, <Hn>, <Hm>
+
+fcmge h0, h1, h2   bf3a0ea668d5c20d403ef058dd6c0752  c2b3efc3ce34554456ff6a1f1b16d2ec  5510c7bd74a030aaa20f9730585f755a  00000000000000000000000000000000  c2b3efc3ce34554456ff6a1f1b16d2ec  5510c7bd74a030aaa20f9730585f755a fpsr=00000000
+fcmge h1, h2, h3   109dc909671e9738172704a799a1c1f4  6de1973e68ee3165f9ad0c71c41613cc  c2c2984a4de4c4582897a338458279bd  00000000000000000000000000000000  6de1973e68ee3165f9ad0c71c41613cc  c2c2984a4de4c4582897a338458279bd fpsr=00000000
+fcmge h2, h3, h4   d81d13aac9dea75feb3a9203c51c00d6  c276dc9bc5305c54a21514182ebf8993  bb30444d4314bf614ee9a1641d98e809  0000000000000000000000000000ffff  c276dc9bc5305c54a21514182ebf8993  bb30444d4314bf614ee9a1641d98e809 fpsr=00000000
+fcmge h3, h4, h5   748970903b1b0d9f13d2d9e22d11f877  516a1b831b3176fc137236e978fd9693  02666208f203ba322da3fbd71d27980a  0000000000000000000000000000ffff  516a1b831b3176fc137236e978fd9693  02666208f203ba322da3fbd71d27980a fpsr=00000000
+fcmge h4, h5, h6   c55476db52e0abcea81a459fde59a942  ecbd8457e35d67dfbeeb48edcc37dc67  1e8610a3305ebd7f3839399f40e6095e  00000000000000000000000000000000  ecbd8457e35d67dfbeeb48edcc37dc67  1e8610a3305ebd7f3839399f40e6095e fpsr=00000000
+fcmge h5, h6, h7   10ed3a426e9a42a5cdb276b134ee9a58  95217a989bedb1669e0f7844d34ecbed  8f66d358f274c5f4454dfabe75b63be7  00000000000000000000000000000000  95217a989bedb1669e0f7844d34ecbed  8f66d358f274c5f4454dfabe75b63be7 fpsr=00000000
+fcmge h6, h7, h8   49a0684e95ba72d814967b92d269e375  6a77ab054b517256c31510cba727bf47  b786fbe4c3f0adf3c5a35ee080d0401a  00000000000000000000000000000000  6a77ab054b517256c31510cba727bf47  b786fbe4c3f0adf3c5a35ee080d0401a fpsr=00000000
+fcmge h7, h8, h9   71468e0a5ff0609e5c8484ac532d9f03  07884ff5f78bba87986158a3902d9e8b  ba478ca5b279f2b22841f179cf321667  00000000000000000000000000000000  07884ff5f78bba87986158a3902d9e8b  ba478ca5b279f2b22841f179cf321667 fpsr=00000000
+fcmge h8, h9, h10   b509ca3a82c9640ff34b381a2d1e77b4  d879093872db6abe72d0f189ad77863b  a5c05d38d6ab2cbeb1b3daded4212924  00000000000000000000000000000000  d879093872db6abe72d0f189ad77863b  a5c05d38d6ab2cbeb1b3daded4212924 fpsr=00000000
+randV128: 4608 calls, 6090 iters
+fcmge h9, h10, h11   37575ab8629f087c2a4187e8a2803b71  4deba11b446179c612c5614b33ab362a  92cebb11d1ca93e39dff8a0600f213a6  0000000000000000000000000000ffff  4deba11b446179c612c5614b33ab362a  92cebb11d1ca93e39dff8a0600f213a6 fpsr=00000000
+fcmge h10, h11, h12   3cce4648ab414b3b6cec5472dd568142  6589f8e96cd2cf0a0e81f486e69ad7a6  f35cbf51c21e06de6e4b1bf64be64056  00000000000000000000000000000000  6589f8e96cd2cf0a0e81f486e69ad7a6  f35cbf51c21e06de6e4b1bf64be64056 fpsr=00000000
+fcmge h11, h12, h13   6ae1f8f4a5caa577c15fb8028e0b2c67  8b646c6b55de2b3694e58ba7c57441db  6aa2ea284e54224aba2d04f7f8531e35  0000000000000000000000000000ffff  8b646c6b55de2b3694e58ba7c57441db  6aa2ea284e54224aba2d04f7f8531e35 fpsr=00000000
+fcmge h12, h13, h14   652f44002acb8738390c94124950aa35  95732b70c6626b41c7d09998c8d9874e  8e1816306f76d7ed20d04e0abe1244ec  00000000000000000000000000000000  95732b70c6626b41c7d09998c8d9874e  8e1816306f76d7ed20d04e0abe1244ec fpsr=00000000
+fcmge h13, h14, h15   0448a8f60ea5e531d61401f069f9e904  c0aa031d1721a5f2a2b5f384faba734d  e0329f896486b0f28332725a4f45fb71  0000000000000000000000000000ffff  c0aa031d1721a5f2a2b5f384faba734d  e0329f896486b0f28332725a4f45fb71 fpsr=00000000
+fcmge h14, h15, h16   f1619ae9945c240b6eb2821d72bae2c2  7a49c09bbc42e5d40144a59371238370  4ade47752abff05cef508e3d8f967b9d  00000000000000000000000000000000  7a49c09bbc42e5d40144a59371238370  4ade47752abff05cef508e3d8f967b9d fpsr=00000000
+fcmge h15, h16, h17   5c47208da009bf7f16eda64c9240476a  9429dc8c27ce935341023d8c44ffe95a  9d5b83e4c324af66c41ecabaaf139b4b  00000000000000000000000000000000  9429dc8c27ce935341023d8c44ffe95a  9d5b83e4c324af66c41ecabaaf139b4b fpsr=00000000
+fcmge h16, h17, h18   342d336e0ead57a6ca3266a1b5aea0a0  48fb39e335abb68dcdc66e7cc98c18fb  0d2cf6de4a2463fa78a42722ddda944e  0000000000000000000000000000ffff  48fb39e335abb68dcdc66e7cc98c18fb  0d2cf6de4a2463fa78a42722ddda944e fpsr=00000000
+fcmge h17, h18, h19   daef733503fb81fa5e450d4fd00540e0  8d4bfb8556bb2c000c4a4bf9dfdddd84  b37de6ea51420834933cd9ad189e5476  00000000000000000000000000000000  8d4bfb8556bb2c000c4a4bf9dfdddd84  b37de6ea51420834933cd9ad189e5476 fpsr=00000000
+fcmge h18, h19, h20   083ac440a1da64d1ac22bc17b8c1ea9b  07d7c58ab197dab7fba36daa8119b417  3d0327badc43b08c48aacaf94863e582  0000000000000000000000000000ffff  07d7c58ab197dab7fba36daa8119b417  3d0327badc43b08c48aacaf94863e582 fpsr=00000000
+fcmge h19, h20, h21   5290ee712881df7eaa243c6a4a1b6794  0f6ca027f7e3df6ea95fc0d4a4f1bce3  1ecfa7a7df99486020335f8cda6bf8e8  0000000000000000000000000000ffff  0f6ca027f7e3df6ea95fc0d4a4f1bce3  1ecfa7a7df99486020335f8cda6bf8e8 fpsr=00000000
+fcmge h20, h21, h22   9c332cd4b79f36453744e04074bad0f7  f6af6e562405a09ec69816e03f6f9179  40520897e672e03c0b0bf113402f3142  00000000000000000000000000000000  f6af6e562405a09ec69816e03f6f9179  40520897e672e03c0b0bf113402f3142 fpsr=00000000
+fcmge h21, h22, h23   09ff35f515303d80bddd58d384959f7c  5d616e270dd8110fdb94bf5217506b6b  bda0301739fc1b47534f70cd519330d8  0000000000000000000000000000ffff  5d616e270dd8110fdb94bf5217506b6b  bda0301739fc1b47534f70cd519330d8 fpsr=00000000
+fcmge h22, h23, h24   05e93c7e0bd8f0d993aa6ec857525c63  aa61ede6c852ac2c5de9d282cfa6bc4f  2e62e22eeb39761e00dc926f8dc964f9  00000000000000000000000000000000  aa61ede6c852ac2c5de9d282cfa6bc4f  2e62e22eeb39761e00dc926f8dc964f9 fpsr=00000000
+fcmge h23, h24, h25   bbfe0b389b2f2559673d6da7bc0ecd11  8a52f849c42b3730cd52b0f4f13d04cc  0aa4c244e98d4dc2fbecec1056651752  00000000000000000000000000000000  8a52f849c42b3730cd52b0f4f13d04cc  0aa4c244e98d4dc2fbecec1056651752 fpsr=00000000
+fcmge h24, h25, h26   d1404d0593dd95d22acef0e719ef8a08  aad0571e06b8dd8f0d18f127eb5978f2  bec7e54f3caa255e07ebd3a405eea5a0  0000000000000000000000000000ffff  aad0571e06b8dd8f0d18f127eb5978f2  bec7e54f3caa255e07ebd3a405eea5a0 fpsr=00000000
+fcmge h25, h26, h27   46b003e3f2df4144dd5cf68a6df69148  09db096490fc9e471b3c951bbcfa17c2  359de4a76497785ad93a26537310f15e  0000000000000000000000000000ffff  09db096490fc9e471b3c951bbcfa17c2  359de4a76497785ad93a26537310f15e fpsr=00000000
+fcmge h26, h27, h28   f86e0b193d837801f513306fdcf15123  a8740f1b62f57b58fabe9dd16521e23b  f97dc392ddbd86bdcf7d29a8943deff2  0000000000000000000000000000ffff  a8740f1b62f57b58fabe9dd16521e23b  f97dc392ddbd86bdcf7d29a8943deff2 fpsr=00000000
+fcmge h27, h28, h29   b79695a758875c43bcf5b36e1a5a83b0  869a68447ba374c3a89d0948e5cdd85e  bd7eb38ab54c6437c4e5d5da8afb9f9b  00000000000000000000000000000000  869a68447ba374c3a89d0948e5cdd85e  bd7eb38ab54c6437c4e5d5da8afb9f9b fpsr=00000000
+fcmge h28, h29, h30   a12d1d451e1a00325d0b47f1e1a5d07d  3aad9ac7378decfb812b15b6c93a2bc0  2a085bfb710f27f319ea9b318a4a9ef0  0000000000000000000000000000ffff  3aad9ac7378decfb812b15b6c93a2bc0  2a085bfb710f27f319ea9b318a4a9ef0 fpsr=00000000
+fcmge h29, h30, h31   1c90c4010b4ddabc6792e1828b8ce3fa  64897a916fbd58a866aebdeaaff5cb28  d85564aba321cae5d613993104d52e2a  00000000000000000000000000000000  64897a916fbd58a866aebdeaaff5cb28  d85564aba321cae5d613993104d52e2a fpsr=00000000
+
+FCMGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
+
+fcmge v0.8h, v1.8h, v2.8h   9e5e696874ef021c8e6ba13773f4c0bf  47463e704a2a938683f1d64746eb5ba3  0793cb6fa8366b97decf36c5f4ea929d  ffffffffffff0000ffff0000ffffffff  47463e704a2a938683f1d64746eb5ba3  0793cb6fa8366b97decf36c5f4ea929d fpsr=00000000
+fcmge v1.8h, v2.8h, v3.8h   dc09bf85abf22b6cb47ee456b432f2d3  7abb1057ab7369ed7ac09ab551b66488  a532d9d7c62b8961473e12cc4c7e0666  ffffffffffffffffffff0000ffffffff  7abb1057ab7369ed7ac09ab551b66488  a532d9d7c62b8961473e12cc4c7e0666 fpsr=00000000
+fcmge v2.8h, v3.8h, v4.8h   eeb79edddf4b78b1f3fb83a3cd400b16  96a40bb82aadeb173572f7f407fe34fa  e977008bafca2a5a8ec060b4905f79bb  ffffffffffff0000ffff0000ffff0000  96a40bb82aadeb173572f7f407fe34fa  e977008bafca2a5a8ec060b4905f79bb fpsr=00000000
+fcmge v3.8h, v4.8h, v5.8h   ba672c887635bdf078fcc448ba3a3b1d  5f93ef477afa00ef2275a551dd726ea3  f11c598af09c899bc082b8f494cc2f16  ffff0000ffffffffffffffff0000ffff  5f93ef477afa00ef2275a551dd726ea3  f11c598af09c899bc082b8f494cc2f16 fpsr=00000000
+fcmge v4.8h, v5.8h, v6.8h   c77ccfad1e88520f435d8dad5b74ed73  d953df40e0131328707d733afab7c1ca  1dc011a80925c72f364a679181a32f30  000000000000ffffffffffff00000000  d953df40e0131328707d733afab7c1ca  1dc011a80925c72f364a679181a32f30 fpsr=00000000
+fcmge v5.8h, v6.8h, v7.8h   00e78978250a2c070435aedc5fd28e2c  60d3ee4fe758c3594e6274d2e4481998  66b3f082539b16af44bb633935f7a94a  0000ffff00000000ffffffff0000ffff  60d3ee4fe758c3594e6274d2e4481998  66b3f082539b16af44bb633935f7a94a fpsr=00000000
+fcmge v6.8h, v7.8h, v8.8h   3b617ad788fcbb3c57b35c7494e55211  5987fa9259a19fb87416f7fde4f54c5e  62dc95fac8e4ee79e2be982955c75912  00000000ffffffffffff000000000000  5987fa9259a19fb87416f7fde4f54c5e  62dc95fac8e4ee79e2be982955c75912 fpsr=00000000
+fcmge v7.8h, v8.8h, v9.8h   2c0aab93f88f4127d4dd5863633befe1  15680d566907d819d8ab19b933a6069d  89c615b510c89e563dbf5e512cade376  ffff0000ffff000000000000ffffffff  15680d566907d819d8ab19b933a6069d  89c615b510c89e563dbf5e512cade376 fpsr=00000000
+fcmge v8.8h, v9.8h, v10.8h   345cebfaaac82bb45b03facfc2d88390  ebd2a56c85de7569596cea68edb746d9  ae7c73c7104792d0a97fba402a6c6554  000000000000ffffffff000000000000  ebd2a56c85de7569596cea68edb746d9  ae7c73c7104792d0a97fba402a6c6554 fpsr=00000000
+fcmge v9.8h, v10.8h, v11.8h   cb61de738d0cd5e0d360d8cd114e5bcc  069dac2980bde760c9323d0978386f34  c68b65f175d70f3f5dca77dd644cb443  ffff00000000000000000000ffffffff  069dac2980bde760c9323d0978386f34  c68b65f175d70f3f5dca77dd644cb443 fpsr=00000000
+fcmge v10.8h, v11.8h, v12.8h   29515a030749a9aeb34347d58423efdc  b4d638e7dcfe92f133876331fb225e95  086c73d156fd0f58b1031816689e5824  0000000000000000ffffffff0000ffff  b4d638e7dcfe92f133876331fb225e95  086c73d156fd0f58b1031816689e5824 fpsr=00000000
+fcmge v11.8h, v12.8h, v13.8h   eb8ece150b1a3bf09c87f6bf61f06c84  62d99fb12d01d9003e2cde210204d162  a72e0963a99b783542e3fbfeafde8ef6  ffff0000ffff00000000ffffffff0000  62d99fb12d01d9003e2cde210204d162  a72e0963a99b783542e3fbfeafde8ef6 fpsr=00000000
+fcmge v12.8h, v13.8h, v14.8h   c4ac75ebe68b10b11da7c0be83209c3e  58d6bc0be2759ffa47ee34792d4f2b5d  babc890f2f9d53504528ba2d4bfd28c9  ffff000000000000ffffffff0000ffff  58d6bc0be2759ffa47ee34792d4f2b5d  babc890f2f9d53504528ba2d4bfd28c9 fpsr=00000000
+fcmge v13.8h, v14.8h, v15.8h   8d534ef97b5e8a2906791eec71bc94cd  cf68202d754fd7ccf2a7d76ad73403fe  254b1d1321253effe151f595f1d3377f  0000ffffffff00000000ffffffff0000  cf68202d754fd7ccf2a7d76ad73403fe  254b1d1321253effe151f595f1d3377f fpsr=00000000
+fcmge v14.8h, v15.8h, v16.8h   bfe7c92dd7ed75ce7892f8b7a0d3e97b  e4abd52109aa4d1f64a230bb1d9e4d53  bb3770391af7bbc3d8c1d3876c4ddf4f  000000000000ffffffffffff0000ffff  e4abd52109aa4d1f64a230bb1d9e4d53  bb3770391af7bbc3d8c1d3876c4ddf4f fpsr=00000000
+fcmge v15.8h, v16.8h, v17.8h   b06bbc149cecab9c9defe00786f91d90  bbc0786ed13e0de99a129e05f730052c  fa10303b5e2babef11a725cb2185b102  ffffffff0000ffff000000000000ffff  bbc0786ed13e0de99a129e05f730052c  fa10303b5e2babef11a725cb2185b102 fpsr=00000000
+fcmge v16.8h, v17.8h, v18.8h   3cb83dd2e3af6458364da5db340b33fa  ee53cd1bde0d96c79ed3d800e41c9ad7  97471a41b263627c2b104934c532eea6  0000000000000000000000000000ffff  ee53cd1bde0d96c79ed3d800e41c9ad7  97471a41b263627c2b104934c532eea6 fpsr=00000000
+fcmge v17.8h, v18.8h, v19.8h   92d175f603214c0e7bbf0feedb1a3807  f46c798d217a42b9571e71c245f65703  2b87f25328a35c0b2ed4f47bd9850287  0000ffff00000000ffffffffffffffff  f46c798d217a42b9571e71c245f65703  2b87f25328a35c0b2ed4f47bd9850287 fpsr=00000000
+fcmge v18.8h, v19.8h, v20.8h   13e726df273d10cea6c81fd2ab5b57e6  2678018c6b484f1d8f8fddc25aaf69be  2fdb5ed7b04df79a0430b9b4bc113b56  00000000ffffffff00000000ffffffff  2678018c6b484f1d8f8fddc25aaf69be  2fdb5ed7b04df79a0430b9b4bc113b56 fpsr=00000000
+fcmge v19.8h, v20.8h, v21.8h   76581f54b592d1f1653ecfd6f434c825  be40c83d6b98d9b2ee1f72d6449bdc78  fbace0931a246d8673bc0f57b0cac51f  ffffffffffff00000000ffffffff0000  be40c83d6b98d9b2ee1f72d6449bdc78  fbace0931a246d8673bc0f57b0cac51f fpsr=00000000
+fcmge v20.8h, v21.8h, v22.8h   0f6e130b11b6a8482646a4aede694d29  0380c0df443552876b8b15fdd2f92617  dff6d7253328d4713e8a1bf44560c010  ffffffffffffffffffff00000000ffff  0380c0df443552876b8b15fdd2f92617  dff6d7253328d4713e8a1bf44560c010 fpsr=00000000
+fcmge v21.8h, v22.8h, v23.8h   ad529eae364043d3a3b29b942c67debe  317969302a501e654cc6a3005d8bc877  9cb73f9d4949f99425d4285370c52d86  ffffffff0000ffffffff000000000000  317969302a501e654cc6a3005d8bc877  9cb73f9d4949f99425d4285370c52d86 fpsr=00000000
+randV128: 4864 calls, 6406 iters
+fcmge v22.8h, v23.8h, v24.8h   a4dc427aeaeb7bd054301bfb94112591  0884bbe5428805aa59d876f66a298a69  fa5b66c3a5ac993563168028dd3b30e5  ffff0000ffffffff0000ffffffff0000  0884bbe5428805aa59d876f66a298a69  fa5b66c3a5ac993563168028dd3b30e5 fpsr=00000000
+fcmge v23.8h, v24.8h, v25.8h   864ecf59828c4166820abc66cf712f58  8d172e13cb3f3b93b7363324e5565d2e  e2836bced6c4231a1f9bf559c1b0a1fd  ffff0000ffffffff0000ffff0000ffff  8d172e13cb3f3b93b7363324e5565d2e  e2836bced6c4231a1f9bf559c1b0a1fd fpsr=00000000
+fcmge v24.8h, v25.8h, v26.8h   8f1f6bb582cf04bc584882fb05adc54f  981fc6ff13b97b01acfbcd828f85ef54  15c0cdfd52297790487a0fee6e002055  0000ffff0000ffff0000000000000000  981fc6ff13b97b01acfbcd828f85ef54  15c0cdfd52297790487a0fee6e002055 fpsr=00000000
+fcmge v25.8h, v26.8h, v27.8h   c9721848019ccbb2d51895001efd9ee2  e1e469504c98623162a21a660788cdca  69fd91966b1c517625cbc2dfa69d5b79  0000ffff0000ffffffffffffffff0000  e1e469504c98623162a21a660788cdca  69fd91966b1c517625cbc2dfa69d5b79 fpsr=00000000
+fcmge v26.8h, v27.8h, v28.8h   2a82f50c12316652cf7562b7635c814b  3cdb3dc4e8706807eb6217fc14edbba0  0213d90c87df6dc3e206cd87cf9162de  ffffffff000000000000ffffffff0000  3cdb3dc4e8706807eb6217fc14edbba0  0213d90c87df6dc3e206cd87cf9162de fpsr=00000000
+fcmge v27.8h, v28.8h, v29.8h   6f51f1b1bd3ca104ce97468b51e66c33  d8a6debf9b73db35173c1a968773c07c  bb951d2eb604452e60314c979e1d0e4e  00000000ffff000000000000ffff0000  d8a6debf9b73db35173c1a968773c07c  bb951d2eb604452e60314c979e1d0e4e fpsr=00000000
+fcmge v28.8h, v29.8h, v30.8h   6a4be1a3d7670fdf1ab53716565eb001  4786f05f6e4f2ddbd2d153f40583326e  8b3598c1a18c4062c04a9938b063c6fb  ffff0000ffff00000000ffffffffffff  4786f05f6e4f2ddbd2d153f40583326e  8b3598c1a18c4062c04a9938b063c6fb fpsr=00000000
+fcmge v29.8h, v30.8h, v31.8h   5beae505228477ee6d69f581fa08a2e1  9f8882bfa758144be6a8035ed1e66392  9b6367c5d4ca56f1efc04a9b9a2faa51  00000000ffff0000ffff00000000ffff  9f8882bfa758144be6a8035ed1e66392  9b6367c5d4ca56f1efc04a9b9a2faa51 fpsr=00000000
+fcmge v0.4h, v1.4h, v2.4h   15766f55ca7cdedee865ce585b441e24  ea1e893b4ebd87d8ee945fbf5b81b951  d4d6730400ef8f12a9c83ebe2f6c0153  00000000000000000000ffffffff0000  ea1e893b4ebd87d8ee945fbf5b81b951  d4d6730400ef8f12a9c83ebe2f6c0153 fpsr=00000000
+fcmge v1.4h, v2.4h, v3.4h   aeca8fd30893d4ccc43aeb1ca90309ab  8866c12068c40da490bbb042414a6f17  19c1c4c8950f76928a63f6bf258c03f9  00000000000000000000ffffffffffff  8866c12068c40da490bbb042414a6f17  19c1c4c8950f76928a63f6bf258c03f9 fpsr=00000000
+fcmge v2.4h, v3.4h, v4.4h   d3449b0427f16762457468b1dd0518af  473dc87c19c43db55a55b24d64b45a4d  5de4430df8af87f0256c66e70a0de9e5  0000000000000000ffff0000ffffffff  473dc87c19c43db55a55b24d64b45a4d  5de4430df8af87f0256c66e70a0de9e5 fpsr=00000000
+fcmge v3.4h, v4.4h, v5.4h   c36c07c21f7db28c823b6af78495dae0  fa998c2fd5104309ce2c2617eb275940  57ed1c46aca436f1b7aa69a8072c72fc  00000000000000000000000000000000  fa998c2fd5104309ce2c2617eb275940  57ed1c46aca436f1b7aa69a8072c72fc fpsr=00000000
+fcmge v4.4h, v5.4h, v6.4h   e4d8a3463db6ddb51c6b6603b029d577  e6eff6898ba8468ebfa8266f00d085dc  cf9f0006b3e4f4792f1608892d65a4f3  00000000000000000000ffff0000ffff  e6eff6898ba8468ebfa8266f00d085dc  cf9f0006b3e4f4792f1608892d65a4f3 fpsr=00000000
+fcmge v5.4h, v6.4h, v7.4h   bfee653b07810bec72e8b020e83df729  7130dd5b99fa2acf60035baedb734811  a9de98a29e6954ca2c52a488b471bc62  0000000000000000ffffffff0000ffff  7130dd5b99fa2acf60035baedb734811  a9de98a29e6954ca2c52a488b471bc62 fpsr=00000000
+fcmge v6.4h, v7.4h, v8.4h   bd96ea61bc7413c3f47a329a5dc367d5  f813a1ca066d682420c4b672f6327b17  1ff65276abbe0678a84080d55583469c  0000000000000000ffff00000000ffff  f813a1ca066d682420c4b672f6327b17  1ff65276abbe0678a84080d55583469c fpsr=00000000
+fcmge v7.4h, v8.4h, v9.4h   c40fdae840a8cda3b2078717ca2d313c  c909cb59a7239891d8cdeec8371831c3  0e06f8c9baabe4ee9360ec9fc2e3cb09  000000000000000000000000ffffffff  c909cb59a7239891d8cdeec8371831c3  0e06f8c9baabe4ee9360ec9fc2e3cb09 fpsr=00000000
+fcmge v8.4h, v9.4h, v10.4h   958980425a07b7380bff8d386973a6d9  af3fb5d6c32c65d68ec3b69d1db5a42c  20be905477cb4a364ee8f2601d1401e0  00000000000000000000ffffffff0000  af3fb5d6c32c65d68ec3b69d1db5a42c  20be905477cb4a364ee8f2601d1401e0 fpsr=00000000
+fcmge v9.4h, v10.4h, v11.4h   8939d85518cceb4a3323374d45b855d4  2018081dd32173b88d0d0fe9f2d3c71a  f0e52535744362f8b963423caeec09d7  0000000000000000ffff000000000000  2018081dd32173b88d0d0fe9f2d3c71a  f0e52535744362f8b963423caeec09d7 fpsr=00000000
+fcmge v10.4h, v11.4h, v12.4h   d0f849e5ccefda531341937d7888f90c  459ecda406ff99adba81bc55a20d344f  64804000a7e35e2503e4cf1045592d21  00000000000000000000ffff0000ffff  459ecda406ff99adba81bc55a20d344f  64804000a7e35e2503e4cf1045592d21 fpsr=00000000
+fcmge v11.4h, v12.4h, v13.4h   487430158bf81cc36b265d9629ce2ed4  745c92a61ef6bc4681c4be100aa40c17  507920e7cc31cee89c5da65f798a74cb  0000000000000000ffff000000000000  745c92a61ef6bc4681c4be100aa40c17  507920e7cc31cee89c5da65f798a74cb fpsr=00000000
+fcmge v12.4h, v13.4h, v14.4h   20d24fc1e5dbd5a9e4c2b02034de4517  173fa68c202204bb70e75be92c542b32  3e139556eeb14953f26beb869a1530d4  0000000000000000ffffffffffff0000  173fa68c202204bb70e75be92c542b32  3e139556eeb14953f26beb869a1530d4 fpsr=00000000
+fcmge v13.4h, v14.4h, v15.4h   6bd76453167c53c3b309029252fb23fb  514b489ee4763052e98820bf5dcbc1ab  c6b70f959d22a82de5275d1ea680f259  000000000000000000000000ffffffff  514b489ee4763052e98820bf5dcbc1ab  c6b70f959d22a82de5275d1ea680f259 fpsr=00000000
+fcmge v14.4h, v15.4h, v16.4h   55dd6c2f02f60718c9e363349751854a  10a91489e6c637fac352ef35bf0779cb  8d8cdcd6b9778eff562077cfc8f12c40  000000000000000000000000ffffffff  10a91489e6c637fac352ef35bf0779cb  8d8cdcd6b9778eff562077cfc8f12c40 fpsr=00000000
+fcmge v15.4h, v16.4h, v17.4h   1888920c0d2198932292c67055889f04  8bc3811e570f707a9d319838a789d525  536caf59fb13526220d43795b1da03c1  000000000000000000000000ffff0000  8bc3811e570f707a9d319838a789d525  536caf59fb13526220d43795b1da03c1 fpsr=00000000
+fcmge v16.4h, v17.4h, v18.4h   a983593768a01d7774136d56667be280  fba3aedd4221dae69b902fd72e7fdf06  9b000ae7ed5e3ce1178084d2ea84ca58  00000000000000000000ffffffff0000  fba3aedd4221dae69b902fd72e7fdf06  9b000ae7ed5e3ce1178084d2ea84ca58 fpsr=00000000
+fcmge v17.4h, v18.4h, v19.4h   666e06e8b1782b53d0aa1fa8889beef4  6679e7a289ffa61cbb0d26ed0ce9cb8a  f8f94a1228ec73b29efd9cdcd8c1a20f  00000000000000000000ffffffff0000  6679e7a289ffa61cbb0d26ed0ce9cb8a  f8f94a1228ec73b29efd9cdcd8c1a20f fpsr=00000000
+fcmge v18.4h, v19.4h, v20.4h   3f314ad24a5ed019691d616f0b7dfabe  4a3c64469fa1d882b5bc9b5d080cc5ec  42f8a7df1d57fa4391d7923a91b1170c  000000000000000000000000ffff0000  4a3c64469fa1d882b5bc9b5d080cc5ec  42f8a7df1d57fa4391d7923a91b1170c fpsr=00000000
+fcmge v19.4h, v20.4h, v21.4h   5cf1ba2cf6cbc33cbd23a20d182ba1d0  6d7ab8d775b9505acb93a617c10bfbcb  36c582b889a1e0ccc6ecb2db4f1851cd  00000000000000000000ffff00000000  6d7ab8d775b9505acb93a617c10bfbcb  36c582b889a1e0ccc6ecb2db4f1851cd fpsr=00000000
+fcmge v20.4h, v21.4h, v22.4h   ee0b0d3a71819d7ad8b5be10a3a12518  4834a7022624f0dafb69d3ec112cde3f  9b123a0ea88aabb5bc270e400edfe842  000000000000000000000000ffffffff  4834a7022624f0dafb69d3ec112cde3f  9b123a0ea88aabb5bc270e400edfe842 fpsr=00000000
+fcmge v21.4h, v22.4h, v23.4h   c8f6cf76e2d1e1293dd999ebf3f7c022  ade19a4f132225ce38c5ea7c4422cdea  95071b7dc7e1dc1230a56ce96e6b40c8  0000000000000000ffff000000000000  ade19a4f132225ce38c5ea7c4422cdea  95071b7dc7e1dc1230a56ce96e6b40c8 fpsr=00000000
+fcmge v22.4h, v23.4h, v24.4h   f5297710248df3b74da748177056846c  38739375b3a36084986e0c9ef21fbc26  421b1f10ef793c90718a8b3001aa6c20  00000000000000000000ffff00000000  38739375b3a36084986e0c9ef21fbc26  421b1f10ef793c90718a8b3001aa6c20 fpsr=00000000
+fcmge v23.4h, v24.4h, v25.4h   a2b2802d3bfa57b5689430a217c1772d  e9dfebd3d4d3dc66876324306c8ebfa0  479509c4c4d4f9abe265211c7796f390  0000000000000000ffffffff0000ffff  e9dfebd3d4d3dc66876324306c8ebfa0  479509c4c4d4f9abe265211c7796f390 fpsr=00000000
+fcmge v24.4h, v25.4h, v26.4h   83efe0f955ac15e67a9e25463fb7505a  12a9027938d6d018799ec9ac8e42a481  c3809a4d8c3f6676fb06e6eb029622ec  0000000000000000ffffffff00000000  12a9027938d6d018799ec9ac8e42a481  c3809a4d8c3f6676fb06e6eb029622ec fpsr=00000000
+fcmge v25.4h, v26.4h, v27.4h   5d8b8fe134cd021f2074143ebdb3bf5c  0d5848447488c4d127e86c364e9cd43e  460de3d802eb471b3efcb2f5cff07179  00000000000000000000ffffffff0000  0d5848447488c4d127e86c364e9cd43e  460de3d802eb471b3efcb2f5cff07179 fpsr=00000000
+fcmge v26.4h, v27.4h, v28.4h   cf9978f828d6d23fbd6aadd25680792f  9458e4384e1ffa93efcc72568a3a156b  283ab0f9b7ba90c0d6e702d103ea4720  00000000000000000000ffff00000000  9458e4384e1ffa93efcc72568a3a156b  283ab0f9b7ba90c0d6e702d103ea4720 fpsr=00000000
+fcmge v27.4h, v28.4h, v29.4h   cdaee7f8dc1d29fa066cc78bbf40230a  0577b5ba66aa85350113e78156c25425  0cb1f452c6b9a6c070c0be51039448c1  000000000000000000000000ffffffff  0577b5ba66aa85350113e78156c25425  0cb1f452c6b9a6c070c0be51039448c1 fpsr=00000000
+fcmge v28.4h, v29.4h, v30.4h   f6b105bb4a9a602074ec4bc0c93f6ccd  93a81995f1c5c2b03f8b93ac0d0c85b0  2477b7bee5e8cd2621f1cdecb35407a2  0000000000000000ffffffffffff0000  93a81995f1c5c2b03f8b93ac0d0c85b0  2477b7bee5e8cd2621f1cdecb35407a2 fpsr=00000000
+fcmge v29.4h, v30.4h, v31.4h   1f0236afc08c7260708af2776a84a0f9  746a056a698381cf6bc45739c22488da  1444274e010da32ff8e8dc7b6cda0c2e  0000000000000000ffffffff00000000  746a056a698381cf6bc45739c22488da  1444274e010da32ff8e8dc7b6cda0c2e fpsr=00000000
+
+FCMGT <Hd>, <Hn>, <Hm>
+
+fcmgt h0, h1, h2   ccc84e75a4b6de2f6279c5ab6c93604d  fa689a1c45b09951475894682c4dd363  314c57891b078e9f120b3609bb0328fe  00000000000000000000000000000000  fa689a1c45b09951475894682c4dd363  314c57891b078e9f120b3609bb0328fe fpsr=00000000
+fcmgt h1, h2, h3   6113225f09b36b4e936ad5780d1beab5  54a5be94773e38b8573a17de30871ca8  275b34e931f627b251f4908912f3897b  0000000000000000000000000000ffff  54a5be94773e38b8573a17de30871ca8  275b34e931f627b251f4908912f3897b fpsr=00000000
+fcmgt h2, h3, h4   eebc77e76ad6b3c15370b696a2213e5d  98c53eb55025cfbac313bea4daf4c1f6  a66c9e34b58afac44efa1a69658fccd1  0000000000000000000000000000ffff  98c53eb55025cfbac313bea4daf4c1f6  a66c9e34b58afac44efa1a69658fccd1 fpsr=00000000
+fcmgt h3, h4, h5   cb610a120c7f706ac0ed2864f9075be0  730f01619b46a6ca7a565528ecc91148  cb730e9b483844b37907613c35a97ab6  00000000000000000000000000000000  730f01619b46a6ca7a565528ecc91148  cb730e9b483844b37907613c35a97ab6 fpsr=00000000
+fcmgt h4, h5, h6   184fbfadf4cc948c50f938dcee57ef3c  d11bd210019826663bb29a5d6734bb15  c61902f25f47da432d2232d36324f32a  0000000000000000000000000000ffff  d11bd210019826663bb29a5d6734bb15  c61902f25f47da432d2232d36324f32a fpsr=00000000
+randV128: 5120 calls, 6738 iters
+fcmgt h5, h6, h7   0c42f67922e0e2f922a5c85f9ed52aa9  cf09d572be21acfdd14037b5d323488c  3addad97138c613c2a019ad998a982cd  0000000000000000000000000000ffff  cf09d572be21acfdd14037b5d323488c  3addad97138c613c2a019ad998a982cd fpsr=00000000
+fcmgt h6, h7, h8   c099d6b91c17643e0b78c7a91722ce41  32b1b0c8cd09f5ec0b1168a06400cfb7  789712376e41865a961f4efe72d6481f  00000000000000000000000000000000  32b1b0c8cd09f5ec0b1168a06400cfb7  789712376e41865a961f4efe72d6481f fpsr=00000000
+fcmgt h7, h8, h9   c3a22f79ebdd442df05474c14061cf52  0a0b550a8fd48bb9eaf41c2ab21262f8  00af1fd871d8e3dab478b4caa9e644ae  0000000000000000000000000000ffff  0a0b550a8fd48bb9eaf41c2ab21262f8  00af1fd871d8e3dab478b4caa9e644ae fpsr=00000000
+fcmgt h8, h9, h10   7b785efa38bcad1e8c4213a7b527db11  4721d340a2fde4dd6e1a64472411f1ec  53bde5721cdfde7f401066b5849c76ee  00000000000000000000000000000000  4721d340a2fde4dd6e1a64472411f1ec  53bde5721cdfde7f401066b5849c76ee fpsr=00000000
+fcmgt h9, h10, h11   45385e5e6e7a535efbe6dc4197b833b6  c129c3528d07487695c340d1f0eb5e19  54f1a320be430e29bcdf9a00ee419308  0000000000000000000000000000ffff  c129c3528d07487695c340d1f0eb5e19  54f1a320be430e29bcdf9a00ee419308 fpsr=00000000
+fcmgt h10, h11, h12   4199bd539f4fcb89d51cbaabf7767b05  8515f51f7961d77b24d41f7980efc7a3  a62dd4ea395176c7cab99c0eded4d6f4  0000000000000000000000000000ffff  8515f51f7961d77b24d41f7980efc7a3  a62dd4ea395176c7cab99c0eded4d6f4 fpsr=00000000
+fcmgt h11, h12, h13   79b3408c89bb9462d8be90268932a1c1  07766c2a0872b1c80149123f632051e4  c8ceb99eedb0c11ac382a22227b99a15  0000000000000000000000000000ffff  07766c2a0872b1c80149123f632051e4  c8ceb99eedb0c11ac382a22227b99a15 fpsr=00000000
+fcmgt h12, h13, h14   b4fe0c88bbbb5aec9a5a66485947de5b  8a5512cfe8f5065371cec9cde548da72  672d93b2666ff9f1b7662b4fa66a41aa  00000000000000000000000000000000  8a5512cfe8f5065371cec9cde548da72  672d93b2666ff9f1b7662b4fa66a41aa fpsr=00000000
+fcmgt h13, h14, h15   ae57ab76b4f0bd50abd41fac8163c61e  e379da770b4e788382b481e726820a9f  4bdb3ea4e7a1ed00630f91176b2e16d3  00000000000000000000000000000000  e379da770b4e788382b481e726820a9f  4bdb3ea4e7a1ed00630f91176b2e16d3 fpsr=00000000
+fcmgt h14, h15, h16   570842c0d748dc166dac9d76363613b0  a6e31fc031e369016109c7164b96d985  1c86566fcf7464cd2b9ab04df1c694c1  00000000000000000000000000000000  a6e31fc031e369016109c7164b96d985  1c86566fcf7464cd2b9ab04df1c694c1 fpsr=00000000
+fcmgt h15, h16, h17   d50292e1b29dfb7f1dd75b0b10e496e2  952126d9db4e6b70a3dd4275948f488c  69b35b0e249b632fd45c6682eae7db96  0000000000000000000000000000ffff  952126d9db4e6b70a3dd4275948f488c  69b35b0e249b632fd45c6682eae7db96 fpsr=00000000
+fcmgt h16, h17, h18   4d4949b42edf8d6deb7e375f0edd2901  af74b1ee10195cec0f4f6ed1f0c89a8b  11436a9c62db595d0d62e8cc8c0619cb  00000000000000000000000000000000  af74b1ee10195cec0f4f6ed1f0c89a8b  11436a9c62db595d0d62e8cc8c0619cb fpsr=00000000
+fcmgt h17, h18, h19   cf85558f14c4b911b21db824d035488b  bc27bcd169747bae3c9f3b4c6abc0a99  c8df2a41411bc500ac2f1278693d5b5e  00000000000000000000000000000000  bc27bcd169747bae3c9f3b4c6abc0a99  c8df2a41411bc500ac2f1278693d5b5e fpsr=00000000
+fcmgt h18, h19, h20   836b0850a9b271e6225d211d0a375902  eee40c6120e5f14fe50826f947e8e3f5  3f89bfd8e791cc7d9ada21659e79481a  00000000000000000000000000000000  eee40c6120e5f14fe50826f947e8e3f5  3f89bfd8e791cc7d9ada21659e79481a fpsr=00000000
+fcmgt h19, h20, h21   76412660543d6fd3d86212932bbbe000  c9b9dd8421b639c349ed52ecb6164fc8  5848978e46424f94d4b7f28e6e9eb6fc  0000000000000000000000000000ffff  c9b9dd8421b639c349ed52ecb6164fc8  5848978e46424f94d4b7f28e6e9eb6fc fpsr=00000000
+fcmgt h20, h21, h22   6c0661da891ead0266c8e8030f022510  3556c1424d5479543ea4f20a63f49603  c9341bb88f898f4a4826e314b707fabc  0000000000000000000000000000ffff  3556c1424d5479543ea4f20a63f49603  c9341bb88f898f4a4826e314b707fabc fpsr=00000000
+fcmgt h21, h22, h23   6db10f34028be8a46424504157636647  22d970458535870b430ba1b54a4f1449  416057522087341e639955ca473769c7  00000000000000000000000000000000  22d970458535870b430ba1b54a4f1449  416057522087341e639955ca473769c7 fpsr=00000000
+fcmgt h22, h23, h24   c41de5a9a4369c53e9a8998922584b9c  ba616b614674e686aeec766f0d9c1f18  49de621b46ab8121941fd0eaf79c0dbc  0000000000000000000000000000ffff  ba616b614674e686aeec766f0d9c1f18  49de621b46ab8121941fd0eaf79c0dbc fpsr=00000000
+fcmgt h23, h24, h25   cba607f0d5020daaec2abdddc8f9f637  36bda065bdae1d5f3c3b662eb6eeb2ec  441aed206a2f8fc9d6a3a9d2863c8409  00000000000000000000000000000000  36bda065bdae1d5f3c3b662eb6eeb2ec  441aed206a2f8fc9d6a3a9d2863c8409 fpsr=00000000
+fcmgt h24, h25, h26   2010516987a24bd6efe914d34162274d  2e00e4f0f6407306ee586097f7013444  f194345aacd9990ceb9757973b17b1e7  0000000000000000000000000000ffff  2e00e4f0f6407306ee586097f7013444  f194345aacd9990ceb9757973b17b1e7 fpsr=00000000
+fcmgt h25, h26, h27   770067453a6b5d5e4f8af6c5f11c6a44  77144ed2e9a7943df50a9abd5fec30c9  24439aa4ca80cf884edf2f0f219c44fb  00000000000000000000000000000000  77144ed2e9a7943df50a9abd5fec30c9  24439aa4ca80cf884edf2f0f219c44fb fpsr=00000000
+fcmgt h26, h27, h28   e6c01d8424c8e4f73d5691049421ced4  20552bc64463ef6debba5745bffc7897  9780545f30dd205d80846b49dda703b8  0000000000000000000000000000ffff  20552bc64463ef6debba5745bffc7897  9780545f30dd205d80846b49dda703b8 fpsr=00000000
+fcmgt h27, h28, h29   18e42098ce1f6319f7ca9f3edc8fc306  9b999b5ed2feb9932762b2892f1fcda8  494b618cddef8d8c82870b447138ee1f  0000000000000000000000000000ffff  9b999b5ed2feb9932762b2892f1fcda8  494b618cddef8d8c82870b447138ee1f fpsr=00000000
+fcmgt h28, h29, h30   03a21aa73a48d5f098066eb39829702e  a71d181f944256d041f5120e94d15021  906040e130dc59baa6125d79658de90f  0000000000000000000000000000ffff  a71d181f944256d041f5120e94d15021  906040e130dc59baa6125d79658de90f fpsr=00000000
+fcmgt h29, h30, h31   b84f5e429cc0e8599bb7217399b9446b  bc53a295776f33ea594b6578747bafe7  0b194d4349276c8639e7ed7f38989f3e  00000000000000000000000000000000  bc53a295776f33ea594b6578747bafe7  0b194d4349276c8639e7ed7f38989f3e fpsr=00000000
+
+FCMGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>
+
+fcmgt v0.8h, v1.8h, v2.8h   facddaffa09f16f70cfec6510d265b0a  4f4f6f9381c7b492f77ecaf07bec345b  2da0207d7767849802581d77c3f9a695  ffffffff0000000000000000ffffffff  4f4f6f9381c7b492f77ecaf07bec345b  2da0207d7767849802581d77c3f9a695 fpsr=00000000
+fcmgt v1.8h, v2.8h, v3.8h   c6fd74754da43c45c4c2784ed4c5ef14  5df971583e957120fa42b9b8697c486d  f84ece6e5ea60d5f0a6136fb1fa8a0fb  ffffffff0000ffff00000000ffffffff  5df971583e957120fa42b9b8697c486d  f84ece6e5ea60d5f0a6136fb1fa8a0fb fpsr=00000000
+fcmgt v2.8h, v3.8h, v4.8h   6ddb0f30dde00f2b8601b1b9ee31e908  4d609623cdf8f982420a383a6706966e  eb97d4e9e2cff60557a492724b715572  ffffffffffff00000000ffffffff0000  4d609623cdf8f982420a383a6706966e  eb97d4e9e2cff60557a492724b715572 fpsr=00000000
+fcmgt v3.8h, v4.8h, v5.8h   410670686a8170e0b5f5b1fb7ac38b25  3017da5711e2f208da43e9a56f88ad43  124890bf379ebd824ae46d92a926213d  ffff00000000000000000000ffff0000  3017da5711e2f208da43e9a56f88ad43  124890bf379ebd824ae46d92a926213d fpsr=00000000
+fcmgt v4.8h, v5.8h, v6.8h   89d2d01267469cd427e6ddf09bb8b79e  7804098b92d4eee3c76789c85510737c  d5c454d6a84a2a044cdfc2388bc4515d  ffff0000ffff00000000ffffffffffff  7804098b92d4eee3c76789c85510737c  d5c454d6a84a2a044cdfc2388bc4515d fpsr=00000000
+fcmgt v5.8h, v6.8h, v7.8h   5b7c0cac8a6eacd04fbc5097e6a0cfd6  9be7fa30276237c0f5920b496ec2856c  4dda389763a619c3e538f28588882be7  000000000000ffff0000ffffffff0000  9be7fa30276237c0f5920b496ec2856c  4dda389763a619c3e538f28588882be7 fpsr=00000000
+fcmgt v6.8h, v7.8h, v8.8h   5b162088f01e75208648557c4486c98f  2f8dd266dc77dde249740f5d95b5837e  89846dc1d49b2d877bd018d2ca618113  ffff00000000000000000000ffff0000  2f8dd266dc77dde249740f5d95b5837e  89846dc1d49b2d877bd018d2ca618113 fpsr=00000000
+fcmgt v7.8h, v8.8h, v9.8h   df701cbb96870ada29659ee18ec21d22  e34c8cb11654c96eb2a9d104bb6f03f0  b53123945227844ef09465930959b516  0000000000000000ffff00000000ffff  e34c8cb11654c96eb2a9d104bb6f03f0  b53123945227844ef09465930959b516 fpsr=00000000
+fcmgt v8.8h, v9.8h, v10.8h   76b83a8d370871738a5c978d59cf4f2b  5881a50d454872ea3c9fc30d9d5accfb  2340bc820e425bb471354c56a52cd1a4  ffffffffffffffff00000000ffffffff  5881a50d454872ea3c9fc30d9d5accfb  2340bc820e425bb471354c56a52cd1a4 fpsr=00000000
+fcmgt v9.8h, v10.8h, v11.8h   e8d2dbfb3f91d4f2d38d61f86fd46630  d0acbb208887b5f7e9ba95f3eb607b03  9a3edbd8dffedcbfb8e7e62769c16e6a  0000ffffffffffff0000ffff0000ffff  d0acbb208887b5f7e9ba95f3eb607b03  9a3edbd8dffedcbfb8e7e62769c16e6a fpsr=00000000
+fcmgt v10.8h, v11.8h, v12.8h   1d9f0e6193d3b8db126aa33d3cf5e057  eadebc2e1362d6bd5ceb84d193024a96  b9570d5071d8f35b1bb6388e52a93603  000000000000ffffffff00000000ffff  eadebc2e1362d6bd5ceb84d193024a96  b9570d5071d8f35b1bb6388e52a93603 fpsr=00000000
+fcmgt v11.8h, v12.8h, v13.8h   c97a473b197d31339fdb17ec5f840a1d  15655a90a961c3d1b70b9461f0df9542  2ac6a386cea43260ae37625d482dd56a  0000ffffffff0000000000000000ffff  15655a90a961c3d1b70b9461f0df9542  2ac6a386cea43260ae37625d482dd56a fpsr=00000000
+fcmgt v12.8h, v13.8h, v14.8h   1dd58e9adff6be90891e406a7943d008  6a935c46ec9145fb8d630d8c37ec0a83  5687b0c4d3411dc10678e7283d9aeb41  ffffffff0000ffff0000ffff0000ffff  6a935c46ec9145fb8d630d8c37ec0a83  5687b0c4d3411dc10678e7283d9aeb41 fpsr=00000000
+fcmgt v13.8h, v14.8h, v15.8h   6adae56326fb94bd6be8868d067a5533  2a1c91a8ac80f105db63e0c6312baf96  68c5629da251a096cc62ef24185c7062  00000000000000000000ffffffff0000  2a1c91a8ac80f105db63e0c6312baf96  68c5629da251a096cc62ef24185c7062 fpsr=00000000
+fcmgt v14.8h, v15.8h, v16.8h   0111b20c3dd584fbd4b31122ed879b0a  ca4ee191c8ba1e78386b83f0cd2deb2c  3ba49c12d289d4c8832e7892771af6d8  00000000ffffffffffff00000000ffff  ca4ee191c8ba1e78386b83f0cd2deb2c  3ba49c12d289d4c8832e7892771af6d8 fpsr=00000000
+fcmgt v15.8h, v16.8h, v17.8h   b3e3a2d037b5f19691e9ee00cb51216a  89f051d1d1cee42cf5ec03b48b06cd6e  3d091687cd758d9f3d32b932d08c7690  0000ffff000000000000ffffffff0000  89f051d1d1cee42cf5ec03b48b06cd6e  3d091687cd758d9f3d32b932d08c7690 fpsr=00000000
+fcmgt v16.8h, v17.8h, v18.8h   e4822445b98ab9cb5ebd70dfc0e013b3  a8bf34224238e6dba26906da4105fafa  a6545620c8000472a525bb8a62059a8b  00000000ffff0000ffffffff00000000  a8bf34224238e6dba26906da4105fafa  a6545620c8000472a525bb8a62059a8b fpsr=00000000
+randV128: 5376 calls, 7090 iters
+fcmgt v17.8h, v18.8h, v19.8h   22bfe547b1d9d92db792528e4da48df8  1c8ec9a140b68c7f46cc75b4923a1c3a  94ef3b6cc255dd993a2f94c0cc3671e5  ffff0000ffffffffffffffffffff0000  1c8ec9a140b68c7f46cc75b4923a1c3a  94ef3b6cc255dd993a2f94c0cc3671e5 fpsr=00000000
+fcmgt v18.8h, v19.8h, v20.8h   fa254e49beae4e5a6e3d777c5132a57e  c42ae54453165c01253e5ca3f0503a01  04e656f95a0d9c23c95d984a937237ef  000000000000ffffffffffff0000ffff  c42ae54453165c01253e5ca3f0503a01  04e656f95a0d9c23c95d984a937237ef fpsr=00000000
+fcmgt v19.8h, v20.8h, v21.8h   b24a73008685f5fa86afa404906c4555  77298742e43b8b6ec5ec3ce6478fba4c  733222cd6bcc370320ebc8872b306e06  ffff0000000000000000ffffffff0000  77298742e43b8b6ec5ec3ce6478fba4c  733222cd6bcc370320ebc8872b306e06 fpsr=00000000
+fcmgt v20.8h, v21.8h, v22.8h   cb9328c51a53b6ad334c0baaa29ae1d0  74aa8e394b7d70b9abfeefae2ab6dc57  19a577c71cab6da7640a2221b558a241  ffff0000ffffffff00000000ffff0000  74aa8e394b7d70b9abfeefae2ab6dc57  19a577c71cab6da7640a2221b558a241 fpsr=00000000
+fcmgt v21.8h, v22.8h, v23.8h   daef63f91e993a35e6050c30a043d6d4  3f0c4e7f7a07802d93428480314aaa57  517a142a251678430103119eda7a8785  0000ffffffff000000000000ffff0000  3f0c4e7f7a07802d93428480314aaa57  517a142a251678430103119eda7a8785 fpsr=00000000
+fcmgt v22.8h, v23.8h, v24.8h   e899b15e29549ad627dc31383630b741  2dd0974af86886941fa1d98801e9e90e  2581fa299f982e8c1058c92005415e97  ffffffff00000000ffff000000000000  2dd0974af86886941fa1d98801e9e90e  2581fa299f982e8c1058c92005415e97 fpsr=00000000
+fcmgt v23.8h, v24.8h, v25.8h   f59013f53b86d591f8cf78c164648418  d86689ada99e2bb880aed3479ffb2118  cb0478c48b5e78c5dd4bf201313dbe00  0000000000000000ffffffff0000ffff  d86689ada99e2bb880aed3479ffb2118  cb0478c48b5e78c5dd4bf201313dbe00 fpsr=00000000
+fcmgt v24.8h, v25.8h, v26.8h   03d588bd552ceb6559e1e4cc29dd3c58  63ab6fa242aa8a555139d1e8b5b325eb  43a928e86fc0fa3240f28b6e58555062  ffffffff0000ffffffff000000000000  63ab6fa242aa8a555139d1e8b5b325eb  43a928e86fc0fa3240f28b6e58555062 fpsr=00000000
+fcmgt v25.8h, v26.8h, v27.8h   1cd699bf93a4cb91842a90c30277fb04  0f6710b77748dd5249107358859be001  ce9d4828c38aa66c9142d26b4310f488  ffff0000ffff0000ffffffff0000ffff  0f6710b77748dd5249107358859be001  ce9d4828c38aa66c9142d26b4310f488 fpsr=00000000
+fcmgt v26.8h, v27.8h, v28.8h   1b47ace2a0daaa5ac95c25667a9f6f14  5841b8fe3b72ba46586f037516378ff9  31e3f2fbe79f33d7afdd9ced5ceb9fb5  ffffffffffff0000ffffffff0000ffff  5841b8fe3b72ba46586f037516378ff9  31e3f2fbe79f33d7afdd9ced5ceb9fb5 fpsr=00000000
+fcmgt v27.8h, v28.8h, v29.8h   27745c3fd1e1537ad8c6fbf505e8ea91  4289d5e97acd0f065fcbe014c4baf51e  dc95b5a0088fb2282cbf78174a67ef43  ffff0000ffffffffffff000000000000  4289d5e97acd0f065fcbe014c4baf51e  dc95b5a0088fb2282cbf78174a67ef43 fpsr=00000000
+fcmgt v28.8h, v29.8h, v30.8h   85079bfb08c2389aa0b779333fa3660a  fae36b359cd0be3c16feee12265bdde4  32ef1fce095ed8b4774df50628775077  0000ffff0000ffff0000ffff00000000  fae36b359cd0be3c16feee12265bdde4  32ef1fce095ed8b4774df50628775077 fpsr=00000000
+fcmgt v29.8h, v30.8h, v31.8h   e8f3c4e75ecff99fc20c259dec5e95f7  82176d549909b0925016951a4c1d3fed  3db7f68d48503808a5f21298e34ba2c7  0000ffff00000000ffff0000ffffffff  82176d549909b0925016951a4c1d3fed  3db7f68d48503808a5f21298e34ba2c7 fpsr=00000000
+fcmgt v0.4h, v1.4h, v2.4h   b2a839507ba56a0c42801dc2895f9366  2c70ce7cc600216385e9f46c77431f37  8b6e4244fb91d6feb4bf35c9709ef08e  0000000000000000ffff0000ffffffff  2c70ce7cc600216385e9f46c77431f37  8b6e4244fb91d6feb4bf35c9709ef08e fpsr=00000000
+fcmgt v1.4h, v2.4h, v3.4h   83bd03c2e01864b64a4428e7b54e6dc8  6c761212df09ceb675d0a8b5cc6475ce  f2490c0808bd886cd37dac8fbe50261a  0000000000000000ffffffff0000ffff  6c761212df09ceb675d0a8b5cc6475ce  f2490c0808bd886cd37dac8fbe50261a fpsr=00000000
+fcmgt v2.4h, v3.4h, v4.4h   852ef456d82058d99cffa5ac1cdea46b  da46a89c7b376def1ccc1dfc0ac3ab3f  2a34dabc980ae75684383ea634b5e0dc  0000000000000000ffff00000000ffff  da46a89c7b376def1ccc1dfc0ac3ab3f  2a34dabc980ae75684383ea634b5e0dc fpsr=00000000
+fcmgt v3.4h, v4.4h, v5.4h   52ddc6834a469b48a4f21c0119d5ecc7  e030790216c64d2b14d9d28a0e1a3b6d  63df137c91b04a56f9ade8f0b8541b24  0000000000000000ffffffffffffffff  e030790216c64d2b14d9d28a0e1a3b6d  63df137c91b04a56f9ade8f0b8541b24 fpsr=00000000
+fcmgt v4.4h, v5.4h, v6.4h   8fde7a273ab15bf896325605ecd70c87  6b2a4c33f6edf429f5e5b70a68830783  471b6fb323b1ba4c2cda5a969e841035  000000000000000000000000ffff0000  6b2a4c33f6edf429f5e5b70a68830783  471b6fb323b1ba4c2cda5a969e841035 fpsr=00000000
+fcmgt v5.4h, v6.4h, v7.4h   e640d7a069fa4eb7b32f2d8ae3c37a90  0b9a7225357bfb3e71876c4f2951263b  d3e4cd28718e2df42ee5e40370b961ec  0000000000000000ffffffff00000000  0b9a7225357bfb3e71876c4f2951263b  d3e4cd28718e2df42ee5e40370b961ec fpsr=00000000
+fcmgt v6.4h, v7.4h, v8.4h   02bd636df73f2abb11fbc82927ba5238  4d8b5d06049a6bd90e83a691271b29ee  ed40d13919bbdf5f03de8322a0fb2a37  0000000000000000ffff0000ffff0000  4d8b5d06049a6bd90e83a691271b29ee  ed40d13919bbdf5f03de8322a0fb2a37 fpsr=00000000
+fcmgt v7.4h, v8.4h, v9.4h   d49b6f3c670658439d4eb137aded63a4  f306fa0ba393b5a5204391900adeec5f  8b27ea22f229988a707daf5ae068e019  00000000000000000000ffffffff0000  f306fa0ba393b5a5204391900adeec5f  8b27ea22f229988a707daf5ae068e019 fpsr=00000000
+fcmgt v8.4h, v9.4h, v10.4h   28c0fa42faacbf9c7b8df99ec2d3d2a6  194e2ac1ca815a0b41a01f9003671bb9  699a577c134d6c0eae7a3e53f85ac2a5  0000000000000000ffff0000ffffffff  194e2ac1ca815a0b41a01f9003671bb9  699a577c134d6c0eae7a3e53f85ac2a5 fpsr=00000000
+fcmgt v9.4h, v10.4h, v11.4h   df59bcc44e33b0e2ea2b5be864f5d39b  1c52399a36e7a32e880a04a60e1ecd32  bf64ed2878655b0a729a509215b5b6fc  00000000000000000000000000000000  1c52399a36e7a32e880a04a60e1ecd32  bf64ed2878655b0a729a509215b5b6fc fpsr=00000000
+fcmgt v10.4h, v11.4h, v12.4h   914c368ff203ed34a0a37744f656db65  d11d2437cecb24b797968bc392177b2c  af522c4219b801fac4c5d34f92cf5448  0000000000000000ffffffffffffffff  d11d2437cecb24b797968bc392177b2c  af522c4219b801fac4c5d34f92cf5448 fpsr=00000000
+fcmgt v11.4h, v12.4h, v13.4h   84eb38a57948af2584e9f4b0f91d5b36  96b6f7a18c7797b988aa3ee8cb6c37a7  34e735d5c704f766cf77c45e97cc0261  0000000000000000ffffffff0000ffff  96b6f7a18c7797b988aa3ee8cb6c37a7  34e735d5c704f766cf77c45e97cc0261 fpsr=00000000
+fcmgt v12.4h, v13.4h, v14.4h   a62fd869779967e7a8a0076c708753ba  765f3a04a713868e76d501da1427555f  35bad58728d05a6e16bed25d5c141f97  0000000000000000ffffffff0000ffff  765f3a04a713868e76d501da1427555f  35bad58728d05a6e16bed25d5c141f97 fpsr=00000000
+fcmgt v13.4h, v14.4h, v15.4h   e860abfd9dff1a627b145f499fd55648  978432c56ef6d0308eb1413709277327  d14bd900abc4caa51affc15d5d7fe43e  00000000000000000000ffff0000ffff  978432c56ef6d0308eb1413709277327  d14bd900abc4caa51affc15d5d7fe43e fpsr=00000000
+fcmgt v14.4h, v15.4h, v16.4h   a1c6aeff8595bae39e6f67ded650cfe4  98561e181db0d64c140a857675cc5db8  2ce9b16bf5eed6b66c1e939eb6ef550e  00000000000000000000ffffffffffff  98561e181db0d64c140a857675cc5db8  2ce9b16bf5eed6b66c1e939eb6ef550e fpsr=00000000
+fcmgt v15.4h, v16.4h, v17.4h   a466bcd73ddfd2cfc4ecbc88087dd9cc  e6bb6c56588e1753bb035114663621c3  15c39b26ace0e09edd66e4be6abd26b7  0000000000000000ffffffff00000000  e6bb6c56588e1753bb035114663621c3  15c39b26ace0e09edd66e4be6abd26b7 fpsr=00000000
+fcmgt v16.4h, v17.4h, v18.4h   3903cf7132a315ef70341799b3089237  204edc14dfe3bf6400f4e2e56ee03a2c  364c94e727e05b78152fb5863748ec11  000000000000000000000000ffffffff  204edc14dfe3bf6400f4e2e56ee03a2c  364c94e727e05b78152fb5863748ec11 fpsr=00000000
+fcmgt v17.4h, v18.4h, v19.4h   2a6dfb7fbe70bb8fa34c600c8407d6dc  a78f141bc3d494f3bf3ed16134a6afd8  d9de957897dd4d774506667c869ede25  000000000000000000000000ffffffff  a78f141bc3d494f3bf3ed16134a6afd8  d9de957897dd4d774506667c869ede25 fpsr=00000000
+fcmgt v18.4h, v19.4h, v20.4h   5e8cd79eca77b6714fcac316ae53585f  0942d02ba94258aae473099148d11399  a8185d88917e3f2b941490902da37bfc  00000000000000000000ffffffff0000  0942d02ba94258aae473099148d11399  a8185d88917e3f2b941490902da37bfc fpsr=00000000
+fcmgt v19.4h, v20.4h, v21.4h   7b7cd764d2d4d13626fbb2a872255e13  b7878767b6b29d74a76d359e317cec8a  0805d8a9bc2af17fd458f537c4815b60  0000000000000000ffffffffffff0000  b7878767b6b29d74a76d359e317cec8a  0805d8a9bc2af17fd458f537c4815b60 fpsr=00000000
+fcmgt v20.4h, v21.4h, v22.4h   99663f57640b0affb03b62f9cf30d7c8  4f108aa2e9a29fd1cf6e0ae78b2aad5f  26b514f8f627850d74fb25fef716af30  000000000000000000000000ffffffff  4f108aa2e9a29fd1cf6e0ae78b2aad5f  26b514f8f627850d74fb25fef716af30 fpsr=00000000
+fcmgt v21.4h, v22.4h, v23.4h   b1d6355ef2fd3d495644e79fa5868dab  b951595fe57bf9978bfa9a0be2fb1014  b703d89bca0967df2d502478a4f27b68  00000000000000000000000000000000  b951595fe57bf9978bfa9a0be2fb1014  b703d89bca0967df2d502478a4f27b68 fpsr=00000000
+fcmgt v22.4h, v23.4h, v24.4h   12113144381b8155f533c2d97b6d02bb  9bb6bbc0ccef26f4602f3590b79a2f4c  1e8ade88073bea8e9da31c398c9412a9  0000000000000000ffffffff0000ffff  9bb6bbc0ccef26f4602f3590b79a2f4c  1e8ade88073bea8e9da31c398c9412a9 fpsr=00000000
+fcmgt v23.4h, v24.4h, v25.4h   c1dd250be1619f55c27950f284f079ec  0f4fb8222381633df7782224a33e4898  2bac3a02c40d130b133f1574aa072331  00000000000000000000ffffffffffff  0f4fb8222381633df7782224a33e4898  2bac3a02c40d130b133f1574aa072331 fpsr=00000000
+fcmgt v24.4h, v25.4h, v26.4h   ec3b3392f6bc009e693b855043b5593f  08d7779fa0d091864d22f56c38d874ae  16e11ca0948decf87be9174cabfb3f70  000000000000000000000000ffffffff  08d7779fa0d091864d22f56c38d874ae  16e11ca0948decf87be9174cabfb3f70 fpsr=00000000
+fcmgt v25.4h, v26.4h, v27.4h   a5a8ad2103223f945580f6487143957c  a8d5a294b0cc59784b7bec5e5ad235af  24380ded3473d7b38f3051cf8c1de6dd  0000000000000000ffff0000ffffffff  a8d5a294b0cc59784b7bec5e5ad235af  24380ded3473d7b38f3051cf8c1de6dd fpsr=00000000
+fcmgt v26.4h, v27.4h, v28.4h   742f80449188697f778b434e182c68b7  0fa2845ce80772de948594ef50c09901  55f0c0d7c9e56e939ff63daa0c03ee41  0000000000000000ffff0000ffffffff  0fa2845ce80772de948594ef50c09901  55f0c0d7c9e56e939ff63daa0c03ee41 fpsr=00000000
+fcmgt v27.4h, v28.4h, v29.4h   bf10594bda6d3d995d73c51feefb51ec  c96f43003534bec2840cc0a18bdee379  9a7aaf1d432f8941c8189bb04cc9d8af  0000000000000000ffff000000000000  c96f43003534bec2840cc0a18bdee379  9a7aaf1d432f8941c8189bb04cc9d8af fpsr=00000000
+fcmgt v28.4h, v29.4h, v30.4h   6c7f570cdf6c12390428d71d6f443be9  9c865d0a2126d2a048c488f890be0ecc  19b2a3014bfec9e08d2c36d16c0890b9  0000000000000000ffff00000000ffff  9c865d0a2126d2a048c488f890be0ecc  19b2a3014bfec9e08d2c36d16c0890b9 fpsr=00000000
+fcmgt v29.4h, v30.4h, v31.4h   991669663a680fd7b7c0ab3674710d0f  5301df49a36410a02d62ab6561bb9b4f  b218414ed32c3bd38ca6630c7753dc7a  0000000000000000ffff00000000ffff  5301df49a36410a02d62ab6561bb9b4f  b218414ed32c3bd38ca6630c7753dc7a fpsr=00000000