From: LIU Zhiwei <zhiwei_liu@linux.alibaba.com>
To: qemu-devel@nongnu.org
Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com,
alistair.francis@wdc.com, dbarboza@ventanamicro.com,
liwei1518@gmail.com, bmeng.cn@gmail.com,
zhiwei_liu@linux.alibaba.com, richard.henderson@linaro.org,
TANG Tiancheng <tangtiancheng.ttc@alibaba-inc.com>
Subject: [PATCH v2 00/14] tcg/riscv: Add support for vector
Date: Fri, 30 Aug 2024 14:15:53 +0800 [thread overview]
Message-ID: <20240830061607.1940-1-zhiwei_liu@linux.alibaba.com> (raw)
From: TANG Tiancheng <tangtiancheng.ttc@alibaba-inc.com>
This patch set introduces support for the RISC-V vector extension
in TCG backend for RISC-V targets.
v2:
1. Remove [PATCH v1 03/15] and use a simpler approach with fixed
constraints at initialization in the backend instead of modifying
register allocation constraints in tcg.c. See details in 2.
2. Change the available vector registers, and the constraint registers
which are defined in "tcg-target-con-str.h", to the minimum for all
vector instructions; for TCG_TYPE_V256 (vlen=64, lmul=4, omitting v0),
max 7 registers, and TCG_TYPE_V128/64 also use only 7.
3. Remove all inline markers; let the compiler decide.
4. Merge thread variables to use only prev_vtype.
5. Increase use of whole load/store instructions when bit width ≥ vlen.
6. Add vmv<nr>r.v to move registers when bit width ≥ vlen.
7. Configure vtype with separate operation length (vl) and element
width (SEW); IRs not changing SEW should inherit SEW from the previous IR
(e.g., load/store/move/dup/dupm, and/or/xor/not). Place set_vec_config
in the switch.
8. Change vlen detection to include element width.
9. Use neg instead of sub in cmp_vec expand.
10. Complete all expansions in cmp_vec's expand function, not in
tcg_out_vec_op.
11. Move some asserts into tcg_out_opc_*.
12. Remove the check for riscv_vlen >= 64 when enabling vector support.
13. Move not_vec to patch 7.
14. Change OPC_VRSUB_VX to OPC_VRSUB_VI
15. Move the vsetvli out of the SIGILL probe.
16. Move the initialization of the riscv_vlen to the cpuinfo_init.
v1:
https://lists.gnu.org/archive/html/qemu-riscv/2024-08/msg00205.html
Swung0x48 (1):
tcg/riscv: Add basic support for vector
TANG Tiancheng (13):
tcg/op-gvec: Fix iteration step in 32-bit operation
util: Add RISC-V vector extension probe in cpuinfo
tcg/riscv: Add riscv vset{i}vli support
tcg/riscv: Implement vector load/store
tcg/riscv: Implement vector mov/dup{m/i}
tcg/riscv: Add support for basic vector opcodes
tcg/riscv: Implement vector cmp ops
tcg/riscv: Implement vector neg ops
tcg/riscv: Implement vector sat/mul ops
tcg/riscv: Implement vector min/max ops
tcg/riscv: Implement vector shs/v ops
tcg/riscv: Implement vector roti/v/x shi ops
tcg/riscv: Enable native vector support for TCG host
host/include/riscv/host/cpuinfo.h | 2 +
tcg/riscv/tcg-target-con-set.h | 9 +
tcg/riscv/tcg-target-con-str.h | 2 +
tcg/riscv/tcg-target.c.inc | 961 ++++++++++++++++++++++++++++--
tcg/riscv/tcg-target.h | 80 ++-
tcg/riscv/tcg-target.opc.h | 20 +
tcg/tcg-op-gvec.c | 2 +-
util/cpuinfo-riscv.c | 26 +-
8 files changed, 1032 insertions(+), 70 deletions(-)
create mode 100644 tcg/riscv/tcg-target.opc.h
--
2.43.0
next reply other threads:[~2024-08-30 6:17 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-30 6:15 LIU Zhiwei [this message]
2024-08-30 6:15 ` [PATCH v2 01/14] tcg/op-gvec: Fix iteration step in 32-bit operation LIU Zhiwei
2024-08-31 23:59 ` Richard Henderson
2024-08-30 6:15 ` [PATCH v2 02/14] util: Add RISC-V vector extension probe in cpuinfo LIU Zhiwei
2024-09-02 0:12 ` Richard Henderson
2024-08-30 6:15 ` [PATCH v2 03/14] tcg/riscv: Add basic support for vector LIU Zhiwei
2024-09-02 0:28 ` Richard Henderson
2024-08-30 6:15 ` [PATCH v2 04/14] tcg/riscv: Add riscv vset{i}vli support LIU Zhiwei
2024-09-02 1:06 ` Richard Henderson
2024-08-30 6:15 ` [PATCH v2 05/14] tcg/riscv: Implement vector load/store LIU Zhiwei
2024-09-02 1:31 ` Richard Henderson
2024-08-30 6:15 ` [PATCH v2 06/14] tcg/riscv: Implement vector mov/dup{m/i} LIU Zhiwei
2024-09-02 1:36 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 07/14] tcg/riscv: Add support for basic vector opcodes LIU Zhiwei
2024-09-02 1:39 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 08/14] tcg/riscv: Implement vector cmp ops LIU Zhiwei
2024-09-03 6:45 ` Richard Henderson
2024-09-03 14:51 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 09/14] tcg/riscv: Implement vector neg ops LIU Zhiwei
2024-09-03 14:52 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 10/14] tcg/riscv: Implement vector sat/mul ops LIU Zhiwei
2024-09-03 14:52 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 11/14] tcg/riscv: Implement vector min/max ops LIU Zhiwei
2024-09-03 14:53 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 12/14] tcg/riscv: Implement vector shs/v ops LIU Zhiwei
2024-09-03 14:54 ` Richard Henderson
2024-08-30 6:16 ` [PATCH v2 13/14] tcg/riscv: Implement vector roti/v/x shi ops LIU Zhiwei
2024-09-03 15:15 ` Richard Henderson
2024-09-04 15:25 ` LIU Zhiwei
2024-09-04 19:05 ` Richard Henderson
2024-09-05 1:40 ` LIU Zhiwei
2024-08-30 6:16 ` [PATCH v2 14/14] tcg/riscv: Enable native vector support for TCG host LIU Zhiwei
2024-09-03 15:02 ` 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=20240830061607.1940-1-zhiwei_liu@linux.alibaba.com \
--to=zhiwei_liu@linux.alibaba.com \
--cc=alistair.francis@wdc.com \
--cc=bmeng.cn@gmail.com \
--cc=dbarboza@ventanamicro.com \
--cc=liwei1518@gmail.com \
--cc=palmer@dabbelt.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=tangtiancheng.ttc@alibaba-inc.com \
/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).