[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
- [Qemu-devel] [PATCH v9 00/26] tcg: generic vector operations,
Richard Henderson <=
- [Qemu-devel] [PATCH v9 01/26] tcg: Allow multiple word entries into the constant pool, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 03/26] tcg: Standardize integral arguments to expanders, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 02/26] tcg: Add types and basic operations for host vectors, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 05/26] tcg: Add generic vector ops for interleave, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 04/26] tcg: Add generic vector expanders, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 06/26] tcg: Add generic vector ops for constant shifts, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 08/26] tcg: Add generic vector ops for multiplication, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 09/26] tcg: Add generic vector ops for extension, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 07/26] tcg: Add generic vector ops for comparisons, Richard Henderson, 2018/01/15
- [Qemu-devel] [PATCH v9 10/26] tcg: Add generic helpers for saturating arithmetic, Richard Henderson, 2018/01/15