From 8fa9e36f7c269563feebbf41a7a658bc7879ad39 Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Fri, 15 Jan 2021 18:46:00 +0100 Subject: [PATCH] Bug 431556 - Complete arm64 FADDP v8.2 instruction support started in 413547. Patch from/by Assad Hashmi (assad.hashmi@linaro.org). --- VEX/priv/guest_arm64_defs.h | 11 ++ VEX/priv/guest_arm64_toIR.c | 144 +++++++++++--- none/tests/arm64/fp_and_simd_v82.c | 208 +++++++++++++------- none/tests/arm64/fp_and_simd_v82.stdout.exp | 161 +++++++++------ 4 files changed, 356 insertions(+), 168 deletions(-) diff --git a/VEX/priv/guest_arm64_defs.h b/VEX/priv/guest_arm64_defs.h index b2094d61fb..a8d1685510 100644 --- a/VEX/priv/guest_arm64_defs.h +++ b/VEX/priv/guest_arm64_defs.h @@ -301,6 +301,17 @@ typedef } ARM64Condcode; +/* Vector element size specifiers */ + +typedef + enum { + ARM64VSizeH = 0, /* 16 bits (integer halfword or half-precision FP) */ + ARM64VSizeS = 1, /* 32 bits (integer shortword or single-precision FP) */ + ARM64VSizeD = 2 /* 64 bits (integer word or double-precision FP) */ + } + ARM64VecESize; + + #endif /* ndef __VEX_GUEST_ARM64_DEFS_H */ /*---------------------------------------------------------------*/ diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c index a296565591..89231be29d 100644 --- a/VEX/priv/guest_arm64_toIR.c +++ b/VEX/priv/guest_arm64_toIR.c @@ -8855,50 +8855,78 @@ void updateQCFLAGwithDifference ( IRTemp qres, IRTemp nres ) /* Generate IR to rearrange two vector values in a way which is useful - for doing S/D add-pair etc operations. There are 3 cases: + for doing S/D/H add-pair etc operations. There are 5 cases: 2d: [m1 m0] [n1 n0] --> [m1 n1] [m0 n0] 4s: [m3 m2 m1 m0] [n3 n2 n1 n0] --> [m3 m1 n3 n1] [m2 m0 n2 n0] - 2s: [m2 m2 m1 m0] [n3 n2 n1 n0] --> [0 0 m1 n1] [0 0 m0 n0] + 8h: [m7 m6 m5 m4 m3 m2 m1 m0] [n7 n6 n5 n4 n3 n2 n1 n0] --> + [m7 m5 n7 n5 m3 m1 n3 n1] [m6 m4 n6 n4 m2 m0 n2 n0] - The cases are distinguished as follows: - isD == True, bitQ == 1 => 2d - isD == False, bitQ == 1 => 4s - isD == False, bitQ == 0 => 2s + 2s: [m3 m2 m1 m0] [n3 n2 n1 n0] --> [0 0 m1 n1] [0 0 m0 n0] + + 4h: [m7 m6 m5 m4 m3 m2 m1 m0] [n7 n6 n5 n4 n3 n2 n1 n0] --> + [ 0 0 0 0 m3 m1 n3 n1] [ 0 0 0 0 m2 m0 n2 n0] */ static void math_REARRANGE_FOR_FLOATING_PAIRWISE ( /*OUT*/IRTemp* rearrL, /*OUT*/IRTemp* rearrR, - IRTemp vecM, IRTemp vecN, Bool isD, UInt bitQ + IRTemp vecM, IRTemp vecN, ARM64VecESize sz, UInt bitQ ) { vassert(rearrL && *rearrL == IRTemp_INVALID); vassert(rearrR && *rearrR == IRTemp_INVALID); *rearrL = newTempV128(); *rearrR = newTempV128(); - if (isD) { - // 2d case - vassert(bitQ == 1); - assign(*rearrL, binop(Iop_InterleaveHI64x2, mkexpr(vecM), mkexpr(vecN))); - assign(*rearrR, binop(Iop_InterleaveLO64x2, mkexpr(vecM), mkexpr(vecN))); - } - else if (!isD && bitQ == 1) { - // 4s case - assign(*rearrL, binop(Iop_CatOddLanes32x4, mkexpr(vecM), mkexpr(vecN))); - assign(*rearrR, binop(Iop_CatEvenLanes32x4, mkexpr(vecM), mkexpr(vecN))); - } else { - // 2s case - vassert(!isD && bitQ == 0); - IRTemp m1n1m0n0 = newTempV128(); - IRTemp m0n0m1n1 = newTempV128(); - assign(m1n1m0n0, binop(Iop_InterleaveLO32x4, - mkexpr(vecM), mkexpr(vecN))); - assign(m0n0m1n1, triop(Iop_SliceV128, - mkexpr(m1n1m0n0), mkexpr(m1n1m0n0), mkU8(8))); - assign(*rearrL, unop(Iop_ZeroHI64ofV128, mkexpr(m1n1m0n0))); - assign(*rearrR, unop(Iop_ZeroHI64ofV128, mkexpr(m0n0m1n1))); + + switch (sz) { + case ARM64VSizeD: + // 2d case + vassert(bitQ == 1); + assign(*rearrL, binop(Iop_InterleaveHI64x2, mkexpr(vecM), mkexpr(vecN))); + assign(*rearrR, binop(Iop_InterleaveLO64x2, mkexpr(vecM), mkexpr(vecN))); + break; + + case ARM64VSizeS: + if (bitQ == 1) { + // 4s case + assign(*rearrL, binop(Iop_CatOddLanes32x4, mkexpr(vecM), mkexpr(vecN))); + assign(*rearrR, binop(Iop_CatEvenLanes32x4, mkexpr(vecM), mkexpr(vecN))); + } else { + // 2s case + IRTemp m1n1m0n0 = newTempV128(); + IRTemp m0n0m1n1 = newTempV128(); + assign(m1n1m0n0, binop(Iop_InterleaveLO32x4, + mkexpr(vecM), mkexpr(vecN))); + assign(m0n0m1n1, triop(Iop_SliceV128, + mkexpr(m1n1m0n0), mkexpr(m1n1m0n0), mkU8(8))); + assign(*rearrL, unop(Iop_ZeroHI64ofV128, mkexpr(m1n1m0n0))); + assign(*rearrR, unop(Iop_ZeroHI64ofV128, mkexpr(m0n0m1n1))); + } + break; + + case ARM64VSizeH: + if (bitQ == 1) { + // 8h case + assign(*rearrL, binop(Iop_CatOddLanes16x8, mkexpr(vecM), mkexpr(vecN))); + assign(*rearrR, binop(Iop_CatEvenLanes16x8, mkexpr(vecM), mkexpr(vecN))); + } else { + // 4h case + IRTemp m3m1n3n1 = newTempV128(); + IRTemp m2m0n2n0 = newTempV128(); + assign(m3m1n3n1, binop(Iop_CatOddLanes16x8, mkexpr(vecM), mkexpr(vecN))); + assign(m2m0n2n0, binop(Iop_CatEvenLanes16x8, mkexpr(vecM), mkexpr(vecN))); + assign(*rearrL, unop(Iop_ZeroHI64ofV128, + binop(Iop_CatEvenLanes32x4, mkexpr(m3m1n3n1), + mkexpr(m3m1n3n1)))); + assign(*rearrR, unop(Iop_ZeroHI64ofV128, + binop(Iop_CatEvenLanes32x4, mkexpr(m2m0n2n0), + mkexpr(m2m0n2n0)))); + } + break; + + default: vpanic("math_REARRANGE_FOR_FLOATING_PAIRWISE"); } } @@ -12608,8 +12636,8 @@ Bool dis_AdvSIMD_three_same(/*MB_OUT*/DisResult* dres, UInt insn) IRTemp preR = IRTemp_INVALID; assign(srcN, getQReg128(nn)); assign(srcM, getQReg128(mm)); - math_REARRANGE_FOR_FLOATING_PAIRWISE(&preL, &preR, - srcM, srcN, isD, bitQ); + math_REARRANGE_FOR_FLOATING_PAIRWISE(&preL, &preR, srcM, srcN, + isD ? ARM64VSizeD : ARM64VSizeS, bitQ); putQReg128( dd, math_MAYBE_ZERO_HI64_fromE( bitQ, @@ -12631,8 +12659,8 @@ Bool dis_AdvSIMD_three_same(/*MB_OUT*/DisResult* dres, UInt insn) IRTemp preR = IRTemp_INVALID; assign(srcN, getQReg128(nn)); assign(srcM, getQReg128(mm)); - math_REARRANGE_FOR_FLOATING_PAIRWISE(&preL, &preR, - srcM, srcN, isD, bitQ); + math_REARRANGE_FOR_FLOATING_PAIRWISE(&preL, &preR, srcM, srcN, + isD ? ARM64VSizeD : ARM64VSizeS, bitQ); putQReg128( dd, math_MAYBE_ZERO_HI64_fromE( bitQ, @@ -12740,6 +12768,56 @@ Bool dis_AdvSIMD_three_same_extra(/*MB_OUT*/DisResult* dres, UInt insn) # undef INSN } +static +Bool dis_AdvSIMD_three_same_fp16(/*MB_OUT*/DisResult* dres, UInt insn) +{ + /* 31 30 29 28 23 21 20 15 10 9 4 + 0 Q U 01110 size 0 m opcode 1 n d + Decode fields: u,size,opcode + */ +# define INSN(_bMax,_bMin) SLICE_UInt(insn, (_bMax), (_bMin)) + if (INSN(31,31) != 0 + || INSN(28,24) != BITS5(0,1,1,1,0) + || INSN(21,21) != 0 + || INSN(10,10) != 1) { + return False; + } + UInt bitQ = INSN(30,30); + UInt bitU = INSN(29,29); + UInt size = INSN(23,22); + UInt mm = INSN(20,16); + UInt opcode = INSN(15,11); + UInt nn = INSN(9,5); + UInt dd = INSN(4,0); + vassert(size < 4); + vassert(mm < 32 && nn < 32 && dd < 32); + + if (bitU == 1 && size == X01 && opcode == BITS5(0,0,0,1,0)) { + /* -------- 1,01,00010 FADDP 4h_4h_4h, 8h_8h_8h -------- */ + IROp opADD = mkVecADDF(1); //bitQ == 0 ? 0 : 1); + IRTemp srcN = newTempV128(); + IRTemp srcM = newTempV128(); + IRTemp preL = IRTemp_INVALID; + IRTemp preR = IRTemp_INVALID; + assign(srcN, getQReg128(nn)); + assign(srcM, getQReg128(mm)); + math_REARRANGE_FOR_FLOATING_PAIRWISE(&preL, &preR, srcM, srcN, + ARM64VSizeH, bitQ); + putQReg128( + dd, math_MAYBE_ZERO_HI64_fromE( + bitQ, + triop(opADD, mkexpr(mk_get_IR_rounding_mode()), + mkexpr(preL), mkexpr(preR)))); + const HChar* arr = bitQ == 0 ? "4h" : "8h"; + DIP("%s %s.%s, %s.%s, %s.%s\n", "faddp", + nameQReg128(dd), arr, nameQReg128(nn), arr, nameQReg128(mm), arr); + return True; + } + + return False; +# undef INSN +} + static Bool dis_AdvSIMD_two_reg_misc(/*MB_OUT*/DisResult* dres, UInt insn) @@ -15008,6 +15086,8 @@ Bool dis_ARM64_simd_and_fp(/*MB_OUT*/DisResult* dres, UInt insn, if (UNLIKELY(ok)) return True; ok = dis_AdvSIMD_three_same_extra(dres, insn); if (UNLIKELY(ok)) return True; + ok = dis_AdvSIMD_three_same_fp16(dres, insn); + if (UNLIKELY(ok)) return True; ok = dis_AdvSIMD_two_reg_misc(dres, insn); if (UNLIKELY(ok)) return True; ok = dis_AdvSIMD_vector_x_indexed_elem(dres, insn); diff --git a/none/tests/arm64/fp_and_simd_v82.c b/none/tests/arm64/fp_and_simd_v82.c index 8c66ff27bd..1878fbd0b6 100644 --- a/none/tests/arm64/fp_and_simd_v82.c +++ b/none/tests/arm64/fp_and_simd_v82.c @@ -2126,42 +2126,11 @@ void test_SMAXV ( void ) /* ---------------------------------------------------------------- */ /* -- Tests, in the same order that they appear in main() -- */ +/* -- The full list of instructions tested appear at the end of -- */ +/* -- this file. -- */ /* ---------------------------------------------------------------- */ -// ======================== FP ======================== - -GEN_TWOVEC_TEST(faddp_h_2h_00_00, "faddp h0, v0.2h", 0, 0) -GEN_TWOVEC_TEST(faddp_h_2h_01_01, "faddp h1, v1.2h", 1, 1) -GEN_TWOVEC_TEST(faddp_h_2h_02_02, "faddp h2, v2.2h", 2, 2) -GEN_TWOVEC_TEST(faddp_h_2h_03_03, "faddp h3, v3.2h", 3, 3) -GEN_TWOVEC_TEST(faddp_h_2h_04_04, "faddp h4, v4.2h", 4, 4) -GEN_TWOVEC_TEST(faddp_h_2h_05_05, "faddp h5, v5.2h", 5, 5) -GEN_TWOVEC_TEST(faddp_h_2h_06_06, "faddp h6, v6.2h", 6, 6) -GEN_TWOVEC_TEST(faddp_h_2h_07_07, "faddp h7, v7.2h", 7, 7) -GEN_TWOVEC_TEST(faddp_h_2h_08_08, "faddp h8, v8.2h", 8, 8) -GEN_TWOVEC_TEST(faddp_h_2h_09_09, "faddp h9, v9.2h", 9, 9) -GEN_TWOVEC_TEST(faddp_h_2h_10_10, "faddp h10, v10.2h", 10, 10) -GEN_TWOVEC_TEST(faddp_h_2h_11_11, "faddp h11, v11.2h", 11, 11) -GEN_TWOVEC_TEST(faddp_h_2h_12_12, "faddp h12, v12.2h", 12, 12) -GEN_TWOVEC_TEST(faddp_h_2h_13_13, "faddp h13, v13.2h", 13, 13) -GEN_TWOVEC_TEST(faddp_h_2h_14_14, "faddp h14, v14.2h", 14, 14) -GEN_TWOVEC_TEST(faddp_h_2h_15_15, "faddp h15, v15.2h", 15, 15) -GEN_TWOVEC_TEST(faddp_h_2h_16_16, "faddp h16, v16.2h", 16, 16) -GEN_TWOVEC_TEST(faddp_h_2h_17_17, "faddp h17, v17.2h", 17, 17) -GEN_TWOVEC_TEST(faddp_h_2h_18_18, "faddp h18, v18.2h", 18, 18) -GEN_TWOVEC_TEST(faddp_h_2h_19_19, "faddp h19, v19.2h", 19, 19) -GEN_TWOVEC_TEST(faddp_h_2h_20_20, "faddp h20, v20.2h", 20, 20) -GEN_TWOVEC_TEST(faddp_h_2h_21_21, "faddp h21, v21.2h", 21, 21) -GEN_TWOVEC_TEST(faddp_h_2h_22_22, "faddp h22, v22.2h", 22, 22) -GEN_TWOVEC_TEST(faddp_h_2h_23_23, "faddp h23, v23.2h", 23, 23) -GEN_TWOVEC_TEST(faddp_h_2h_24_24, "faddp h24, v24.2h", 24, 24) -GEN_TWOVEC_TEST(faddp_h_2h_25_25, "faddp h25, v25.2h", 25, 25) -GEN_TWOVEC_TEST(faddp_h_2h_26_26, "faddp h26, v26.2h", 26, 26) -GEN_TWOVEC_TEST(faddp_h_2h_27_27, "faddp h27, v27.2h", 27, 27) -GEN_TWOVEC_TEST(faddp_h_2h_28_28, "faddp h28, v28.2h", 28, 28) -GEN_TWOVEC_TEST(faddp_h_2h_29_29, "faddp h29, v29.2h", 29, 29) -GEN_TWOVEC_TEST(faddp_h_2h_30_30, "faddp h30, v30.2h", 30, 30) -GEN_TWOVEC_TEST(faddp_h_2h_31_31, "faddp h31, v31.2h", 31, 31) +// FADDP , . GEN_TWOVEC_TEST(faddp_h_2h_00_01, "faddp h0, v1.2h", 0, 1) GEN_TWOVEC_TEST(faddp_h_2h_01_02, "faddp h1, v2.2h", 1, 2) @@ -2195,6 +2164,70 @@ GEN_TWOVEC_TEST(faddp_h_2h_28_29, "faddp h28, v29.2h", 28, 29) GEN_TWOVEC_TEST(faddp_h_2h_29_30, "faddp h29, v30.2h", 29, 30) GEN_TWOVEC_TEST(faddp_h_2h_30_31, "faddp h30, v31.2h", 30, 31) +// FADDP ., ., . + +GEN_THREEVEC_TEST(faddp_8h_00_01_02, "faddp v0.8h, v1.8h, v2.8h", 0, 1, 2) +GEN_THREEVEC_TEST(faddp_8h_01_02_03, "faddp v1.8h, v2.8h, v3.8h", 1, 2, 3) +GEN_THREEVEC_TEST(faddp_8h_02_03_04, "faddp v2.8h, v3.8h, v4.8h", 2, 3, 4) +GEN_THREEVEC_TEST(faddp_8h_03_04_05, "faddp v3.8h, v4.8h, v5.8h", 3, 4, 5) +GEN_THREEVEC_TEST(faddp_8h_04_05_06, "faddp v4.8h, v5.8h, v6.8h", 4, 5, 6) +GEN_THREEVEC_TEST(faddp_8h_05_06_07, "faddp v5.8h, v6.8h, v7.8h", 5, 6, 7) +GEN_THREEVEC_TEST(faddp_8h_06_07_08, "faddp v6.8h, v7.8h, v8.8h", 6, 7, 8) +GEN_THREEVEC_TEST(faddp_8h_07_08_09, "faddp v7.8h, v8.8h, v9.8h", 7, 8, 9) +GEN_THREEVEC_TEST(faddp_8h_08_09_10, "faddp v8.8h, v9.8h, v10.8h", 8, 9, 10) +GEN_THREEVEC_TEST(faddp_8h_09_10_11, "faddp v9.8h, v10.8h, v11.8h", 9, 10, 11) +GEN_THREEVEC_TEST(faddp_8h_10_11_12, "faddp v10.8h, v11.8h, v12.8h", 10, 11, 12) +GEN_THREEVEC_TEST(faddp_8h_11_12_13, "faddp v11.8h, v12.8h, v13.8h", 11, 12, 13) +GEN_THREEVEC_TEST(faddp_8h_12_13_14, "faddp v12.8h, v13.8h, v14.8h", 12, 13, 14) +GEN_THREEVEC_TEST(faddp_8h_13_14_15, "faddp v13.8h, v14.8h, v15.8h", 13, 14, 15) +GEN_THREEVEC_TEST(faddp_8h_14_15_16, "faddp v14.8h, v15.8h, v16.8h", 14, 15, 16) +GEN_THREEVEC_TEST(faddp_8h_15_16_17, "faddp v15.8h, v16.8h, v17.8h", 15, 16, 17) +GEN_THREEVEC_TEST(faddp_8h_16_17_18, "faddp v16.8h, v17.8h, v18.8h", 16, 17, 18) +GEN_THREEVEC_TEST(faddp_8h_17_18_19, "faddp v17.8h, v18.8h, v19.8h", 17, 18, 19) +GEN_THREEVEC_TEST(faddp_8h_18_19_20, "faddp v18.8h, v19.8h, v20.8h", 18, 19, 20) +GEN_THREEVEC_TEST(faddp_8h_19_20_21, "faddp v19.8h, v20.8h, v21.8h", 19, 20, 21) +GEN_THREEVEC_TEST(faddp_8h_20_21_22, "faddp v20.8h, v21.8h, v22.8h", 20, 21, 22) +GEN_THREEVEC_TEST(faddp_8h_21_22_23, "faddp v21.8h, v22.8h, v23.8h", 21, 22, 23) +GEN_THREEVEC_TEST(faddp_8h_22_23_24, "faddp v22.8h, v23.8h, v24.8h", 22, 23, 24) +GEN_THREEVEC_TEST(faddp_8h_23_24_25, "faddp v23.8h, v24.8h, v25.8h", 23, 24, 25) +GEN_THREEVEC_TEST(faddp_8h_24_25_26, "faddp v24.8h, v25.8h, v26.8h", 24, 25, 26) +GEN_THREEVEC_TEST(faddp_8h_25_26_27, "faddp v25.8h, v26.8h, v27.8h", 25, 26, 27) +GEN_THREEVEC_TEST(faddp_8h_26_27_28, "faddp v26.8h, v27.8h, v28.8h", 26, 27, 28) +GEN_THREEVEC_TEST(faddp_8h_27_28_29, "faddp v27.8h, v28.8h, v29.8h", 27, 28, 29) +GEN_THREEVEC_TEST(faddp_8h_28_29_30, "faddp v28.8h, v29.8h, v30.8h", 28, 29, 30) +GEN_THREEVEC_TEST(faddp_8h_29_30_31, "faddp v29.8h, v30.8h, v31.8h", 29, 30, 31) + +GEN_THREEVEC_TEST(faddp_4h_00_01_02, "faddp v0.4h, v1.4h, v2.4h", 0, 1, 2) +GEN_THREEVEC_TEST(faddp_4h_01_02_03, "faddp v1.4h, v2.4h, v3.4h", 1, 2, 3) +GEN_THREEVEC_TEST(faddp_4h_02_03_04, "faddp v2.4h, v3.4h, v4.4h", 2, 3, 4) +GEN_THREEVEC_TEST(faddp_4h_03_04_05, "faddp v3.4h, v4.4h, v5.4h", 3, 4, 5) +GEN_THREEVEC_TEST(faddp_4h_04_05_06, "faddp v4.4h, v5.4h, v6.4h", 4, 5, 6) +GEN_THREEVEC_TEST(faddp_4h_05_06_07, "faddp v5.4h, v6.4h, v7.4h", 5, 6, 7) +GEN_THREEVEC_TEST(faddp_4h_06_07_08, "faddp v6.4h, v7.4h, v8.4h", 6, 7, 8) +GEN_THREEVEC_TEST(faddp_4h_07_08_09, "faddp v7.4h, v8.4h, v9.4h", 7, 8, 9) +GEN_THREEVEC_TEST(faddp_4h_08_09_10, "faddp v8.4h, v9.4h, v10.4h", 8, 9, 10) +GEN_THREEVEC_TEST(faddp_4h_09_10_11, "faddp v9.4h, v10.4h, v11.4h", 9, 10, 11) +GEN_THREEVEC_TEST(faddp_4h_10_11_12, "faddp v10.4h, v11.4h, v12.4h", 10, 11, 12) +GEN_THREEVEC_TEST(faddp_4h_11_12_13, "faddp v11.4h, v12.4h, v13.4h", 11, 12, 13) +GEN_THREEVEC_TEST(faddp_4h_12_13_14, "faddp v12.4h, v13.4h, v14.4h", 12, 13, 14) +GEN_THREEVEC_TEST(faddp_4h_13_14_15, "faddp v13.4h, v14.4h, v15.4h", 13, 14, 15) +GEN_THREEVEC_TEST(faddp_4h_14_15_16, "faddp v14.4h, v15.4h, v16.4h", 14, 15, 16) +GEN_THREEVEC_TEST(faddp_4h_15_16_17, "faddp v15.4h, v16.4h, v17.4h", 15, 16, 17) +GEN_THREEVEC_TEST(faddp_4h_16_17_18, "faddp v16.4h, v17.4h, v18.4h", 16, 17, 18) +GEN_THREEVEC_TEST(faddp_4h_17_18_19, "faddp v17.4h, v18.4h, v19.4h", 17, 18, 19) +GEN_THREEVEC_TEST(faddp_4h_18_19_20, "faddp v18.4h, v19.4h, v20.4h", 18, 19, 20) +GEN_THREEVEC_TEST(faddp_4h_19_20_21, "faddp v19.4h, v20.4h, v21.4h", 19, 20, 21) +GEN_THREEVEC_TEST(faddp_4h_20_21_22, "faddp v20.4h, v21.4h, v22.4h", 20, 21, 22) +GEN_THREEVEC_TEST(faddp_4h_21_22_23, "faddp v21.4h, v22.4h, v23.4h", 21, 22, 23) +GEN_THREEVEC_TEST(faddp_4h_22_23_24, "faddp v22.4h, v23.4h, v24.4h", 22, 23, 24) +GEN_THREEVEC_TEST(faddp_4h_23_24_25, "faddp v23.4h, v24.4h, v25.4h", 23, 24, 25) +GEN_THREEVEC_TEST(faddp_4h_24_25_26, "faddp v24.4h, v25.4h, v26.4h", 24, 25, 26) +GEN_THREEVEC_TEST(faddp_4h_25_26_27, "faddp v25.4h, v26.4h, v27.4h", 25, 26, 27) +GEN_THREEVEC_TEST(faddp_4h_26_27_28, "faddp v26.4h, v27.4h, v28.4h", 26, 27, 28) +GEN_THREEVEC_TEST(faddp_4h_27_28_29, "faddp v27.4h, v28.4h, v29.4h", 27, 28, 29) +GEN_THREEVEC_TEST(faddp_4h_28_29_30, "faddp v28.4h, v29.4h, v30.4h", 28, 29, 30) +GEN_THREEVEC_TEST(faddp_4h_29_30_31, "faddp v29.4h, v30.4h, v31.4h", 29, 30, 31) + /* ---------------------------------------------------------------- */ /* -- main() -- */ @@ -2204,42 +2237,7 @@ int main ( void ) { assert(sizeof(V128) == 16); - // ======================== FP ======================== - - // faddp h (half-precision floating add pair) - // faddp 2h - if (1) test_faddp_h_2h_00_00(TyH); - if (1) test_faddp_h_2h_01_01(TyH); - if (1) test_faddp_h_2h_02_02(TyH); - if (1) test_faddp_h_2h_03_03(TyH); - if (1) test_faddp_h_2h_04_04(TyH); - if (1) test_faddp_h_2h_05_05(TyH); - if (1) test_faddp_h_2h_06_06(TyH); - if (1) test_faddp_h_2h_07_07(TyH); - if (1) test_faddp_h_2h_08_08(TyH); - if (1) test_faddp_h_2h_09_09(TyH); - if (1) test_faddp_h_2h_10_10(TyH); - if (1) test_faddp_h_2h_11_11(TyH); - if (1) test_faddp_h_2h_12_12(TyH); - if (1) test_faddp_h_2h_13_13(TyH); - if (1) test_faddp_h_2h_14_14(TyH); - if (1) test_faddp_h_2h_15_15(TyH); - if (1) test_faddp_h_2h_16_16(TyH); - if (1) test_faddp_h_2h_17_17(TyH); - if (1) test_faddp_h_2h_18_18(TyH); - if (1) test_faddp_h_2h_19_19(TyH); - if (1) test_faddp_h_2h_20_20(TyH); - if (1) test_faddp_h_2h_21_21(TyH); - if (1) test_faddp_h_2h_22_22(TyH); - if (1) test_faddp_h_2h_23_23(TyH); - if (1) test_faddp_h_2h_24_24(TyH); - if (1) test_faddp_h_2h_25_25(TyH); - if (1) test_faddp_h_2h_26_26(TyH); - if (1) test_faddp_h_2h_27_27(TyH); - if (1) test_faddp_h_2h_28_28(TyH); - if (1) test_faddp_h_2h_29_29(TyH); - if (1) test_faddp_h_2h_30_30(TyH); - if (1) test_faddp_h_2h_31_31(TyH); + printf("\nFADDP , .\n\n"); if (1) test_faddp_h_2h_00_01(TyH); if (1) test_faddp_h_2h_01_02(TyH); @@ -2273,13 +2271,77 @@ int main ( void ) if (1) test_faddp_h_2h_29_30(TyH); if (1) test_faddp_h_2h_30_31(TyH); + printf("\nFADDP ., ., .\n\n"); + + if (1) test_faddp_8h_00_01_02(TyH); + if (1) test_faddp_8h_01_02_03(TyH); + if (1) test_faddp_8h_02_03_04(TyH); + if (1) test_faddp_8h_03_04_05(TyH); + if (1) test_faddp_8h_04_05_06(TyH); + if (1) test_faddp_8h_05_06_07(TyH); + if (1) test_faddp_8h_06_07_08(TyH); + if (1) test_faddp_8h_07_08_09(TyH); + if (1) test_faddp_8h_08_09_10(TyH); + if (1) test_faddp_8h_09_10_11(TyH); + if (1) test_faddp_8h_10_11_12(TyH); + if (1) test_faddp_8h_11_12_13(TyH); + if (1) test_faddp_8h_12_13_14(TyH); + if (1) test_faddp_8h_13_14_15(TyH); + if (1) test_faddp_8h_14_15_16(TyH); + if (1) test_faddp_8h_15_16_17(TyH); + if (1) test_faddp_8h_16_17_18(TyH); + if (1) test_faddp_8h_17_18_19(TyH); + if (1) test_faddp_8h_18_19_20(TyH); + if (1) test_faddp_8h_19_20_21(TyH); + if (1) test_faddp_8h_20_21_22(TyH); + if (1) test_faddp_8h_21_22_23(TyH); + if (1) test_faddp_8h_22_23_24(TyH); + if (1) test_faddp_8h_23_24_25(TyH); + if (1) test_faddp_8h_24_25_26(TyH); + if (1) test_faddp_8h_25_26_27(TyH); + if (1) test_faddp_8h_26_27_28(TyH); + if (1) test_faddp_8h_27_28_29(TyH); + if (1) test_faddp_8h_28_29_30(TyH); + if (1) test_faddp_8h_29_30_31(TyH); + + if (1) test_faddp_4h_00_01_02(TyH); + if (1) test_faddp_4h_01_02_03(TyH); + if (1) test_faddp_4h_02_03_04(TyH); + if (1) test_faddp_4h_03_04_05(TyH); + if (1) test_faddp_4h_04_05_06(TyH); + if (1) test_faddp_4h_05_06_07(TyH); + if (1) test_faddp_4h_06_07_08(TyH); + if (1) test_faddp_4h_07_08_09(TyH); + if (1) test_faddp_4h_08_09_10(TyH); + if (1) test_faddp_4h_09_10_11(TyH); + if (1) test_faddp_4h_10_11_12(TyH); + if (1) test_faddp_4h_11_12_13(TyH); + if (1) test_faddp_4h_12_13_14(TyH); + if (1) test_faddp_4h_13_14_15(TyH); + if (1) test_faddp_4h_14_15_16(TyH); + if (1) test_faddp_4h_15_16_17(TyH); + if (1) test_faddp_4h_16_17_18(TyH); + if (1) test_faddp_4h_17_18_19(TyH); + if (1) test_faddp_4h_18_19_20(TyH); + if (1) test_faddp_4h_19_20_21(TyH); + if (1) test_faddp_4h_20_21_22(TyH); + if (1) test_faddp_4h_21_22_23(TyH); + if (1) test_faddp_4h_22_23_24(TyH); + if (1) test_faddp_4h_23_24_25(TyH); + if (1) test_faddp_4h_24_25_26(TyH); + if (1) test_faddp_4h_25_26_27(TyH); + if (1) test_faddp_4h_26_27_28(TyH); + if (1) test_faddp_4h_27_28_29(TyH); + if (1) test_faddp_4h_28_29_30(TyH); + if (1) test_faddp_4h_29_30_31(TyH); + return 0; } /* ---------------------------------------------------------------- */ -/* -- Alphabetical list of insns -- */ +/* -- List of instructions tested in order of execution. -- */ /* ---------------------------------------------------------------- */ /* - faddp h (half-precision floating add pair) - faddp 2h + FADDP , . Floating-point Add Pair of elements (scalar). + FADDP ., ., . Floating-point Add Pairwise (vector). */ diff --git a/none/tests/arm64/fp_and_simd_v82.stdout.exp b/none/tests/arm64/fp_and_simd_v82.stdout.exp index 8ef1dee2f1..1dd9e8c6b0 100644 --- a/none/tests/arm64/fp_and_simd_v82.stdout.exp +++ b/none/tests/arm64/fp_and_simd_v82.stdout.exp @@ -1,63 +1,98 @@ -faddp h0, v0.2h 5175e39d19c9ca1e98f24a4984175700 19a348215c3a67fd399182c2dbcc2d38 0000000000000000000000000000dbcb 0000000000000000000000000000dbcb fpsr=00000000 -faddp h1, v1.2h cb509970b8136c85d740b80eb7839b97 f9dd4a29f8c093db56b01a12b0ca1583 0000000000000000000000000000b0bf 0000000000000000000000000000b0bf fpsr=00000000 -faddp h2, v2.2h d182c916cebc2e17cfaff39be272ef40 6897b536bbe4da8a369dab4f9465b86e 0000000000000000000000000000b870 0000000000000000000000000000b870 fpsr=00000000 -faddp h3, v3.2h 81f2a547be8d181184ededbc53239dcf 019963bf7459630b8d69483df7e8c6a9 0000000000000000000000000000f7e8 0000000000000000000000000000f7e8 fpsr=00000000 -faddp h4, v4.2h 5f490104ced83ff86262dd37727c80f3 e9b5f3f66b2e58c121a6c3476d21f1e5 0000000000000000000000000000eea9 0000000000000000000000000000eea9 fpsr=00000000 -faddp h5, v5.2h 61c82534e9bf6f37c9e25f72d82e582b ecb42ac54b0966d4089b756aa3f77018 00000000000000000000000000007018 00000000000000000000000000007018 fpsr=00000000 -faddp h6, v6.2h 36b2a38dcef18acf0e0f01a829ba3c66 65ce6d498492e7e796df010bf4b23b84 0000000000000000000000000000f4b2 0000000000000000000000000000f4b2 fpsr=00000000 -faddp h7, v7.2h 6d08ed19fa045f841810cd8c109ed568 1c4a678450562685769ab818a5b7985e 0000000000000000000000000000a643 0000000000000000000000000000a643 fpsr=00000000 -faddp h8, v8.2h 048612e51a468e36c51cdd8f87e12ab4 0c05cb6ebd128663d7568e3e8a3ac80e 0000000000000000000000000000c80e 0000000000000000000000000000c80e fpsr=00000000 -faddp h9, v9.2h 6489eab2c96df363d52c4330a7aae391 14575775bc3a12029d8e66ea90352a18 00000000000000000000000000002a07 00000000000000000000000000002a07 fpsr=00000000 -faddp h10, v10.2h 4784d95987cd4ed80c3ca578a32bd88e 08aebee85fda964fbba02737f3c98220 0000000000000000000000000000f3c9 0000000000000000000000000000f3c9 fpsr=00000000 -faddp h11, v11.2h 4e92f1b240a122141a366d352714867e 0aaa836b194e242cc5fc3ae904033357 00000000000000000000000000003358 00000000000000000000000000003358 fpsr=00000000 -faddp h12, v12.2h ac82c1007a7d3cd8f54b130cdaa89cef 627bb6e12d1f6d4651ef145cb9b83843 0000000000000000000000000000b1d4 0000000000000000000000000000b1d4 fpsr=00000000 -faddp h13, v13.2h f0f1798fe3c1699cf02b3b25bca27a9c d4ba52a206ff21b170fbbab6a7f19faf 0000000000000000000000000000a8ee 0000000000000000000000000000a8ee fpsr=00000000 -faddp h14, v14.2h 16559ec50352a3d92d460a61a5dd0f6f 0784892e9360315bf0177599dbe14b46 0000000000000000000000000000db6d 0000000000000000000000000000db6d fpsr=00000000 -faddp h15, v15.2h 9432a2e46543b956b819f459105730e9 5da3cfd6aea6558e0c28728e28dc3c9c 00000000000000000000000000003cc3 00000000000000000000000000003cc3 fpsr=00000000 -faddp h16, v16.2h 89fba268812abdb21e4a9e0958fac555 e4450ababbfae0f9bc3127138b19183c 00000000000000000000000000001795 00000000000000000000000000001795 fpsr=00000000 -faddp h17, v17.2h 7acb193b9abab2f9e1917689e3f6bf86 2573776df1835e3ede9a220dce0e75e0 000000000000000000000000000075de 000000000000000000000000000075de fpsr=00000000 -faddp h18, v18.2h fa99500fef6024ba39dce32c239cf309 570037914d04ab3d05d75ec6f616ee9a 0000000000000000000000000000f7bc 0000000000000000000000000000f7bc fpsr=00000000 -faddp h19, v19.2h 8fcf04e5b2dca44fcf4c517ea3a413ff 5d700527e24d9241c57eb74d70183523 00000000000000000000000000007018 00000000000000000000000000007018 fpsr=00000000 -faddp h20, v20.2h f34428d9c8833f5b78fb29445f3bc8d7 da30ef8bc0b5573e34a901384a97a32f 00000000000000000000000000004a95 00000000000000000000000000004a95 fpsr=00000000 -faddp h21, v21.2h ac8dd5bbc503330eb9dd5dab8e212ab7 4e94ec120b386f523bfcd80321664d3e 00000000000000000000000000004d3f 00000000000000000000000000004d3f fpsr=00000000 -faddp h22, v22.2h 125934a781e479d33d431279cce48fce d4d14e592776b1ef0b40d58cb22d00b1 0000000000000000000000000000b22d 0000000000000000000000000000b22d fpsr=00000000 -faddp h23, v23.2h 9e477892854b43e0beafe48541dc8da0 acb9433f079dacacabeb000208c90296 00000000000000000000000000000a14 00000000000000000000000000000a14 fpsr=00000000 -faddp h24, v24.2h ef56701db49bea4ce52e79ce9700a7f7 200d17261638b12a2a6a07863ec28077 00000000000000000000000000003ec2 00000000000000000000000000003ec2 fpsr=00000000 -faddp h25, v25.2h 445ef059e641a1ccb097e047aacc5b89 1c9c7740ef193457959960926235021b 00000000000000000000000000006235 00000000000000000000000000006235 fpsr=00000000 -faddp h26, v26.2h 80c745ef729f1792ccd7e987538166e1 f4ad41832c22ba116c949cea66e687ae 000000000000000000000000000066e6 000000000000000000000000000066e6 fpsr=00000000 -faddp h27, v27.2h e309aef8a605af130821eb96e737777e b5a9377eb31749ef710cf757885d2728 0000000000000000000000000000271f 0000000000000000000000000000271f fpsr=00000000 -faddp h28, v28.2h dbacfa35b7d2b75af8ad6b99bb3fa4c2 c673c91ec9aed3f8b9c3e32f2103009d 00000000000000000000000000002104 00000000000000000000000000002104 fpsr=00000000 -faddp h29, v29.2h 76f140aa4182b4e706a17746411ab40c 5e58aa8b4c88ae0d34fa174f9ce927c4 0000000000000000000000000000268a 0000000000000000000000000000268a fpsr=00000000 -faddp h30, v30.2h 61cd123e19cf1e2bb001f1161e946f5c d5f13a9ab645e140698bec649583f5aa 0000000000000000000000000000f5aa 0000000000000000000000000000f5aa fpsr=00000000 -faddp h31, v31.2h 2993e139f7d64ff4532f9ae1d7da8010 19714a711ce1284318b88425f2de758f 00000000000000000000000000007040 00000000000000000000000000007040 fpsr=00000000 -faddp h0, v1.2h 7af177f11da748fc8b9145fe16d0390f a77700084a491a0ef099b6dd61462ec3 00000000000000000000000000006146 a77700084a491a0ef099b6dd61462ec3 fpsr=00000000 -faddp h1, v2.2h c50f1401e45b82d3086a7a39a1e6217d b79cd058188318692112ca1cf9f1dd31 0000000000000000000000000000f9fb b79cd058188318692112ca1cf9f1dd31 fpsr=00000000 -faddp h2, v3.2h d4ec68f21f468712f7b8ab3708137382 0b9c016be95f18de62bba1a11cc04c89 00000000000000000000000000004c89 0b9c016be95f18de62bba1a11cc04c89 fpsr=00000000 -faddp h3, v4.2h 30c9028972f8733d11f7fa4450de2529 a1cd852d9cd970502d146432e64644c9 0000000000000000000000000000e641 a1cd852d9cd970502d146432e64644c9 fpsr=00000000 -faddp h4, v5.2h 35e7926e777aa43f56470887bfdd3daf b2ed4ecc1e172df2d3a0a41fce854ae7 0000000000000000000000000000ca23 b2ed4ecc1e172df2d3a0a41fce854ae7 fpsr=00000000 -faddp h5, v6.2h 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 00000000000000000000000000002a2f 09e14df041cdc14f0bf7ba2283e22a31 fpsr=00000000 -faddp h6, v7.2h 9c86e5cb54c594021c25022200a7415e 1adad8978cbfb47829861f0d48dc87f5 000000000000000000000000000048dc 1adad8978cbfb47829861f0d48dc87f5 fpsr=00000000 -faddp h7, v8.2h b168a24af5479e7bc9f1d5f8e2de4bd3 894d9fe1f98d1aa0861ef69cf4e34e11 0000000000000000000000000000f4e1 894d9fe1f98d1aa0861ef69cf4e34e11 fpsr=00000000 -faddp h8, v9.2h 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 0000000000000000000000000000fa7c 74876ac63afb7562c67d2c86fa7c09a3 fpsr=00000000 -faddp h9, v10.2h c501b4c64209aa2e0719232dba0b82d5 077815d35567232e66c997070e860c39 00000000000000000000000000001160 077815d35567232e66c997070e860c39 fpsr=00000000 -faddp h10, v11.2h 462deabeada6093241150c7a1a4df892 89ad76dc21a1f8f15acd7ad9f991bada 0000000000000000000000000000f991 89ad76dc21a1f8f15acd7ad9f991bada fpsr=00000000 -faddp h11, v12.2h f82db3448c8c9a654f1c8c8db3b639e1 de62d56351fe96dabe7a2cefcf2b96bb 0000000000000000000000000000cf2b de62d56351fe96dabe7a2cefcf2b96bb fpsr=00000000 -faddp h12, v13.2h 8514e93e478d067a5a4ac156a6cb98bf d4442998096825896787a06c436d8e39 0000000000000000000000000000436d d4442998096825896787a06c436d8e39 fpsr=00000000 -faddp h13, v14.2h a20cab554a62dd2468a718ec4422710c b330aadc8a7cbfaf26fbc229d962e2d7 0000000000000000000000000000e418 b330aadc8a7cbfaf26fbc229d962e2d7 fpsr=00000000 -faddp h14, v15.2h 3028339e0d3a0c468e8f584ceae94e7a e33fad8f313a964967940f284cfce9a3 0000000000000000000000000000e999 e33fad8f313a964967940f284cfce9a3 fpsr=00000000 -faddp h15, v16.2h 5df79fd3324f914fb79f41ec172107e2 d6006035af2e8bb7b3736be34585abe2 00000000000000000000000000004575 d6006035af2e8bb7b3736be34585abe2 fpsr=00000000 -faddp h16, v17.2h 57d0e8a18b5417adc6b295b85f1c3056 e70216ec5cbcf49e8a09cb539549408a 00000000000000000000000000004089 e70216ec5cbcf49e8a09cb539549408a fpsr=00000000 -faddp h17, v18.2h a9430469f9a6aaf90d07193d2e134034 e0fd1393714954977124406c74e81e7a 000000000000000000000000000074e8 e0fd1393714954977124406c74e81e7a fpsr=00000000 -faddp h18, v19.2h 3b947b8f0a536415b779aada6ea680b0 3fa5c4d84771e518605a54f56dfe15b7 00000000000000000000000000006dfe 3fa5c4d84771e518605a54f56dfe15b7 fpsr=00000000 -faddp h19, v20.2h b71315802c502c586d5043a8665c8797 d4eaedef93c21b55bdb0c6ce36392d36 00000000000000000000000000003786 d4eaedef93c21b55bdb0c6ce36392d36 fpsr=00000000 -faddp h20, v21.2h 98bf1ba36919393bc4d999db7390839e 44d5584589abea635dc49b10189f4c14 00000000000000000000000000004c14 44d5584589abea635dc49b10189f4c14 fpsr=00000000 -faddp h21, v22.2h 0b0b9f6018e987aeba97106bb88dbd45 9d5fe4af824eabd8f8f577d6f4dd0223 0000000000000000000000000000f4dd 9d5fe4af824eabd8f8f577d6f4dd0223 fpsr=00000000 -faddp h22, v23.2h 1eca927d6d5eee012a6fe8ae3cfe5e6a 22d9446284e6ae8126fc5ee9b286181e 0000000000000000000000000000b276 22d9446284e6ae8126fc5ee9b286181e fpsr=00000000 -faddp h23, v24.2h 3131620a2265f8c8f64df6cdcb51c286 6eeb8d90d86668b60a08b6d0cfc59797 0000000000000000000000000000cfc5 6eeb8d90d86668b60a08b6d0cfc59797 fpsr=00000000 -faddp h24, v25.2h 1854ddf6d8b991ce01deaf4923243fc0 4210b3d32431d146a45cad2eccb0e21a 0000000000000000000000000000e240 4210b3d32431d146a45cad2eccb0e21a fpsr=00000000 -faddp h25, v26.2h ee7d691b146130944d3d038a0b69312c 4df433720fd7245dafacd5bdced9cd88 0000000000000000000000000000d230 4df433720fd7245dafacd5bdced9cd88 fpsr=00000000 -faddp h26, v27.2h 9c423a145875f5144ccc5e105c99661d a353e8d137de89d3071b5bad6b52ee61 0000000000000000000000000000e970 a353e8d137de89d3071b5bad6b52ee61 fpsr=00000000 -faddp h27, v28.2h d04b750405c33deba68d8a6feefdf8d2 e11053b38ffdcd305e88d8c318f5aa57 0000000000000000000000000000aa08 e11053b38ffdcd305e88d8c318f5aa57 fpsr=00000000 -faddp h28, v29.2h 2af3bd4b509e6608a513cfe482162be8 6f8ae74d5f7960b4a01933ef595f6af1 00000000000000000000000000006b47 6f8ae74d5f7960b4a01933ef595f6af1 fpsr=00000000 -faddp h29, v30.2h 95d26cc246074b10bda9f7bf92a71bac 8932e026330d2e5552f8564f761e13a8 0000000000000000000000000000761e 8932e026330d2e5552f8564f761e13a8 fpsr=00000000 -faddp h30, v31.2h 470818041ac5e9b218db305838ff3248 06ced856b4d04648a668c3da0fcbe652 0000000000000000000000000000e652 06ced856b4d04648a668c3da0fcbe652 fpsr=00000000 + +FADDP , . + +faddp h0, v1.2h 5175e39d19c9ca1e98f24a4984175700 19a348215c3a67fd399182c2dbcc2d38 0000000000000000000000000000dbcb 19a348215c3a67fd399182c2dbcc2d38 fpsr=00000000 +faddp h1, v2.2h cb509970b8136c85d740b80eb7839b97 f9dd4a29f8c093db56b01a12b0ca1583 0000000000000000000000000000b0bf f9dd4a29f8c093db56b01a12b0ca1583 fpsr=00000000 +faddp h2, v3.2h d182c916cebc2e17cfaff39be272ef40 6897b536bbe4da8a369dab4f9465b86e 0000000000000000000000000000b870 6897b536bbe4da8a369dab4f9465b86e fpsr=00000000 +faddp h3, v4.2h 81f2a547be8d181184ededbc53239dcf 019963bf7459630b8d69483df7e8c6a9 0000000000000000000000000000f7e8 019963bf7459630b8d69483df7e8c6a9 fpsr=00000000 +faddp h4, v5.2h 5f490104ced83ff86262dd37727c80f3 e9b5f3f66b2e58c121a6c3476d21f1e5 0000000000000000000000000000eea9 e9b5f3f66b2e58c121a6c3476d21f1e5 fpsr=00000000 +faddp h5, v6.2h 61c82534e9bf6f37c9e25f72d82e582b ecb42ac54b0966d4089b756aa3f77018 00000000000000000000000000007018 ecb42ac54b0966d4089b756aa3f77018 fpsr=00000000 +faddp h6, v7.2h 36b2a38dcef18acf0e0f01a829ba3c66 65ce6d498492e7e796df010bf4b23b84 0000000000000000000000000000f4b2 65ce6d498492e7e796df010bf4b23b84 fpsr=00000000 +faddp h7, v8.2h 6d08ed19fa045f841810cd8c109ed568 1c4a678450562685769ab818a5b7985e 0000000000000000000000000000a643 1c4a678450562685769ab818a5b7985e fpsr=00000000 +faddp h8, v9.2h 048612e51a468e36c51cdd8f87e12ab4 0c05cb6ebd128663d7568e3e8a3ac80e 0000000000000000000000000000c80e 0c05cb6ebd128663d7568e3e8a3ac80e fpsr=00000000 +faddp h9, v10.2h 6489eab2c96df363d52c4330a7aae391 14575775bc3a12029d8e66ea90352a18 00000000000000000000000000002a07 14575775bc3a12029d8e66ea90352a18 fpsr=00000000 +faddp h10, v11.2h 4784d95987cd4ed80c3ca578a32bd88e 08aebee85fda964fbba02737f3c98220 0000000000000000000000000000f3c9 08aebee85fda964fbba02737f3c98220 fpsr=00000000 +faddp h11, v12.2h 4e92f1b240a122141a366d352714867e 0aaa836b194e242cc5fc3ae904033357 00000000000000000000000000003358 0aaa836b194e242cc5fc3ae904033357 fpsr=00000000 +faddp h12, v13.2h ac82c1007a7d3cd8f54b130cdaa89cef 627bb6e12d1f6d4651ef145cb9b83843 0000000000000000000000000000b1d4 627bb6e12d1f6d4651ef145cb9b83843 fpsr=00000000 +faddp h13, v14.2h f0f1798fe3c1699cf02b3b25bca27a9c d4ba52a206ff21b170fbbab6a7f19faf 0000000000000000000000000000a8ee d4ba52a206ff21b170fbbab6a7f19faf fpsr=00000000 +faddp h14, v15.2h 16559ec50352a3d92d460a61a5dd0f6f 0784892e9360315bf0177599dbe14b46 0000000000000000000000000000db6d 0784892e9360315bf0177599dbe14b46 fpsr=00000000 +faddp h15, v16.2h 9432a2e46543b956b819f459105730e9 5da3cfd6aea6558e0c28728e28dc3c9c 00000000000000000000000000003cc3 5da3cfd6aea6558e0c28728e28dc3c9c fpsr=00000000 +faddp h16, v17.2h 89fba268812abdb21e4a9e0958fac555 e4450ababbfae0f9bc3127138b19183c 00000000000000000000000000001795 e4450ababbfae0f9bc3127138b19183c fpsr=00000000 +faddp h17, v18.2h 7acb193b9abab2f9e1917689e3f6bf86 2573776df1835e3ede9a220dce0e75e0 000000000000000000000000000075de 2573776df1835e3ede9a220dce0e75e0 fpsr=00000000 +faddp h18, v19.2h fa99500fef6024ba39dce32c239cf309 570037914d04ab3d05d75ec6f616ee9a 0000000000000000000000000000f7bc 570037914d04ab3d05d75ec6f616ee9a fpsr=00000000 +faddp h19, v20.2h 8fcf04e5b2dca44fcf4c517ea3a413ff 5d700527e24d9241c57eb74d70183523 00000000000000000000000000007018 5d700527e24d9241c57eb74d70183523 fpsr=00000000 +faddp h20, v21.2h f34428d9c8833f5b78fb29445f3bc8d7 da30ef8bc0b5573e34a901384a97a32f 00000000000000000000000000004a95 da30ef8bc0b5573e34a901384a97a32f fpsr=00000000 +faddp h21, v22.2h ac8dd5bbc503330eb9dd5dab8e212ab7 4e94ec120b386f523bfcd80321664d3e 00000000000000000000000000004d3f 4e94ec120b386f523bfcd80321664d3e fpsr=00000000 +faddp h22, v23.2h 125934a781e479d33d431279cce48fce d4d14e592776b1ef0b40d58cb22d00b1 0000000000000000000000000000b22d d4d14e592776b1ef0b40d58cb22d00b1 fpsr=00000000 +faddp h23, v24.2h 9e477892854b43e0beafe48541dc8da0 acb9433f079dacacabeb000208c90296 00000000000000000000000000000a14 acb9433f079dacacabeb000208c90296 fpsr=00000000 +faddp h24, v25.2h ef56701db49bea4ce52e79ce9700a7f7 200d17261638b12a2a6a07863ec28077 00000000000000000000000000003ec2 200d17261638b12a2a6a07863ec28077 fpsr=00000000 +faddp h25, v26.2h 445ef059e641a1ccb097e047aacc5b89 1c9c7740ef193457959960926235021b 00000000000000000000000000006235 1c9c7740ef193457959960926235021b fpsr=00000000 +faddp h26, v27.2h 80c745ef729f1792ccd7e987538166e1 f4ad41832c22ba116c949cea66e687ae 000000000000000000000000000066e6 f4ad41832c22ba116c949cea66e687ae fpsr=00000000 +faddp h27, v28.2h e309aef8a605af130821eb96e737777e b5a9377eb31749ef710cf757885d2728 0000000000000000000000000000271f b5a9377eb31749ef710cf757885d2728 fpsr=00000000 +faddp h28, v29.2h dbacfa35b7d2b75af8ad6b99bb3fa4c2 c673c91ec9aed3f8b9c3e32f2103009d 00000000000000000000000000002104 c673c91ec9aed3f8b9c3e32f2103009d fpsr=00000000 +faddp h29, v30.2h 76f140aa4182b4e706a17746411ab40c 5e58aa8b4c88ae0d34fa174f9ce927c4 0000000000000000000000000000268a 5e58aa8b4c88ae0d34fa174f9ce927c4 fpsr=00000000 +faddp h30, v31.2h 61cd123e19cf1e2bb001f1161e946f5c d5f13a9ab645e140698bec649583f5aa 0000000000000000000000000000f5aa d5f13a9ab645e140698bec649583f5aa fpsr=00000000 + +FADDP ., ., . + +faddp v0.8h, v1.8h, v2.8h 2993e139f7d64ff4532f9ae1d7da8010 19714a711ce1284318b88425f2de758f 0760c299b42e1fdcc2e9e9cf82c7aff8 c299b40fe9d1aff94a7128df18977040 19714a711ce1284318b88425f2de758f 0760c299b42e1fdcc2e9e9cf82c7aff8 fpsr=00000000 +faddp v1.8h, v2.8h, v3.8h e70a9c61f55fce335d68e1a25652a804 1dd493f59184345437d5e366d0e20c30 c50f1401e45b82d3086a7a39a1e6217d c50fe45b7a3992901cd53451e365d0e2 1dd493f59184345437d5e366d0e20c30 c50f1401e45b82d3086a7a39a1e6217d fpsr=00000000 +faddp v2.8h, v3.8h, v4.8h d4ec68f21f468712f7b8ab3708137382 0b9c016be95f18de62bba1a11cc04c89 761b274ac4c4f0c7f31ed81010c417bc 761bf0c8f32e190f0c29e95f62bb4c89 0b9c016be95f18de62bba1a11cc04c89 761b274ac4c4f0c7f31ed81010c417bc fpsr=00000000 +faddp v3.8h, v4.8h, v5.8h 25c80a060da03fb0c33ebc4b44b8ddd8 94d7265949ca62b46a8a793cf9d5f0d1 35e7926e777aa43f56470887bfdd3daf 35e4777a5647b85c260c62cb79a5fb09 94d7265949ca62b46a8a793cf9d5f0d1 35e7926e777aa43f56470887bfdd3daf fpsr=00000000 +faddp v4.8h, v5.8h, v6.8h 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 f0fdf0aee1dda4e888e2774acbc13287 f4d6e1dd774acba74df033e0ba222a2f 09e14df041cdc14f0bf7ba2283e22a31 f0fdf0aee1dda4e888e2774acbc13287 fpsr=00000000 +faddp v5.8h, v6.8h, v7.8h 62bbc77143b71e92668b24fb9133bf52 9fedb2229a090d2c018b42f3d3ec8415 b168a24af5479e7bc9f1d5f8e2de4bd3 b1cdf547d6b6e2bfb261996442f3d3ec 9fedb2229a090d2c018b42f3d3ec8415 b168a24af5479e7bc9f1d5f8e2de4bd3 fpsr=00000000 +faddp v6.8h, v7.8h, v8.8h 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 07121ecd88441b7dd2cc3eca9347d80f 1ee91b39d296d80f75607562c66bfa7c 74876ac63afb7562c67d2c86fa7c09a3 07121ecd88441b7dd2cc3eca9347d80f fpsr=00000000 +faddp v7.8h, v8.8h, v9.8h 109cfa471afbe686e2ede96f8809f947 9ce5d1a297a56adb474e1bb03bc55073 462deabeada6093241150c7a1a4df892 eabbada34115f892d1a26adb474f5092 9ce5d1a297a56adb474e1bb03bc55073 462deabeada6093241150c7a1a4df892 fpsr=00000000 +faddp v8.8h, v9.8h, v10.8h f82db3448c8c9a654f1c8c8db3b639e1 de62d56351fe96dabe7a2cefcf2b96bb e76fcc086aeb0414a9cd126c0869c6a0 e77f6aeba9b3c6a0dfbb51febe2bcf2b de62d56351fe96dabe7a2cefcf2b96bb e76fcc086aeb0414a9cd126c0869c6a0 fpsr=00000000 +faddp v9.8h, v10.8h, v11.8h fa0ba48e9db3d6f2c0c135e244f24dfe 95a6e59e2a7fabcb65b86284a1cb27a3 a20cab554a62dd2468a718ec4422710c ac6cdcf168a7710de59ea130687d24be 95a6e59e2a7fabcb65b86284a1cb27a3 a20cab554a62dd2468a718ec4422710c fpsr=00000000 +faddp v10.8h, v11.8h, v12.8h 3028339e0d3a0c468e8f584ceae94e7a e33fad8f313a964967940f284cfce9a3 45738ec585d726b8f4ecb95e02f1d179 457326b2f4ecd179e33f312d6794e999 e33fad8f313a964967940f284cfce9a3 45738ec585d726b8f4ecb95e02f1d179 fpsr=00000000 +faddp v11.8h, v12.8h, v13.8h 7742a77a117513548f9ea7c3a323665c 0bd9cf5599014e9dc435b32da92a7aa5 57d0e8a18b5417adc6b295b85f1c3056 e86216c2c6b25f1dcf554e9dc46e7aa5 0bd9cf5599014e9dc435b32da92a7aa5 57d0e8a18b5417adc6b295b85f1c3056 fpsr=00000000 +faddp v12.8h, v13.8h, v14.8h a9430469f9a6aaf90d07193d2e134034 e0fd1393714954977124406c74e81e7a d52f1cc78e47c9e383314ed9438203c8 d52fc9e34ed94382e0fd7152712474e8 e0fd1393714954977124406c74e81e7a d52f1cc78e47c9e383314ed9438203c8 fpsr=00000000 +faddp v13.8h, v14.8h, v15.8h ddeb80fe57ce3c26f9fcb34432fe8249 3b3296ac6d6e4ba4d95578b09e02700d b71315802c502c586d5043a8665c8797 b70e30546d51665c3b2f6d7278ab700d 3b3296ac6d6e4ba4d95578b09e02700d b71315802c502c586d5043a8665c8797 fpsr=00000000 +faddp v14.8h, v15.8h, v16.8h 98bf1ba36919393bc4d999db7390839e 44d5584589abea635dc49b10189f4c14 4f80e2044f3a41cb6610e404623f3cac e1c84ff360186241586cea635dc44c14 44d5584589abea635dc49b10189f4c14 4f80e2044f3a41cb6610e404623f3cac fpsr=00000000 +faddp v15.8h, v16.8h, v17.8h 71a6062013b6eaf839f583c290e85d6f 0beca39f21ddd399b28a073ef6656128 1eca927d6d5eee012a6fe8ae3cfe5e6a 1dfae118e8ae5e6fa37fd399b289f63c 0beca39f21ddd399b28a073ef6656128 1eca927d6d5eee012a6fe8ae3cfe5e6a fpsr=00000000 +faddp v16.8h, v17.8h, v18.8h 3131620a2265f8c8f64df6cdcb51c286 6eeb8d90d86668b60a08b6d0cfc59797 dc2316810c4e5ddd66c8f02281b3c8f2 dc235dddee92c8f26eeb6870b6cfcfc5 6eeb8d90d86668b60a08b6d0cfc59797 dc2316810c4e5ddd66c8f02281b3c8f2 fpsr=00000000 +faddp v17.8h, v18.8h, v19.8h b7a39486894259f1290e68be98626e2d 6ddc67b25da28240909c451c6eb3e447 ee7d691b146130944d3d038a0b69312c ebdf309d4d3d312e6fc85da2451c6da1 6ddc67b25da28240909c451c6eb3e447 ee7d691b146130944d3d038a0b69312c fpsr=00000000 +faddp v18.8h, v19.8h, v20.8h 9c423a145875f5144ccc5e105c99661d a353e8d137de89d3071b5bad6b52ee61 5c979f40cdc58392364fbbe21b8d12fc 5c97cdc5b8ba1ca6e8d137dd5bade970 a353e8d137de89d3071b5bad6b52ee61 5c979f40cdc58392364fbbe21b8d12fc fpsr=00000000 +faddp v19.8h, v20.8h, v21.8h 37d75b1941319f8c3175b6b243e17860 850ae0642ddae0466041d5d9cb7738db 2af3bd4b509e6608a513cfe482162be8 bd13662dcfe52be7e064e0465f0ccb29 850ae0642ddae0466041d5d9cb7738db 2af3bd4b509e6608a513cfe482162be8 fpsr=00000000 +faddp v20.8h, v21.8h, v22.8h 95d26cc246074b10bda9f7bf92a71bac 8932e026330d2e5552f8564f761e13a8 b8d75a9620326a7d927f8ecd4a783d65 5a916a7d94f34b25e026351c58e6761e 8932e026330d2e5552f8564f761e13a8 b8d75a9620326a7d927f8ecd4a783d65 fpsr=00000000 +randV128: 256 calls, 353 iters +faddp v21.8h, v22.8h, v23.8h 39d4db0931b25e927a9632b68f624628 527594f68adebded1af4c541ebe715af ed8854faa096b85e32ad5a2818eb39be ed74b8705a2a39c35275bdedc540ebe7 527594f68adebded1af4c541ebe715af ed8854faa096b85e32ad5a2818eb39be fpsr=00000000 +faddp v22.8h, v23.8h, v24.8h 13a692ea909413e36b813705ba95d96d 27c81bff702749760afcca34c46a4acc 92478e7f987ac472db7137e460cce35a 94c3c473db6ddd1c28647028ca344897 27c81bff702749760afcca34c46a4acc 92478e7f987ac472db7137e460cce35a fpsr=00000000 +faddp v23.8h, v24.8h, v25.8h ded3251e3f2e1bf337f62011aebf77d2 fbc9f1302bfc1b23d243aed4a862c488 6597ea0af6727713e0401415c692d5dd e67d6908e040d646fc002c37d246c491 fbc9f1302bfc1b23d243aed4a862c488 6597ea0af6727713e0401415c692d5dd fpsr=00000000 +faddp v24.8h, v25.8h, v26.8h 549a65de5531bc5072bb7bf9cc326fbb 6aed102f2e988dcd62d86d00d43737f5 190c026f4f4108bb97f152ac79a338e2 191f4f4152ac79a36aed2e926ddbd42f 6aed102f2e988dcd62d86d00d43737f5 190c026f4f4108bb97f152ac79a338e2 fpsr=00000000 +faddp v25.8h, v26.8h, v27.8h 35954eb164b81a015d181eb0d13422c0 cccf2d05af86747edec1b4c5c4fa8650 ba6d23fbddcfb6e48aa9987b39e47961 ba4dddd198e67961ccca747edec2c4fa cccf2d05af86747edec1b4c5c4fa8650 ba6d23fbddcfb6e48aa9987b39e47961 fpsr=00000000 +faddp v26.8h, v27.8h, v28.8h 76df5c23d344e7279f0d2317c41d637d 40c9e0a4e28cc38e27b63222a6b73935 2f76953322c0b8926a280fa06b4f801c 2f61b8776a286b4fe09fe294331938ff 40c9e0a4e28cc38e27b63222a6b73935 2f76953322c0b8926a280fa06b4f801c fpsr=00000000 +faddp v27.8h, v28.8h, v29.8h c8746293ddf96221a55f780d618fa50b 16458560adcdd7091db23c3834cb4d4d 8a8cc509a7178875c1b1aa5552bf7b54 c509a720c1ca7b5615efd70a3c3e4d60 16458560adcdd7091db23c3834cb4d4d 8a8cc509a7178875c1b1aa5552bf7b54 fpsr=00000000 +faddp v28.8h, v29.8h, v30.8h 23de85e7f3ba676cd7ca3327879cb597 9a985ec5f0031343f3185309c7b360a0 16da21aeefac01e48b55d9bb9a9e8466 2289efacd9bb9ac15ec5f003f3116091 9a985ec5f0031343f3185309c7b360a0 16da21aeefac01e48b55d9bb9a9e8466 fpsr=00000000 +faddp v29.8h, v30.8h, v31.8h eb8aeda98a0320fe506fd007449d8620 759b310e98e167b9e8f5f99ff99706c8 ddb98a28084c634f63bfc3013161828e ddb9634f63b83161759b67b9f9eef997 759b310e98e167b9e8f5f99ff99706c8 ddb98a28084c634f63bfc3013161828e fpsr=00000000 +faddp v0.4h, v1.4h, v2.4h bc4a103eacf98853bc63f107d94d1889 348ab47fa96b098734939ce54eb5d374 e6246ae1a4f77a426cd3657964fa47a9 00000000000000006e316502347fd01a 348ab47fa96b098734939ce54eb5d374 e6246ae1a4f77a426cd3657964fa47a9 fpsr=00000000 +faddp v1.4h, v2.4h, v3.4h 329e49985ce0a08d4e504c0d1ea88aa7 e072c1566081a703100e83175782ed8c 0cd7c78555e44c4138f5b60885c215db 000000000000000033c4157f0f56ed6e e072c1566081a703100e83175782ed8c 0cd7c78555e44c4138f5b60885c215db fpsr=00000000 +faddp v2.4h, v3.4h, v4.4h f4bac99b8dc500224c09e6f9f4b7ac8c 3637c27a144a5b20f8ab9814aff9c5f0 bafd469c03bb81a72d0fa3c734a93060 00000000000000002c1636d9f8abc610 3637c27a144a5b20f8ab9814aff9c5f0 bafd469c03bb81a72d0fa3c734a93060 fpsr=00000000 +faddp v3.4h, v4.4h, v5.4h 2c59ee263f9ae6eb5ef02a0e24fd533c ae69f33c480a53cab65d9cff1df10031 f6d81f33742433f2cc7dd6bb9c2cca19 0000000000000000d7daca1ab6711df2 ae69f33c480a53cab65d9cff1df10031 f6d81f33742433f2cc7dd6bb9c2cca19 fpsr=00000000 +faddp v4.4h, v5.4h, v6.4h 84562c36ddb9ea8ea8c8d0e79a950eb5 23c025e6d5d2e99c2ac801d7a6e270f6 02471f026197d9cd943b5e67093fabba 00000000000000005e67abb52ac970f6 23c025e6d5d2e99c2ac801d7a6e270f6 02471f026197d9cd943b5e67093fabba fpsr=00000000 +faddp v5.4h, v6.4h, v7.4h cb85ad27dfef8a41beaf642702c9ac20 6f975f6b5d959b0038d06f14677d22db b0100d870c73d98e7631228f404d2c47 00000000000000007631406f6f14677d 6f975f6b5d959b0038d06f14677d22db b0100d870c73d98e7631228f404d2c47 fpsr=00000000 +faddp v6.4h, v7.4h, v8.4h db5accc20d6d491ef5972073e0fedfcb 5e270e3ebfc4b369e7450a380da0993e f502195aa1a15db4a2a879a23d7c0ae2 000000000000000079a23d7ce745988a 5e270e3ebfc4b369e7450a380da0993e f502195aa1a15db4a2a879a23d7c0ae2 fpsr=00000000 +faddp v7.4h, v8.4h, v9.4h 0b8c2426798b6a5de77616637239f19e 20669f6fdacc5d7113531763f353aed5 a0538e824a418418f0b95884e5242620 0000000000000000f0a7e5241986f353 20669f6fdacc5d7113531763f353aed5 a0538e824a418418f0b95884e5242620 fpsr=00000000 +faddp v8.4h, v9.4h, v10.4h 2a781815facd19a8f37bb80620d01d92 5fc5f55aaedf1f8b30f295b30ed2d86a db3648af097836cf4a5aca5a97e15cd2 000000000000000000005cd230e7d86a 5fc5f55aaedf1f8b30f295b30ed2d86a db3648af097836cf4a5aca5a97e15cd2 fpsr=00000000 +faddp v9.4h, v10.4h, v11.4h 4aeb1e341b4e429f4dc35e54b697e4cc 2da9a6af8d2f212ea4344190d5f211f7 e3b7188215a149fe53ac1abaaba25024 000000000000000053ac50224188d5f2 2da9a6af8d2f212ea4344190d5f211f7 e3b7188215a149fe53ac1abaaba25024 fpsr=00000000 +faddp v10.4h, v11.4h, v12.4h 957f97690fcf998c647b85644dc3143d 078c20e1106551b53bb68b07cdad1dcc a6368e1cc3188fca46c4038221f7f388 000000000000000046c4f3883bb6cdad 078c20e1106551b53bb68b07cdad1dcc a6368e1cc3188fca46c4038221f7f388 fpsr=00000000 +faddp v11.4h, v12.4h, v13.4h 409d0d24fbf1bd35c23659debd8d75ea a9435828b945f0ef083a4f0c6dd2c295 f76b95fa6844fb06cbc7d36dc1d5402f 0000000000000000d4afba984f0c6dd1 a9435828b945f0ef083a4f0c6dd2c295 f76b95fa6844fb06cbc7d36dc1d5402f fpsr=00000000 +faddp v12.4h, v13.4h, v14.4h d8dc6e794dd364af37b3aa17a4931751 3fad6a0b2cb3893654bc5db73e9c4e61 0f443ca873d6b22db10a44033e825486 000000000000000043b554a05ee64ecb 3fad6a0b2cb3893654bc5db73e9c4e61 0f443ca873d6b22db10a44033e825486 fpsr=00000000 +faddp v13.4h, v14.4h, v15.4h 740c78331916c2ee0656d19da0e92b0a a7dc73ed183713208e6e2a227349679c b9c7d9eb61d469d49e0a48b8c8011cc8 000000000000000048b7c8002a15741e a7dc73ed183713208e6e2a227349679c b9c7d9eb61d469d49e0a48b8c8011cc8 fpsr=00000000 +faddp v14.4h, v15.4h, v16.4h 27e28a572897658ef2a6d6ae590f40fd 2ebbabf3470db8782ccb8833608433b6 2ef9b0a22bd197c376de3baf5fdb8ce1 000000000000000076de5fdb2cc96084 2ebbabf3470db8782ccb8833608433b6 2ef9b0a22bd197c376de3baf5fdb8ce1 fpsr=00000000 +faddp v15.4h, v16.4h, v17.4h ad11927ad336084a3ccd2df1aa8a93d7 876d9bdcc5bca72ebf51e0cba2325322 dea946e0b179bef5361cb20c2785c541 0000000000000000322cc539e0cf5322 876d9bdcc5bca72ebf51e0cba2325322 dea946e0b179bef5361cb20c2785c541 fpsr=00000000 +faddp v16.4h, v17.4h, v18.4h ed6e1ebb8cda5175a26641cf5aff34ce 77e43d084fa5891a8b20646381504fb2 84323c09c110a7a3ccf943504995e94a 0000000000000000cc0fe94464634fb2 77e43d084fa5891a8b20646381504fb2 84323c09c110a7a3ccf943504995e94a fpsr=00000000 +faddp v17.4h, v18.4h, v19.4h b32227dc5a8cb261c3bb28e1f220fb09 d399277fd05ca4f26ef8025fbb4dcba1 f71b72246ed821cc62b7f4350fa9ad03 0000000000000000f3ffacfb6ef8cc0b d399277fd05ca4f26ef8025fbb4dcba1 f71b72246ed821cc62b7f4350fa9ad03 fpsr=00000000 +faddp v18.4h, v19.4h, v20.4h 81e19ba751200b054e9e031d71f33fe9 5bdb13e5665fd76eee30ba9cd9b572f2 37607b3155405557892d6649f507b77e 00000000000000006649f507ee3072db 5bdb13e5665fd76eee30ba9cd9b572f2 37607b3155405557892d6649f507b77e fpsr=00000000 +faddp v19.4h, v20.4h, v21.4h 02e2121f7aa8d894a9c470d95890d444 c4276f9d7a2066089aed1b36751530dd a5d2c97f7788bae1eca9a838c108ae44 0000000000000000eca9c13a08907515 c4276f9d7a2066089aed1b36751530dd a5d2c97f7788bae1eca9a838c108ae44 fpsr=00000000 +faddp v20.4h, v21.4h, v22.4h a936258b9666b4d4f37549976fb022ff c32cf63309e402406e9f5a58ac1a54d1 f411072078b28ffac6b0f635c6d5ccf1 0000000000000000f635cea66ed254d0 c32cf63309e402406e9f5a58ac1a54d1 f411072078b28ffac6b0f635c6d5ccf1 fpsr=00000000 +faddp v21.4h, v22.4h, v23.4h eb961e83edc02ffa57cb79e901fcadd7 ef23560adb3157cc50072abaf61c5a46 4fd84b29b99a6b2dcd4345d71d165b24 0000000000000000cb9a5b245009f60f ef23560adb3157cc50072abaf61c5a46 4fd84b29b99a6b2dcd4345d71d165b24 fpsr=00000000 +faddp v22.4h, v23.4h, v24.4h 692a2afdae04a39e34e7a802b90e2f84 52bffb790361bc8206a61431e6f4cfcd 6a9d96d7b56b3f7ef02dfb66a188a88b 0000000000000000fc00a9ed149be713 52bffb790361bc8206a61431e6f4cfcd 6a9d96d7b56b3f7ef02dfb66a188a88b fpsr=00000000 +faddp v23.4h, v24.4h, v25.4h 264b8be9b6fd329ce1613adc48a6dcd9 d648d4b952a71df16a0141c98eb2505e 9a04d2f816626c2c2f38a8db40b290ab 00000000000000002cca40b26a02505e d648d4b952a71df16a0141c98eb2505e 9a04d2f816626c2c2f38a8db40b290ab fpsr=00000000 +faddp v24.4h, v25.4h, v26.4h 03485ea08590e93c07700db0637e8eb7 23fa3e4706acddf45d393078afc3b5d8 3e8e322a4ff6b6d1b75f0f9fb4e98c0d 0000000000000000b75db4ea5d3ab7c9 23fa3e4706acddf45d393078afc3b5d8 3e8e322a4ff6b6d1b75f0f9fb4e98c0d fpsr=00000000 +faddp v25.4h, v26.4h, v27.4h 5f3646169d10a4a4a96e8ad5ed65b981 3b2220ae6674d2fb42f1655f05df749c e266a78d90ffdc91cea49ae5c06573d8 0000000000000000cea473d86562749c 3b2220ae6674d2fb42f1655f05df749c e266a78d90ffdc91cea49ae5c06573d8 fpsr=00000000 +faddp v26.4h, v27.4h, v28.4h 1c7493622cfa2597b6855d5cd44e174a 868b2e22d97fdd69760648ac6426460c 349f42f2e67983ac302a67122627dc71 00000000000000006712dc717607642c 868b2e22d97fdd69760648ac6426460c 349f42f2e67983ac302a67122627dc71 fpsr=00000000 +faddp v27.4h, v28.4h, v29.4h 96584f08a2f98312aff067d5f03b44cf 1eb33ae9199674ecd8d7987a5aa2c601 29fec9e82973b95bac8519f59f2d04ab 0000000000000000ac559f1ad8d75a72 1eb33ae9199674ecd8d7987a5aa2c601 29fec9e82973b95bac8519f59f2d04ab fpsr=00000000 +faddp v28.4h, v29.4h, v30.4h 89dc3ea5a31f12c364df0e25357e07d6 913d502c107e9cd06a3eec76b56ecb74 3edf14402e48bffaabe616bb98dc80c1 0000000000000000abb098e2e55ccb9f 913d502c107e9cd06a3eec76b56ecb74 3edf14402e48bffaabe616bb98dc80c1 fpsr=00000000 +faddp v29.4h, v30.4h, v31.4h 2a1fe48bf7d8b25706c5dff7abfe7295 0d2ba7bfbfefcfc75bab8685a4c94b2d 19f3d7116d5971d5d234977794db61d6 0000000000000000d23461d65bab4b2b 0d2ba7bfbfefcfc75bab8685a4c94b2d 19f3d7116d5971d5d234977794db61d6 fpsr=00000000 -- 2.47.2