[Qemu-devel] [PATCH v2 0/5] s390x/tcg: Vector Instruction Support Part 3

David Hildenbrand posted 5 patches 4 years, 11 months ago
Test FreeBSD passed
Test docker-clang@ubuntu passed
Test s390x passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190524093335.22241-1-david@redhat.com
Maintainers: David Hildenbrand <david@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Richard Henderson <rth@twiddle.net>
target/s390x/Makefile.objs       |   2 +-
target/s390x/helper.h            |  38 +++
target/s390x/insn-data.def       |  13 +
target/s390x/translate_vx.inc.c  | 185 ++++++++++++
target/s390x/vec.h               |  40 +++
target/s390x/vec_string_helper.c | 473 +++++++++++++++++++++++++++++++
6 files changed, 750 insertions(+), 1 deletion(-)
create mode 100644 target/s390x/vec_string_helper.c
[Qemu-devel] [PATCH v2 0/5] s390x/tcg: Vector Instruction Support Part 3
Posted by David Hildenbrand 4 years, 11 months ago
This is the third part of vector instruction support for s390x. It is based
on part 2, which is will send a pull-request for to Conny soon.

Part 1: Vector Support Instructions
Part 2: Vector Integer Instructions
Part 3: Vector String Instructions
Part 4: Vector Floating-Point Instructions

The current state can be found at (kept updated):
    https://github.com/davidhildenbrand/qemu/tree/vx

With the current state I can boot Linux kernel + user space compiled with
SIMD support. This allows to boot distributions compiled exclusively for
z13, requiring SIMD support. Also, it is now possible to build a complete
kernel using rpmbuild as quite some issues have been sorted out.

In this part, all Vector String Instructions introduced with the
"Vector Facility" are added.

v1 -> v2:
- Use the fancy bit-tricks from Richard to rewrite most string instructions
- Create specialized variants for "VECTOR STRING RANGE COMPARE", so the
  compiler can optimize out the rt/!rt handling code.

David Hildenbrand (5):
  s390x/tcg: Implement VECTOR FIND ANY ELEMENT EQUAL
  s390x/tcg: Implement VECTOR FIND ELEMENT EQUAL
  s390x/tcg: Implement VECTOR FIND ELEMENT NOT EQUAL
  s390x/tcg: Implement VECTOR ISOLATE STRING
  s390x/tcg: Implement VECTOR STRING RANGE COMPARE

 target/s390x/Makefile.objs       |   2 +-
 target/s390x/helper.h            |  38 +++
 target/s390x/insn-data.def       |  13 +
 target/s390x/translate_vx.inc.c  | 185 ++++++++++++
 target/s390x/vec.h               |  40 +++
 target/s390x/vec_string_helper.c | 473 +++++++++++++++++++++++++++++++
 6 files changed, 750 insertions(+), 1 deletion(-)
 create mode 100644 target/s390x/vec_string_helper.c

-- 
2.20.1