On 8/28/23 08:19, Jiajie Chen wrote:
This patch series allows qemu to utilize LSX instructions on LoongArch
machines to execute TCG vector ops.

Jiajie Chen (11):
   tcg/loongarch64: Import LSX instructions
   tcg/loongarch64: Lower basic tcg vec ops to LSX
   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/tcg-insn-defs.c.inc  | 6251 +++++++++++++++++++++++++-
  tcg/loongarch64/tcg-target-con-set.h |    5 +
  tcg/loongarch64/tcg-target-con-str.h |    1 +
  tcg/loongarch64/tcg-target.c.inc     |  414 +-
  tcg/loongarch64/tcg-target.h         |   37 +-
  tcg/loongarch64/tcg-target.opc.h     |   12 +
  6 files changed, 6601 insertions(+), 119 deletions(-)
  create mode 100644 tcg/loongarch64/tcg-target.opc.h

Looks very good at a first pass.

We should probably improve tcg_gen_not_vec to try NOR. This would support loongarch64, and allow the special expansion in PPC and S390X to be removed.

It would be good to support TCG_TARGET_HAS_shi_vec using VSLLI/VSRLI/VSRAI.

It would be good to support TCG_TARGET_HAS_roti_vec and TCG_TARGET_HAS_rotv_vec.



r~

Reply via email to