[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 18/29] target/arm: Use {, s}extract in handle_vec_simd_wshli
From: |
Richard Henderson |
Subject: |
[PATCH v2 18/29] target/arm: Use {, s}extract in handle_vec_simd_wshli |
Date: |
Mon, 9 Sep 2024 09:22:28 -0700 |
Combine the right shift with the extension via
the tcg extract operations.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/tcg/translate-a64.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c
index 1225aac665..740620074a 100644
--- a/target/arm/tcg/translate-a64.c
+++ b/target/arm/tcg/translate-a64.c
@@ -10477,8 +10477,11 @@ static void handle_vec_simd_wshli(DisasContext *s,
bool is_q, bool is_u,
read_vec_element(s, tcg_rn, rn, is_q ? 1 : 0, MO_64);
for (i = 0; i < elements; i++) {
- tcg_gen_shri_i64(tcg_rd, tcg_rn, i * esize);
- ext_and_shift_reg(tcg_rd, tcg_rd, size | (!is_u << 2), 0);
+ if (is_u) {
+ tcg_gen_extract_i64(tcg_rd, tcg_rn, i * esize, esize);
+ } else {
+ tcg_gen_sextract_i64(tcg_rd, tcg_rn, i * esize, esize);
+ }
tcg_gen_shli_i64(tcg_rd, tcg_rd, shift);
write_vec_element(s, tcg_rd, rd, i, size + 1);
}
--
2.43.0
- Re: [PATCH v2 12/29] target/arm: Convert FMOVI (scalar, immediate) to decodetree, (continued)
[PATCH v2 13/29] target/arm: Convert MOVI, FMOV, ORR, BIC (vector immediate) to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 14/29] target/arm: Introduce gen_gvec_sshr, gen_gvec_ushr, Richard Henderson, 2024/09/09
[PATCH v2 15/29] target/arm: Fix whitespace near gen_srshr64_i64, Richard Henderson, 2024/09/09
[PATCH v2 19/29] target/arm: Convert SSHLL, USHLL to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 16/29] target/arm: Convert handle_vec_simd_shri to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 17/29] target/arm: Convert handle_vec_simd_shli to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 18/29] target/arm: Use {, s}extract in handle_vec_simd_wshli,
Richard Henderson <=
[PATCH v2 20/29] target/arm: Push tcg_rnd into handle_shri_with_rndacc, Richard Henderson, 2024/09/09
[PATCH v2 21/29] target/arm: Split out subroutines of handle_shri_with_rndacc, Richard Henderson, 2024/09/09
[PATCH v2 22/29] target/arm: Convert SHRN, RSHRN to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 24/29] target/arm: Convert handle_scalar_simd_shli to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 23/29] target/arm: Convert handle_scalar_simd_shri to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 26/29] target/arm: Widen NeonGenNarrowEnvFn return to 64 bits, Richard Henderson, 2024/09/09
[PATCH v2 27/29] target/arm: Convert SQSHL, UQSHL, SQSHLU (immediate) to decodetree, Richard Henderson, 2024/09/09
[PATCH v2 28/29] target/arm: Convert vector [US]QSHRN, [US]QRSHRN, SQSHRUN to decodetree, Richard Henderson, 2024/09/09