From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org, peter.maydell@linaro.org
Subject: [PATCH v3 01/97] target/arm: Introduce FPST_ZA, FPST_ZA_F16
Date: Wed, 2 Jul 2025 06:32:34 -0600 [thread overview]
Message-ID: <20250702123410.761208-2-richard.henderson@linaro.org> (raw)
In-Reply-To: <20250702123410.761208-1-richard.henderson@linaro.org>
Rather than repeatedly copying FPST_FPCR to locals
and setting default nan mode, create dedicated float_status.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/cpu.h | 12 +++++++++++-
target/arm/cpu.c | 4 ++++
target/arm/tcg/vfp_helper.c | 12 +++++++++++-
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 15b47a5bfc..c5060bcb97 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -206,6 +206,8 @@ typedef struct NVICState NVICState;
* when FPCR.AH == 1 (bfloat16 conversions and multiplies,
* and the reciprocal and square root estimate/step insns);
* for half-precision
+ * ZA: the "streaming sve" fp status.
+ * ZA_F16: likewise for half-precision.
*
* Half-precision operations are governed by a separate
* flush-to-zero control bit in FPSCR:FZ16. We pass a separate
@@ -226,6 +228,12 @@ typedef struct NVICState NVICState;
* they ignore FPCR.RMode. But they don't ignore FPCR.FZ16,
* which means we need an FPST_AH_F16 as well.
*
+ * The "ZA" float_status are for Streaming SVE operations which use
+ * default-NaN and do not generate fp exceptions, which means that they
+ * do not accumulate exception bits back into FPCR.
+ * See e.g. FPAdd vs FPAdd_ZA pseudocode functions, and the setting
+ * of fpcr.DN and fpexec parameters.
+ *
* To avoid having to transfer exception bits around, we simply
* say that the FPSCR cumulative exception flags are the logical
* OR of the flags in the four fp statuses. This relies on the
@@ -239,10 +247,12 @@ typedef enum ARMFPStatusFlavour {
FPST_A64_F16,
FPST_AH,
FPST_AH_F16,
+ FPST_ZA,
+ FPST_ZA_F16,
FPST_STD,
FPST_STD_F16,
} ARMFPStatusFlavour;
-#define FPST_COUNT 8
+#define FPST_COUNT 10
typedef struct CPUArchState {
/* Regs for current mode. */
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index e025e241ed..6111b9db91 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -554,11 +554,15 @@ static void arm_cpu_reset_hold(Object *obj, ResetType type)
set_flush_inputs_to_zero(1, &env->vfp.fp_status[FPST_STD]);
set_default_nan_mode(1, &env->vfp.fp_status[FPST_STD]);
set_default_nan_mode(1, &env->vfp.fp_status[FPST_STD_F16]);
+ set_default_nan_mode(1, &env->vfp.fp_status[FPST_ZA]);
+ set_default_nan_mode(1, &env->vfp.fp_status[FPST_ZA_F16]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A32]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A64]);
+ arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_ZA]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_STD]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A32_F16]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A64_F16]);
+ arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_ZA_F16]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_STD_F16]);
arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_AH]);
set_flush_to_zero(1, &env->vfp.fp_status[FPST_AH]);
diff --git a/target/arm/tcg/vfp_helper.c b/target/arm/tcg/vfp_helper.c
index b1324c5c0a..e156e3774a 100644
--- a/target/arm/tcg/vfp_helper.c
+++ b/target/arm/tcg/vfp_helper.c
@@ -123,7 +123,7 @@ uint32_t vfp_get_fpsr_from_host(CPUARMState *env)
a64_flags |= (get_float_exception_flags(&env->vfp.fp_status[FPST_A64_F16])
& ~(float_flag_input_denormal_flushed | float_flag_input_denormal_used));
/*
- * We do not merge in flags from FPST_AH or FPST_AH_F16, because
+ * We do not merge in flags from FPST_{AH,ZA} or FPST_{AH,ZA}_F16, because
* they are used for insns that must not set the cumulative exception bits.
*/
@@ -196,6 +196,8 @@ void vfp_set_fpcr_to_host(CPUARMState *env, uint32_t val, uint32_t mask)
set_float_rounding_mode(i, &env->vfp.fp_status[FPST_A64]);
set_float_rounding_mode(i, &env->vfp.fp_status[FPST_A32_F16]);
set_float_rounding_mode(i, &env->vfp.fp_status[FPST_A64_F16]);
+ set_float_rounding_mode(i, &env->vfp.fp_status[FPST_ZA]);
+ set_float_rounding_mode(i, &env->vfp.fp_status[FPST_ZA_F16]);
}
if (changed & FPCR_FZ16) {
bool ftz_enabled = val & FPCR_FZ16;
@@ -203,15 +205,18 @@ void vfp_set_fpcr_to_host(CPUARMState *env, uint32_t val, uint32_t mask)
set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_A64_F16]);
set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_STD_F16]);
set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_AH_F16]);
+ set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_ZA_F16]);
set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_A32_F16]);
set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_A64_F16]);
set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_STD_F16]);
set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_AH_F16]);
+ set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_ZA_F16]);
}
if (changed & FPCR_FZ) {
bool ftz_enabled = val & FPCR_FZ;
set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_A32]);
set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_A64]);
+ set_flush_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_ZA]);
/* FIZ is A64 only so FZ always makes A32 code flush inputs to zero */
set_flush_inputs_to_zero(ftz_enabled, &env->vfp.fp_status[FPST_A32]);
}
@@ -223,6 +228,7 @@ void vfp_set_fpcr_to_host(CPUARMState *env, uint32_t val, uint32_t mask)
bool fitz_enabled = (val & FPCR_FIZ) ||
(val & (FPCR_FZ | FPCR_AH)) == FPCR_FZ;
set_flush_inputs_to_zero(fitz_enabled, &env->vfp.fp_status[FPST_A64]);
+ set_flush_inputs_to_zero(fitz_enabled, &env->vfp.fp_status[FPST_ZA]);
}
if (changed & FPCR_DN) {
bool dnan_enabled = val & FPCR_DN;
@@ -240,9 +246,13 @@ void vfp_set_fpcr_to_host(CPUARMState *env, uint32_t val, uint32_t mask)
/* Change behaviours for A64 FP operations */
arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_A64]);
arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_A64_F16]);
+ arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_ZA]);
+ arm_set_ah_fp_behaviours(&env->vfp.fp_status[FPST_ZA_F16]);
} else {
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A64]);
arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_A64_F16]);
+ arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_ZA]);
+ arm_set_default_fp_behaviours(&env->vfp.fp_status[FPST_ZA_F16]);
}
}
/*
--
2.43.0
next prev parent reply other threads:[~2025-07-02 12:34 UTC|newest]
Thread overview: 172+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-02 12:32 [PATCH v3 00/97] target/arm: Implement FEAT_SME2p1 Richard Henderson
2025-07-02 12:32 ` Richard Henderson [this message]
2025-07-02 12:32 ` [PATCH v3 02/97] target/arm: Use FPST_ZA for sme_fmopa_[hsd] Richard Henderson
2025-07-02 12:32 ` [PATCH v3 03/97] target/arm: Rename zarray to za_state.za Richard Henderson
2025-07-02 12:32 ` [PATCH v3 04/97] target/arm: Add isar feature tests for SME2p1, SVE2p1 Richard Henderson
2025-07-02 12:32 ` [PATCH v3 05/97] target/arm: Add ZT0 Richard Henderson
2025-07-02 12:32 ` [PATCH v3 06/97] target/arm: Add zt0_excp_el to DisasContext Richard Henderson
2025-07-03 9:32 ` Peter Maydell
2025-07-02 12:32 ` [PATCH v3 07/97] target/arm: Implement SME2 ZERO ZT0 Richard Henderson
2025-07-02 12:32 ` [PATCH v3 08/97] target/arm: Add alignment argument to gen_sve_{ldr, str} Richard Henderson
2025-07-03 9:33 ` Peter Maydell
2025-07-02 12:32 ` [PATCH v3 09/97] target/arm: Implement SME2 LDR/STR ZT0 Richard Henderson
2025-07-02 12:32 ` [PATCH v3 10/97] target/arm: Implement SME2 MOVT Richard Henderson
2025-07-02 12:32 ` [PATCH v3 11/97] target/arm: Split get_tile_rowcol argument tile_index Richard Henderson
2025-07-02 12:32 ` [PATCH v3 12/97] target/arm: Rename MOVA for translate Richard Henderson
2025-07-02 12:32 ` [PATCH v3 13/97] target/arm: Split out get_zarray Richard Henderson
2025-07-02 12:32 ` [PATCH v3 14/97] target/arm: Introduce ARMCPU.sme_max_vq Richard Henderson
2025-07-03 9:33 ` Peter Maydell
2025-07-02 12:32 ` [PATCH v3 15/97] target/arm: Implement SME2 MOVA to/from tile, multiple registers Richard Henderson
2025-07-03 9:33 ` Peter Maydell
2025-07-02 12:32 ` [PATCH v3 16/97] target/arm: Implement SME2 MOVA to/from array, " Richard Henderson
2025-07-02 12:32 ` [PATCH v3 17/97] target/arm: Implement SME2 BMOPA Richard Henderson
2025-07-02 12:32 ` [PATCH v3 18/97] target/arm: Implement SME2 SMOPS, UMOPS (2-way) Richard Henderson
2025-07-02 12:32 ` [PATCH v3 19/97] target/arm: Introduce gen_gvec_sve2_sqdmulh Richard Henderson
2025-07-02 12:32 ` [PATCH v3 20/97] target/arm: Implement SME2 Multiple and Single SVE Destructive Richard Henderson
2025-07-02 12:32 ` [PATCH v3 21/97] target/arm: Implement SME2 Multiple Vectors " Richard Henderson
2025-07-02 12:32 ` [PATCH v3 22/97] target/arm: Implement SME2 ADD/SUB (array results, multiple and single vector) Richard Henderson
2025-07-02 12:32 ` [PATCH v3 23/97] target/arm: Implement SME2 ADD/SUB (array results, multiple vectors) Richard Henderson
2025-07-02 12:32 ` [PATCH v3 24/97] target/arm: Pass ZA to helper_sve2_fmlal_zz[zx]w_s Richard Henderson
2025-07-02 12:32 ` [PATCH v3 25/97] target/arm: Add helper_gvec{_ah}_bfmlsl{_nx} Richard Henderson
2025-07-03 9:34 ` Peter Maydell
2025-07-02 12:32 ` [PATCH v3 26/97] target/arm: Implement SME2 FMLAL, BFMLAL Richard Henderson
2025-07-02 12:33 ` [PATCH v3 27/97] target/arm: Implement SME2 FDOT Richard Henderson
2025-07-02 12:33 ` [PATCH v3 28/97] target/arm: Implement SME2 BFDOT Richard Henderson
2025-07-02 12:33 ` [PATCH v3 29/97] target/arm: Implement SME2 FVDOT, BFVDOT Richard Henderson
2025-07-02 12:33 ` [PATCH v3 30/97] target/arm: Rename helper_gvec_*dot_[bh] to *_4[bh] Richard Henderson
2025-07-02 12:33 ` [PATCH v3 31/97] target/arm: Implemement SME2 SDOT, UDOT, USDOT, SUDOT Richard Henderson
2025-07-03 9:45 ` Peter Maydell
2025-07-03 16:25 ` Richard Henderson
2025-07-02 12:33 ` [PATCH v3 32/97] target/arm: Rename SVE SDOT and UDOT patterns Richard Henderson
2025-07-03 9:49 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 33/97] target/arm: Tighten USDOT (vectors) decode Richard Henderson
2025-07-03 9:49 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 34/97] target/arm: Implement SDOT, UDOT (2-way) for SME2/SVE2p1 Richard Henderson
2025-07-03 9:49 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 35/97] target/arm: Implement SME2 SVDOT, UVDOT, SUVDOT, USVDOT Richard Henderson
2025-07-02 12:33 ` [PATCH v3 36/97] target/arm: Implement SME2 SMLAL, SMLSL, UMLAL, UMLSL Richard Henderson
2025-07-03 9:50 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 37/97] target/arm: Rename gvec_fml[as]_[hs] with _nf_ infix Richard Henderson
2025-07-03 9:50 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 38/97] target/arm: Implement SME2 FMLA, FMLS Richard Henderson
2025-07-03 9:50 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 39/97] target/arm: Implement SME2 BFMLA, BFMLS Richard Henderson
2025-07-03 9:50 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 40/97] target/arm: Implement SME2 FADD, FSUB, BFADD, BFSUB Richard Henderson
2025-07-03 9:51 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 41/97] target/arm: Implement SME2 ADD/SUB (array accumulator) Richard Henderson
2025-07-03 10:13 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 42/97] target/arm: Implement SME2 BFCVT, BFCVTN, FCVT, FCVTN Richard Henderson
2025-07-03 10:13 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 43/97] target/arm: Implement SME2 FCVT (widening), FCVTL Richard Henderson
2025-07-03 10:14 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 44/97] target/arm: Implement SME2 FCVTZS, FCVTZU Richard Henderson
2025-07-03 10:14 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 45/97] target/arm: Implement SME2 SCVTF, UCVTF Richard Henderson
2025-07-03 10:14 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 46/97] target/arm: Implement SME2 FRINTN, FRINTP, FRINTM, FRINTA Richard Henderson
2025-07-03 10:14 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 47/97] target/arm: Introduce do_[us]sat_[bhs] macros Richard Henderson
2025-07-03 10:15 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 48/97] target/arm: Use do_[us]sat_[bhs] in sve_helper.c Richard Henderson
2025-07-03 10:15 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 49/97] target/arm: Implement SME2 SQCVT, UQCVT, SQCVTU Richard Henderson
2025-07-03 10:20 ` Peter Maydell
2025-07-03 15:53 ` Richard Henderson
2025-07-02 12:33 ` [PATCH v3 50/97] target/arm: Implement SQCVTN, UQCVTN, SQCVTUN for SME2/SVE2p1 Richard Henderson
2025-07-03 10:22 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 51/97] target/arm: Implement SME2 SUNPK, UUNPK Richard Henderson
2025-07-03 10:23 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 52/97] target/arm: Implement SME2 ZIP, UZP (four registers) Richard Henderson
2025-07-03 10:25 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 53/97] target/arm: Move do_urshr, do_srshr to vec_internal.h Richard Henderson
2025-07-03 10:25 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 54/97] target/arm: Implement SME2 SQRSHR, UQRSHR, SQRSHRN Richard Henderson
2025-07-03 10:28 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 55/97] target/arm: Implement SME2 ZIP, UZP (two registers) Richard Henderson
2025-07-03 10:27 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 56/97] target/arm: Implement SME2 FCLAMP, SCLAMP, UCLAMP Richard Henderson
2025-07-03 10:31 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 57/97] target/arm: Enable SCLAMP, UCLAMP for SVE2p1 Richard Henderson
2025-07-03 10:32 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 58/97] target/arm: Implement FCLAMP for SME2, SVE2p1 Richard Henderson
2025-07-03 10:32 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 59/97] target/arm: Implement SME2p1 Multiple Zero Richard Henderson
2025-07-03 10:33 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 60/97] target/arm: Introduce pred_count_test Richard Henderson
2025-07-02 13:34 ` Richard Henderson
2025-07-02 12:33 ` [PATCH v3 61/97] target/arm: Fold predtest_ones into helper_sve_brkns Richard Henderson
2025-07-03 10:36 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 62/97] target/arm: Split out do_whilel from helper_sve_whilel Richard Henderson
2025-07-03 10:38 ` Peter Maydell
2025-07-03 16:02 ` Richard Henderson
2025-07-02 12:33 ` [PATCH v3 63/97] target/arm: Split out do_whileg from helper_sve_whileg Richard Henderson
2025-07-02 12:33 ` [PATCH v3 64/97] target/arm: Move scale by esz into helper_sve_while* Richard Henderson
2025-07-03 12:10 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 65/97] target/arm: Split trans_WHILE to lt and gt Richard Henderson
2025-07-03 12:10 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 66/97] target/arm: Enable PSEL for SVE2p1 Richard Henderson
2025-07-03 12:10 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 67/97] target/arm: Implement SVE2p1 WHILE (predicate pair) Richard Henderson
2025-07-03 12:11 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 68/97] target/arm: Implement SVE2p1 WHILE (predicate as counter) Richard Henderson
2025-07-03 12:12 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 69/97] target/arm: Implement SVE2p1 PTRUE " Richard Henderson
2025-07-03 12:14 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 70/97] target/arm: Implement {ADD, SMIN, SMAX, UMIN, UMAX}QV for SVE2p1 Richard Henderson
2025-07-03 12:15 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 71/97] target/arm: Implement SVE2p1 PEXT Richard Henderson
2025-07-03 12:19 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 72/97] target/arm: Implement SME2 SEL Richard Henderson
2025-07-03 12:21 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 73/97] target/arm: Implement ANDQV, ORQV, EORQV for SVE2p1 Richard Henderson
2025-07-03 12:23 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 74/97] target/arm: Implement FADDQV, F{MIN, MAX}{NM}QV " Richard Henderson
2025-07-03 12:24 ` [PATCH v3 74/97] target/arm: Implement FADDQV, F{MIN,MAX}{NM}QV " Peter Maydell
2025-07-02 12:33 ` [PATCH v3 75/97] target/arm: Implement BFMLSLB{L,T} for SME2/SVE2p1 Richard Henderson
2025-07-03 12:24 ` [PATCH v3 75/97] target/arm: Implement BFMLSLB{L, T} " Peter Maydell
2025-07-02 12:33 ` [PATCH v3 76/97] target/arm: Implement CNTP (predicate as counter) " Richard Henderson
2025-07-03 12:25 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 77/97] target/arm: Implement DUPQ for SME2p1/SVE2p1 Richard Henderson
2025-07-03 12:27 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 78/97] target/arm: Implement EXTQ " Richard Henderson
2025-07-03 12:27 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 79/97] target/arm: Implement PMOV " Richard Henderson
2025-07-03 13:24 ` Peter Maydell
2025-07-03 23:27 ` Richard Henderson
2025-07-02 12:33 ` [PATCH v3 80/97] target/arm: Implement ZIPQ, UZPQ " Richard Henderson
2025-07-03 12:28 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 81/97] target/arm: Implement TBLQ, TBXQ " Richard Henderson
2025-07-03 12:29 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 82/97] target/arm: Implement SME2 counted predicate register load/store Richard Henderson
2025-07-03 13:30 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 83/97] target/arm: Split the ST_zpri and ST_zprr patterns Richard Henderson
2025-07-03 12:30 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 84/97] target/arm: Implement {LD1, ST1}{W, D} (128-bit element) for SVE2p1 Richard Henderson
2025-07-03 12:33 ` [PATCH v3 84/97] target/arm: Implement {LD1,ST1}{W,D} " Peter Maydell
2025-07-02 12:33 ` [PATCH v3 85/97] target/arm: Move ld1qq and st1qq primitives to sve_ldst_internal.h Richard Henderson
2025-07-03 12:35 ` Peter Maydell
2025-07-02 12:33 ` [PATCH v3 86/97] target/arm: Implement {LD, ST}[234]Q for SME2p1/SVE2p1 Richard Henderson
2025-07-03 12:37 ` Peter Maydell
2025-07-02 12:34 ` [PATCH v3 87/97] target/arm: Implement LD1Q, ST1Q for SVE2p1 Richard Henderson
2025-07-03 12:37 ` Peter Maydell
2025-07-02 12:34 ` [PATCH v3 88/97] target/arm: Implement MOVAZ for SME2p1 Richard Henderson
2025-07-03 12:38 ` Peter Maydell
2025-07-02 12:34 ` [PATCH v3 89/97] target/arm: Implement LUTI2, LUTI4 for SME2/SME2p1 Richard Henderson
2025-07-03 12:42 ` Peter Maydell
2025-07-02 12:34 ` [PATCH v3 90/97] target/arm: Rename FMOPA_h to FMOPA_w_h Richard Henderson
2025-07-02 12:34 ` [PATCH v3 91/97] target/arm: Rename BFMOPA to BFMOPA_w Richard Henderson
2025-07-02 12:34 ` [PATCH v3 92/97] target/arm: Support FPCR.AH in SME FMOPS, BFMOPS Richard Henderson
2025-07-03 12:45 ` Peter Maydell
2025-07-02 12:34 ` [PATCH v3 93/97] target/arm: Implement FMOPA (non-widening) for fp16 Richard Henderson
2025-07-03 17:15 ` Alex Bennée
2025-07-02 12:34 ` [PATCH v3 94/97] target/arm: Implement SME2 BFMOPA (non-widening) Richard Henderson
2025-07-03 17:16 ` Alex Bennée
2025-07-02 12:34 ` [PATCH v3 95/97] target/arm: Enable FEAT_SME2p1 on -cpu max Richard Henderson
2025-07-03 12:46 ` Peter Maydell
2025-07-03 17:17 ` Alex Bennée
2025-07-04 3:12 ` Richard Henderson
2025-07-04 9:30 ` Alex Bennée
2025-07-02 12:34 ` [PATCH v3 96/97] linux-user/aarch64: Set hwcap bits for SME2p1/SVE2p1 Richard Henderson
2025-07-03 12:50 ` Peter Maydell
2025-07-02 12:34 ` [PATCH v3 97/97] tests/tcg/aarch64: Add sme2-matmul test case Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250702123410.761208-2-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).