[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/16] Lower TCG vector ops to LSX
From: |
Jiajie Chen |
Subject: |
[PATCH v4 00/16] Lower TCG vector ops to LSX |
Date: |
Fri, 8 Sep 2023 10:21:07 +0800 |
This patch series allows qemu to utilize LSX instructions on LoongArch
machines to execute TCG vector ops.
Passed tcg tests with x86_64 and aarch64 cross compilers.
Changes since v3:
- Refactor add/sub_vec handling code to use a helper function
- Only use vldx/vstx for MO_128 load/store, otherwise fallback to two ld/st
Changes since v2:
- Add vece argument to tcg_target_const_match() for const args of vector ops
- Use custom constraint for cmp_vec/add_vec/sub_vec for better const arg
handling
- Implement 128-bit load & store using vldx/vstx
Changes since v1:
- Optimize dupi_vec/st_vec/ld_vec/cmp_vec/add_vec/sub_vec generation
- Lower not_vec/shi_vec/roti_vec/rotv_vec
Jiajie Chen (16):
tcg/loongarch64: Import LSX instructions
tcg/loongarch64: Lower basic tcg vec ops to LSX
tcg: pass vece to tcg_target_const_match()
tcg/loongarch64: Lower cmp_vec to vseq/vsle/vslt
tcg/loongarch64: Lower add/sub_vec to vadd/vsub
tcg/loongarch64: Lower vector bitwise operations
tcg/loongarch64: Lower neg_vec to vneg
tcg/loongarch64: Lower mul_vec to vmul
tcg/loongarch64: Lower vector min max ops
tcg/loongarch64: Lower vector saturated ops
tcg/loongarch64: Lower vector shift vector ops
tcg/loongarch64: Lower bitsel_vec to vbitsel
tcg/loongarch64: Lower vector shift integer ops
tcg/loongarch64: Lower rotv_vec ops to LSX
tcg/loongarch64: Lower rotli_vec to vrotri
tcg/loongarch64: Implement 128-bit load & store
tcg/aarch64/tcg-target.c.inc | 2 +-
tcg/arm/tcg-target.c.inc | 2 +-
tcg/i386/tcg-target.c.inc | 2 +-
tcg/loongarch64/tcg-insn-defs.c.inc | 6251 +++++++++++++++++++++++++-
tcg/loongarch64/tcg-target-con-set.h | 9 +
tcg/loongarch64/tcg-target-con-str.h | 3 +
tcg/loongarch64/tcg-target.c.inc | 619 ++-
tcg/loongarch64/tcg-target.h | 40 +-
tcg/loongarch64/tcg-target.opc.h | 12 +
tcg/mips/tcg-target.c.inc | 2 +-
tcg/ppc/tcg-target.c.inc | 2 +-
tcg/riscv/tcg-target.c.inc | 2 +-
tcg/s390x/tcg-target.c.inc | 2 +-
tcg/sparc64/tcg-target.c.inc | 2 +-
tcg/tcg.c | 4 +-
tcg/tci/tcg-target.c.inc | 2 +-
16 files changed, 6824 insertions(+), 132 deletions(-)
create mode 100644 tcg/loongarch64/tcg-target.opc.h
--
2.42.0
- [PATCH v4 00/16] Lower TCG vector ops to LSX,
Jiajie Chen <=
- [PATCH v4 03/16] tcg: pass vece to tcg_target_const_match(), Jiajie Chen, 2023/09/07
- [PATCH v4 04/16] tcg/loongarch64: Lower cmp_vec to vseq/vsle/vslt, Jiajie Chen, 2023/09/07
- [PATCH v4 02/16] tcg/loongarch64: Lower basic tcg vec ops to LSX, Jiajie Chen, 2023/09/07
- [PATCH v4 01/16] tcg/loongarch64: Import LSX instructions, Jiajie Chen, 2023/09/07
- [PATCH v4 05/16] tcg/loongarch64: Lower add/sub_vec to vadd/vsub, Jiajie Chen, 2023/09/07
- [PATCH v4 06/16] tcg/loongarch64: Lower vector bitwise operations, Jiajie Chen, 2023/09/07
- [PATCH v4 07/16] tcg/loongarch64: Lower neg_vec to vneg, Jiajie Chen, 2023/09/07
- [PATCH v4 08/16] tcg/loongarch64: Lower mul_vec to vmul, Jiajie Chen, 2023/09/07