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