qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v9 00/26] tcg: generic vector operations


From: Richard Henderson
Subject: [Qemu-devel] [PATCH v9 00/26] tcg: generic vector operations
Date: Mon, 15 Jan 2018 19:33:38 -0800

I think this will be the last revision before queueing for pull.

Peter, the target/arm patches here are primarily for testing,
without having to go all the way through to SVE.  It also shows
how the generic vector interface ought to be used.  I'm happy
to drop the patches from the tcg pull and feed them through
target-arm.next, or keep them here as you wish.


r~


Minor changes since v8:
  * Reduce some code duplication within the patches.
  * Add vector op scalar interface.

Minor changes since v7:
  * Rearranged the patches into groups for readability.
  * Squished the tcg/i386 patches.
  * Fixed an encoding bug for vmovd xmm, reg (Kirill).
  * Fixed expansion bugs for i386 sar, trn.

Minor changes since v6:
  * Two bugs fixed pointed out by Kirill.
  * Allow for 4 and 5 operand operations.


Richard Henderson (26):
  tcg: Allow multiple word entries into the constant pool
  tcg: Add types and basic operations for host vectors
  tcg: Standardize integral arguments to expanders
  tcg: Add generic vector expanders
  tcg: Add generic vector ops for interleave
  tcg: Add generic vector ops for constant shifts
  tcg: Add generic vector ops for comparisons
  tcg: Add generic vector ops for multiplication
  tcg: Add generic vector ops for extension
  tcg: Add generic helpers for saturating arithmetic
  tcg: Loosen vec_gen_op* typecheck rules
  tcg: Add generic vector helpers with a scalar immediate operand
  tcg: Add generic vector helpers with a scalar variable operand
  tcg/optimize: Handle vector opcodes during optimize
  target/arm: Align vector registers
  target/arm: Use vector infrastructure for aa64 add/sub/logic
  target/arm: Use vector infrastructure for aa64 mov/not/neg
  target/arm: Use vector infrastructure for aa64 dup/movi
  target/arm: Use vector infrastructure for aa64 zip/uzp/trn/xtn
  target/arm: Use vector infrastructure for aa64 constant shifts
  target/arm: Use vector infrastructure for aa64 compares
  target/arm: Use vector infrastructure for aa64 multiplies
  target/arm: Use vector infrastructure for aa64 widening shifts
  target/arm: Use vector infrastructure for aa64 orr/bic immediate
  tcg/i386: Add vector operations
  tcg/aarch64: Add vector operations

 Makefile.target              |    4 +-
 accel/tcg/tcg-runtime.h      |  141 +++
 target/arm/cpu.h             |    2 +-
 tcg/aarch64/tcg-target.h     |   30 +-
 tcg/aarch64/tcg-target.opc.h |    3 +
 tcg/i386/tcg-target.h        |   46 +-
 tcg/i386/tcg-target.opc.h    |   13 +
 tcg/tcg-gvec-desc.h          |   49 +
 tcg/tcg-op-gvec.h            |  319 +++++
 tcg/tcg-op.h                 |   67 +-
 tcg/tcg-opc.h                |   59 +
 tcg/tcg.h                    |   84 ++
 accel/tcg/tcg-runtime-gvec.c | 1064 +++++++++++++++++
 target/arm/translate-a64.c   | 1106 ++++++++++++------
 tcg/aarch64/tcg-target.inc.c |  674 ++++++++++-
 tcg/i386/tcg-target.inc.c    | 1331 ++++++++++++++++++++-
 tcg/optimize.c               |  150 +--
 tcg/tcg-op-gvec.c            | 2653 ++++++++++++++++++++++++++++++++++++++++++
 tcg/tcg-op-vec.c             |  566 +++++++++
 tcg/tcg-op.c                 |   42 +-
 tcg/tcg-pool.inc.c           |  115 +-
 tcg/tcg.c                    |  144 ++-
 accel/tcg/Makefile.objs      |    2 +-
 tcg/README                   |  148 +++
 24 files changed, 8244 insertions(+), 568 deletions(-)
 create mode 100644 tcg/aarch64/tcg-target.opc.h
 create mode 100644 tcg/i386/tcg-target.opc.h
 create mode 100644 tcg/tcg-gvec-desc.h
 create mode 100644 tcg/tcg-op-gvec.h
 create mode 100644 accel/tcg/tcg-runtime-gvec.c
 create mode 100644 tcg/tcg-op-gvec.c
 create mode 100644 tcg/tcg-op-vec.c

-- 
2.14.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]