[PATCH v2 00/15] target/arm: partial vector cleanup

Richard Henderson posted 15 patches 4 years ago
Failed in applying to current master (apply log)
There is a newer version of this series
target/arm/helper.h        |   71 +-
target/arm/translate.h     |   84 +-
target/arm/neon_helper.c   |   10 -
target/arm/translate-a64.c |  210 ++--
target/arm/translate.c     | 1948 ++++++++++++++++++++++++------------
target/arm/vec_helper.c    |  233 ++++-
target/arm/vfp_helper.c    |    4 +-
7 files changed, 1679 insertions(+), 881 deletions(-)
[PATCH v2 00/15] target/arm: partial vector cleanup
Posted by Richard Henderson 4 years ago
This is not complete, but shows the direction I'd like to go.

It may well help what Peter is doing with the neon decodetree
conversion.  It may be helpful to apply before the conversion
in order to reduce the number of special cases.  As may
continuing with the cleanup; I'll probably work on that more
next week.

Version 2 extracts more bits from my sve2 branch.  There's
still more to pull back, especially for crypto_helper.c, where
there are also tail clearing bugs to fix.


r~


Richard Henderson (15):
  target/arm: Create gen_gvec_[us]sra
  target/arm: Create gen_gvec_{u,s}{rshr,rsra}
  target/arm: Create gen_gvec_{sri,sli}
  target/arm: Remove unnecessary range check for VSHL
  target/arm: Tidy handle_vec_simd_shri
  target/arm: Wrap vector compare zero GVecGen2 in GVecGen2Fn
  target/arm: Wrap vector mla/mls GVecGen3 in GVecGen3Fn
  target/arm: Wrap vector cmtst/ushl/sshl GVecGen3 in GVecGen3Fn
  target/arm: Wrap vector uqadd/sqadd/uqsub/sqsub GVecGen4 in GVecGen3Fn
  target/arm: Remove fp_status from helper_{recpe,rsqrte}_u32
  target/arm: Wrap vector qrdmla/qrdmls in GVecGen3Fn
  target/arm: Pass pointer to qc to qrdmla/qrdmls
  target/arm: Clear tail in gvec_fmul_idx_*, gvec_fmla_idx_*
  target/arm: Vectorize SABD/UABD
  target/arm: Vectorize SABA/UABA

 target/arm/helper.h        |   71 +-
 target/arm/translate.h     |   84 +-
 target/arm/neon_helper.c   |   10 -
 target/arm/translate-a64.c |  210 ++--
 target/arm/translate.c     | 1948 ++++++++++++++++++++++++------------
 target/arm/vec_helper.c    |  233 ++++-
 target/arm/vfp_helper.c    |    4 +-
 7 files changed, 1679 insertions(+), 881 deletions(-)

-- 
2.20.1


Re: [PATCH v2 00/15] target/arm: partial vector cleanup
Posted by Peter Maydell 4 years ago
On Sat, 2 May 2020 at 23:45, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> This is not complete, but shows the direction I'd like to go.
>
> It may well help what Peter is doing with the neon decodetree
> conversion.  It may be helpful to apply before the conversion
> in order to reduce the number of special cases.  As may
> continuing with the cleanup; I'll probably work on that more
> next week.
>
> Version 2 extracts more bits from my sve2 branch.  There's
> still more to pull back, especially for crypto_helper.c, where
> there are also tail clearing bugs to fix.

This doesn't apply on master any more as a result of the
first lump of decodetree stuff going in. Also patch 2
doesn't seem to compile:

/home/petmay01/linaro/qemu-from-laptop/qemu/target/arm/translate.c: In
function ‘gen_gvec_srshr’:
/home/petmay01/linaro/qemu-from-laptop/qemu/target/arm/translate.c:4107:9:
error: implicit declaration of function ‘tcg_gen_gvec_dup_imm’; did
you mean ‘tcg_gen_gvec_dup_i64’?
[-Werror=implicit-function-declaration]
         tcg_gen_gvec_dup_imm(vece, rd_ofs, opr_sz, max_sz, 0);
         ^~~~~~~~~~~~~~~~~~~~
         tcg_gen_gvec_dup_i64
/home/petmay01/linaro/qemu-from-laptop/qemu/target/arm/translate.c:4107:9:
error: nested extern declaration of ‘tcg_gen_gvec_dup_imm’
[-Werror=nested-externs]

Any chance you could do a rebase and resend?

thanks
-- PMM

Re: [PATCH v2 00/15] target/arm: partial vector cleanup
Posted by Richard Henderson 3 years, 12 months ago
On 5/5/20 3:38 AM, Peter Maydell wrote:
> This doesn't apply on master any more as a result of the
> first lump of decodetree stuff going in. Also patch 2
> doesn't seem to compile:
> 
> /home/petmay01/linaro/qemu-from-laptop/qemu/target/arm/translate.c: In
> function ‘gen_gvec_srshr’:
> /home/petmay01/linaro/qemu-from-laptop/qemu/target/arm/translate.c:4107:9:
> error: implicit declaration of function ‘tcg_gen_gvec_dup_imm’; did
> you mean ‘tcg_gen_gvec_dup_i64’?
> [-Werror=implicit-function-declaration]
>          tcg_gen_gvec_dup_imm(vece, rd_ofs, opr_sz, max_sz, 0);
>          ^~~~~~~~~~~~~~~~~~~~
>          tcg_gen_gvec_dup_i64
> /home/petmay01/linaro/qemu-from-laptop/qemu/target/arm/translate.c:4107:9:
> error: nested extern declaration of ‘tcg_gen_gvec_dup_imm’
> [-Werror=nested-externs]
> 
> Any chance you could do a rebase and resend?


Ah yes, it seems built on top of tcg-next.  Time for a pull there too, lest
this have to get changed yet again.


r~