From: David Hildenbrand <david@redhat.com> To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Thomas Huth <thuth@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Richard Henderson <rth@twiddle.net>, David Hildenbrand <david@redhat.com> Subject: [Qemu-devel] [PATCH v3 00/40] s390x/tcg: Vector Instruction Support Part 2 Date: Thu, 2 May 2019 16:09:39 +0200 [thread overview] Message-ID: <20190502141019.6385-1-david@redhat.com> (raw) This is the second part of vector instruction support for s390x. It is based on the series by Richard: [PATCH v2 00/29] tcg vector improvements 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 Integer Instructions introduced with the "Vector Facility" are added. Some instructions part of the Vector Extension Facilities are also added. v2 -> v3: - Use new vector helpers tcg_gen_gvec_abs(), tcg_gen_gvec_shl() and friends and tcg_gen_gvec_shlv() and friends. v1 -> v2: - Many suggestions and fixes as outlined by Richard H. -- Mostly avoid oom helpers for 128-bit add/sub variants -- New vector helpers are not considered for now David Hildenbrand (40): s390x/tcg: Implement VECTOR ADD s390x/tcg: Implement VECTOR ADD COMPUTE CARRY s390x/tcg: Implement VECTOR ADD WITH CARRY s390x/tcg: Implement VECTOR ADD WITH CARRY COMPUTE CARRY s390x/tcg: Implement VECTOR AND (WITH COMPLEMENT) s390x/tcg: Implement VECTOR AVERAGE s390x/tcg: Implement VECTOR AVERAGE LOGICAL s390x/tcg: Implement VECTOR CHECKSUM s390x/tcg: Implement VECTOR ELEMENT COMPARE * s390x/tcg: Implement VECTOR COMPARE * s390x/tcg: Implement VECTOR COUNT LEADING ZEROS s390x/tcg: Implement VECTOR COUNT TRAILING ZEROS s390x/tcg: Implement VECTOR EXCLUSIVE OR s390x/tcg: Implement VECTOR GALOIS FIELD MULTIPLY SUM (AND ACCUMULATE) s390x/tcg: Implement VECTOR LOAD COMPLEMENT s390x/tcg: Implement VECTOR LOAD POSITIVE s390x/tcg: Implement VECTOR (MAXIMUM|MINIMUM) (LOGICAL) s390x/tcg: Implement VECTOR MULTIPLY AND ADD * s390x/tcg: Implement VECTOR MULTIPLY * s390x/tcg: Implement VECTOR NAND s390x/tcg: Implement VECTOR NOR s390x/tcg: Implement VECTOR NOT EXCLUSIVE OR s390x/tcg: Implement VECTOR OR s390x/tcg: Implement VECTOR OR WITH COMPLEMENT s390x/tcg: Implement VECTOR POPULATION COUNT s390x/tcg: Implement VECTOR ELEMENT ROTATE LEFT LOGICAL s390x/tcg: Implement VECTOR ELEMENT ROTATE AND INSERT UNDER MASK s390x/tcg: Implement VECTOR ELEMENT SHIFT s390x/tcg: Implement VECTOR SHIFT LEFT (BY BYTE) s390x/tcg: Implement VECTOR SHIFT LEFT DOUBLE BY BYTE s390x/tcg: Implement VECTOR SHIFT RIGHT ARITHMETIC s390x/tcg: Implement VECTOR SHIFT RIGHT LOGICAL * s390x/tcg: Implement VECTOR SUBTRACT s390x/tcg: Implement VECTOR SUBTRACT COMPUTE BORROW INDICATION s390x/tcg: Implement VECTOR SUBTRACT WITH BORROW INDICATION s390x/tcg: Implement VECTOR SUBTRACT WITH BORROW COMPUTE BORROW INDICATION s390x/tcg: Implement VECTOR SUM ACROSS DOUBLEWORD s390x/tcg: Implement VECTOR SUM ACROSS QUADWORD s390x/tcg: Implement VECTOR SUM ACROSS WORD s390x/tcg: Implement VECTOR TEST UNDER MASK target/s390x/Makefile.objs | 2 +- target/s390x/cc_helper.c | 17 + target/s390x/helper.c | 1 + target/s390x/helper.h | 66 ++ target/s390x/insn-data.def | 137 +++ target/s390x/internal.h | 1 + target/s390x/translate.c | 2 + target/s390x/translate_vx.inc.c | 1416 +++++++++++++++++++++++++++++++ target/s390x/vec_int_helper.c | 603 +++++++++++++ 9 files changed, 2244 insertions(+), 1 deletion(-) create mode 100644 target/s390x/vec_int_helper.c -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: David Hildenbrand <david@redhat.com> To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, Cornelia Huck <cohuck@redhat.com>, David Hildenbrand <david@redhat.com>, Thomas Huth <thuth@redhat.com>, Richard Henderson <rth@twiddle.net> Subject: [Qemu-devel] [PATCH v3 00/40] s390x/tcg: Vector Instruction Support Part 2 Date: Thu, 2 May 2019 16:09:39 +0200 [thread overview] Message-ID: <20190502141019.6385-1-david@redhat.com> (raw) Message-ID: <20190502140939.9_3_Y2dEHFqjY5gXHdWXN-JELfqDVRJoL148RflI0sE@z> (raw) This is the second part of vector instruction support for s390x. It is based on the series by Richard: [PATCH v2 00/29] tcg vector improvements 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 Integer Instructions introduced with the "Vector Facility" are added. Some instructions part of the Vector Extension Facilities are also added. v2 -> v3: - Use new vector helpers tcg_gen_gvec_abs(), tcg_gen_gvec_shl() and friends and tcg_gen_gvec_shlv() and friends. v1 -> v2: - Many suggestions and fixes as outlined by Richard H. -- Mostly avoid oom helpers for 128-bit add/sub variants -- New vector helpers are not considered for now David Hildenbrand (40): s390x/tcg: Implement VECTOR ADD s390x/tcg: Implement VECTOR ADD COMPUTE CARRY s390x/tcg: Implement VECTOR ADD WITH CARRY s390x/tcg: Implement VECTOR ADD WITH CARRY COMPUTE CARRY s390x/tcg: Implement VECTOR AND (WITH COMPLEMENT) s390x/tcg: Implement VECTOR AVERAGE s390x/tcg: Implement VECTOR AVERAGE LOGICAL s390x/tcg: Implement VECTOR CHECKSUM s390x/tcg: Implement VECTOR ELEMENT COMPARE * s390x/tcg: Implement VECTOR COMPARE * s390x/tcg: Implement VECTOR COUNT LEADING ZEROS s390x/tcg: Implement VECTOR COUNT TRAILING ZEROS s390x/tcg: Implement VECTOR EXCLUSIVE OR s390x/tcg: Implement VECTOR GALOIS FIELD MULTIPLY SUM (AND ACCUMULATE) s390x/tcg: Implement VECTOR LOAD COMPLEMENT s390x/tcg: Implement VECTOR LOAD POSITIVE s390x/tcg: Implement VECTOR (MAXIMUM|MINIMUM) (LOGICAL) s390x/tcg: Implement VECTOR MULTIPLY AND ADD * s390x/tcg: Implement VECTOR MULTIPLY * s390x/tcg: Implement VECTOR NAND s390x/tcg: Implement VECTOR NOR s390x/tcg: Implement VECTOR NOT EXCLUSIVE OR s390x/tcg: Implement VECTOR OR s390x/tcg: Implement VECTOR OR WITH COMPLEMENT s390x/tcg: Implement VECTOR POPULATION COUNT s390x/tcg: Implement VECTOR ELEMENT ROTATE LEFT LOGICAL s390x/tcg: Implement VECTOR ELEMENT ROTATE AND INSERT UNDER MASK s390x/tcg: Implement VECTOR ELEMENT SHIFT s390x/tcg: Implement VECTOR SHIFT LEFT (BY BYTE) s390x/tcg: Implement VECTOR SHIFT LEFT DOUBLE BY BYTE s390x/tcg: Implement VECTOR SHIFT RIGHT ARITHMETIC s390x/tcg: Implement VECTOR SHIFT RIGHT LOGICAL * s390x/tcg: Implement VECTOR SUBTRACT s390x/tcg: Implement VECTOR SUBTRACT COMPUTE BORROW INDICATION s390x/tcg: Implement VECTOR SUBTRACT WITH BORROW INDICATION s390x/tcg: Implement VECTOR SUBTRACT WITH BORROW COMPUTE BORROW INDICATION s390x/tcg: Implement VECTOR SUM ACROSS DOUBLEWORD s390x/tcg: Implement VECTOR SUM ACROSS QUADWORD s390x/tcg: Implement VECTOR SUM ACROSS WORD s390x/tcg: Implement VECTOR TEST UNDER MASK target/s390x/Makefile.objs | 2 +- target/s390x/cc_helper.c | 17 + target/s390x/helper.c | 1 + target/s390x/helper.h | 66 ++ target/s390x/insn-data.def | 137 +++ target/s390x/internal.h | 1 + target/s390x/translate.c | 2 + target/s390x/translate_vx.inc.c | 1416 +++++++++++++++++++++++++++++++ target/s390x/vec_int_helper.c | 603 +++++++++++++ 9 files changed, 2244 insertions(+), 1 deletion(-) create mode 100644 target/s390x/vec_int_helper.c -- 2.20.1
next reply other threads:[~2019-05-02 14:10 UTC|newest] Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-02 14:09 David Hildenbrand [this message] 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 00/40] s390x/tcg: Vector Instruction Support Part 2 David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 01/40] s390x/tcg: Implement VECTOR ADD David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 02/40] s390x/tcg: Implement VECTOR ADD COMPUTE CARRY David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-03 3:45 ` Richard Henderson 2019-05-03 12:46 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 03/40] s390x/tcg: Implement VECTOR ADD WITH CARRY David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 04/40] s390x/tcg: Implement VECTOR ADD WITH CARRY COMPUTE CARRY David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-03 3:46 ` Richard Henderson 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 05/40] s390x/tcg: Implement VECTOR AND (WITH COMPLEMENT) David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 06/40] s390x/tcg: Implement VECTOR AVERAGE David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 07/40] s390x/tcg: Implement VECTOR AVERAGE LOGICAL David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 08/40] s390x/tcg: Implement VECTOR CHECKSUM David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 09/40] s390x/tcg: Implement VECTOR ELEMENT COMPARE * David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 10/40] s390x/tcg: Implement VECTOR " David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 11/40] s390x/tcg: Implement VECTOR COUNT LEADING ZEROS David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 12/40] s390x/tcg: Implement VECTOR COUNT TRAILING ZEROS David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-03 5:18 ` Richard Henderson 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 13/40] s390x/tcg: Implement VECTOR EXCLUSIVE OR David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 14/40] s390x/tcg: Implement VECTOR GALOIS FIELD MULTIPLY SUM (AND ACCUMULATE) David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 15/40] s390x/tcg: Implement VECTOR LOAD COMPLEMENT David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 16/40] s390x/tcg: Implement VECTOR LOAD POSITIVE David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 17/40] s390x/tcg: Implement VECTOR (MAXIMUM|MINIMUM) (LOGICAL) David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 18/40] s390x/tcg: Implement VECTOR MULTIPLY AND ADD * David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 19/40] s390x/tcg: Implement VECTOR MULTIPLY * David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:09 ` [Qemu-devel] [PATCH v3 20/40] s390x/tcg: Implement VECTOR NAND David Hildenbrand 2019-05-02 14:09 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 21/40] s390x/tcg: Implement VECTOR NOR David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 22/40] s390x/tcg: Implement VECTOR NOT EXCLUSIVE OR David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 23/40] s390x/tcg: Implement VECTOR OR David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 24/40] s390x/tcg: Implement VECTOR OR WITH COMPLEMENT David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 25/40] s390x/tcg: Implement VECTOR POPULATION COUNT David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 26/40] s390x/tcg: Implement VECTOR ELEMENT ROTATE LEFT LOGICAL David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 27/40] s390x/tcg: Implement VECTOR ELEMENT ROTATE AND INSERT UNDER MASK David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-03 5:25 ` Richard Henderson 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 28/40] s390x/tcg: Implement VECTOR ELEMENT SHIFT David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 29/40] s390x/tcg: Implement VECTOR SHIFT LEFT (BY BYTE) David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 30/40] s390x/tcg: Implement VECTOR SHIFT LEFT DOUBLE BY BYTE David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-03 5:56 ` Richard Henderson 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 31/40] s390x/tcg: Implement VECTOR SHIFT RIGHT ARITHMETIC David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 32/40] s390x/tcg: Implement VECTOR SHIFT RIGHT LOGICAL * David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 33/40] s390x/tcg: Implement VECTOR SUBTRACT David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 34/40] s390x/tcg: Implement VECTOR SUBTRACT COMPUTE BORROW INDICATION David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-03 5:57 ` Richard Henderson 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 35/40] s390x/tcg: Implement VECTOR SUBTRACT WITH " David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 36/40] s390x/tcg: Implement VECTOR SUBTRACT WITH BORROW COMPUTE " David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-03 18:25 ` Richard Henderson 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 37/40] s390x/tcg: Implement VECTOR SUM ACROSS DOUBLEWORD David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 38/40] s390x/tcg: Implement VECTOR SUM ACROSS QUADWORD David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 39/40] s390x/tcg: Implement VECTOR SUM ACROSS WORD David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-02 14:10 ` [Qemu-devel] [PATCH v3 40/40] s390x/tcg: Implement VECTOR TEST UNDER MASK David Hildenbrand 2019-05-02 14:10 ` David Hildenbrand 2019-05-06 9:42 ` David Hildenbrand
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190502141019.6385-1-david@redhat.com \ --to=david@redhat.com \ --cc=cohuck@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=qemu-s390x@nongnu.org \ --cc=rth@twiddle.net \ --cc=thuth@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.