Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
On 03/05/2022 16.42, David Miller wrote: Sorry, It was in the discussion for v4 patches, as an attachment . mail thread: [PATCH v4 10/11] tests/tcg/s390x: Tests for Vector Enhancements Facility 2 So it likely never made it to the mailing list. I've reattached and will forward the patch (by itself) to the mailing list. I think the other solution works just as well by ignoring if compiler doesn't support z15. I just thought I'd bring it back up as I saw discussion about it. Ok, I now gave this a try ... and while this should now work fine with older versions of gcc/binutils, it's failing with Clang now: BUILD s390x-linux-user guest-tests /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vs.c:14:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE774, %[v1], %[v2], %[v3], 0,0,0\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vs.c:22:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE77E, %[v1], %[v2], %[v3], 0,0,0\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vs.c:30:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE77C, %[v1], %[v2], %[v3], 0,0,0\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vs.c:40:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE786, %[v1], %[v2], %[v3], 0, %[I], 0\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vs.c:51:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE787, %[v1], %[v2], %[v3], 0, %[I], 0\n" ^ 5 errors generated. make[1]: *** [../Makefile.target:109: vxeh2_vs] Error 1 make[1]: *** Waiting for unfinished jobs /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vcvt.c:14:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE7C3, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vcvt.c:25:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE7C1, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vcvt.c:36:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE7C2, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" ^ /home/thuth/devel/qemu/tests/tcg/s390x/vxeh2_vcvt.c:47:18: error: couldn't allocate output register for constraint 'v' asm volatile(".insn vrr, 0xE7C0, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" ^ 4 errors generated. ... Thus I think I'll rather go with the other approach instead that checks for the availability of -march=z15. Thomas
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
On 03/05/2022 16.57, David Miller wrote: It looks like google killed allowing password access early, nothing makes it work anymore. Uh, that's ugly! I hope you'll figure out a way to work-around that problem! They had plans to disable 'less secure app' in may, but it thought it was the end of the month. I'll try copy/paste as plain text as well though I Know it will likely screw it up.. Yup, that plain text patch didn't apply anymore - so I went for the attachment from your previous mail this time instead (hoping that you'll find another way for using git-send-email again in the future). Thomas
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
>From bb6bf2f9529c4d76db9a9eff2ff7fa1235657103 Mon Sep 17 00:00:00 2001 From: David Miller Date: Mon, 21 Mar 2022 16:58:57 -0400 Subject: [PATCH v5 10/11] tests/tcg/s390x: Tests for Vector Enhancements Facility 2 Signed-off-by: David Miller --- tests/tcg/s390x/Makefile.target | 8 ++ tests/tcg/s390x/vx.h| 19 + tests/tcg/s390x/vxeh2_vcvt.c| 88 tests/tcg/s390x/vxeh2_vlstr.c | 139 tests/tcg/s390x/vxeh2_vs.c | 95 ++ 5 files changed, 349 insertions(+) create mode 100644 tests/tcg/s390x/vx.h create mode 100644 tests/tcg/s390x/vxeh2_vcvt.c create mode 100644 tests/tcg/s390x/vxeh2_vlstr.c create mode 100644 tests/tcg/s390x/vxeh2_vs.c diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target index 8c9b6a13ce..921a056dd1 100644 --- a/tests/tcg/s390x/Makefile.target +++ b/tests/tcg/s390x/Makefile.target @@ -16,6 +16,14 @@ TESTS+=shift TESTS+=trap TESTS+=signals-s390x +VECTOR_TESTS=vxeh2_vs +VECTOR_TESTS+=vxeh2_vcvt +VECTOR_TESTS+=vxeh2_vlstr + +TESTS+=$(VECTOR_TESTS) + +$(VECTOR_TESTS): CFLAGS+=-march=z15 -O2 + ifneq ($(HAVE_GDB_BIN),) GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py diff --git a/tests/tcg/s390x/vx.h b/tests/tcg/s390x/vx.h new file mode 100644 index 00..2e66f8b714 --- /dev/null +++ b/tests/tcg/s390x/vx.h @@ -0,0 +1,19 @@ +#ifndef QEMU_TESTS_S390X_VX_H +#define QEMU_TESTS_S390X_VX_H + +typedef union S390Vector { +uint64_t d[2]; /* doubleword */ +uint32_t w[4]; /* word */ +uint16_t h[8]; /* halfword */ +uint8_t b[16]; /* byte */ +floatf[4]; /* float32 */ +double fd[2]; /* float64 */ +__uint128_t v; +} S390Vector; + +#define ES8 0 +#define ES16 1 +#define ES32 2 +#define ES64 3 + +#endif \ No newline at end of file diff --git a/tests/tcg/s390x/vxeh2_vcvt.c b/tests/tcg/s390x/vxeh2_vcvt.c new file mode 100644 index 00..2e46841ab5 --- /dev/null +++ b/tests/tcg/s390x/vxeh2_vcvt.c @@ -0,0 +1,88 @@ +/* + * vxeh2_vcvt: vector-enhancements facility 2 vector convert * + */ +#include +#include "vx.h" + +#define M_S 8 +#define M4_XxC 4 +#define M4_def M4_XxC + +static inline void vcfps(S390Vector *v1, S390Vector *v2, +const uint8_t m3, const uint8_t m4, const uint8_t m5) +{ +asm volatile(".insn vrr, 0xE7C3, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" +: [v1] "=v" (v1->v) +: [v2] "v" (v2->v) +, [m3] "i" (m3) +, [m4] "i" (m4) +, [m5] "i" (m5)); +} + +static inline void vcfpl(S390Vector *v1, S390Vector *v2, +const uint8_t m3, const uint8_t m4, const uint8_t m5) +{ +asm volatile(".insn vrr, 0xE7C1, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" +: [v1] "=v" (v1->v) +: [v2] "v" (v2->v) +, [m3] "i" (m3) +, [m4] "i" (m4) +, [m5] "i" (m5)); +} + +static inline void vcsfp(S390Vector *v1, S390Vector *v2, +const uint8_t m3, const uint8_t m4, const uint8_t m5) +{ +asm volatile(".insn vrr, 0xE7C2, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" +: [v1] "=v" (v1->v) +: [v2] "v" (v2->v) +, [m3] "i" (m3) +, [m4] "i" (m4) +, [m5] "i" (m5)); +} + +static inline void vclfp(S390Vector *v1, S390Vector *v2, +const uint8_t m3, const uint8_t m4, const uint8_t m5) +{ +asm volatile(".insn vrr, 0xE7C0, %[v1], %[v2], 0, %[m3], %[m4], %[m5]\n" +: [v1] "=v" (v1->v) +: [v2] "v" (v2->v) +, [m3] "i" (m3) +, [m4] "i" (m4) +, [m5] "i" (m5)); +} + +int main(int argc, char *argv[]) +{ +S390Vector vd; +S390Vector vs_i32 = { .w[0] = 1, .w[1] = 64, .w[2] = 1024, .w[3] = -10 }; +S390Vector vs_u32 = { .w[0] = 2, .w[1] = 32, .w[2] = 4096, .w[3] = }; +S390Vector vs_f32 = { .f[0] = 3.987, .f[1] = 5.123, + .f[2] = 4.499, .f[3] = 0.512 }; + +vd.d[0] = vd.d[1] = 0; +vcfps(, _i32, 2, M4_def, 0); +if (1 != vd.f[0] || 1024 != vd.f[2] || 64 != vd.f[1] || -10 != vd.f[3]) { +return 1; +} + +vd.d[0] = vd.d[1] = 0; +vcfpl(, _u32, 2, M4_def, 0); +if (2 != vd.f[0] || 4096 != vd.f[2] || 32 != vd.f[1] || != vd.f[3]) { +return 1; +} + +vd.d[0] = vd.d[1] = 0; +vcsfp(, _f32, 2, M4_def, 0); +if (4 != vd.w[0] || 4 != vd.w[2] || 5 != vd.w[1] || 1 != vd.w[3]) { +return 1; +} + +vd.d[0] = vd.d[1] = 0; +vclfp(, _f32, 2, M4_def, 0); +if (4 != vd.w[0] || 4 != vd.w[2] || 5 != vd.w[1] || 1 != vd.w[3]) { +return 1; +} + +return 0; +} diff --git a/tests/tcg/s390x/vxeh2_vlstr.c b/tests/tcg/s390x/vxeh2_vlstr.c new file mode 100644 index 00..770691a4e8 --- /dev/null +++ b/tests/tcg/s390x/vxeh2_vlstr.c @@ -0,0 +1,139 @@ +/* + * vxeh2_vlstr:
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
It looks like google killed allowing password access early, nothing makes it work anymore. They had plans to disable 'less secure app' in may, but it thought it was the end of the month. I'll try copy/paste as plain text as well though I Know it will likely screw it up.. On Tue, May 3, 2022 at 10:42 AM David Miller wrote: > > Sorry, It was in the discussion for v4 patches, as an attachment . > mail thread: > [PATCH v4 10/11] tests/tcg/s390x: Tests for Vector Enhancements Facility 2 > So it likely never made it to the mailing list. > > I've reattached and will forward the patch (by itself) to the mailing list. > > I think the other solution works just as well by ignoring if compiler > doesn't support z15. > > I just thought I'd bring it back up as I saw discussion about it. > > Thanks > - David Miller > > > > > > > On Tue, May 3, 2022 at 2:55 AM Thomas Huth wrote: > > > > Hi! > > > > On 02/05/2022 18.06, David Miller wrote: > > > There was also the patch that had them as .insn in the other series of > > > emails. > > > > Sorry, I missed that patch, could you please point me to the mail on > > https://lore.kernel.org/qemu-devel/ ? I remember that there was a discussion > > about the vri-d encoding, but I apparently missed the patch that came out of > > this discussion... > > > > Thomas > > > > > On Mon, May 2, 2022 at 11:52 AM David Hildenbrand > > > wrote: > > >> > > >> On 02.05.22 09:20, Thomas Huth wrote: > > >>> On 28/04/2022 11.46, David Hildenbrand wrote: > > Implement Vector-Enhancements Facility 2 for s390x > > > > resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 > > > > implements: > > VECTOR LOAD ELEMENTS REVERSED (VLER) > > VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) > > VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, > > VLEBRG) > > VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) > > VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) > > VECTOR STORE ELEMENTS REVERSED (VSTER) > > VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) > > VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, > > VSTEBRG) > > VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) > > VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) > > VECTOR STRING SEARCH(VSTRS) > > > > modifies: > > VECTOR FP CONVERT FROM FIXED(VCFPS) > > VECTOR FP CONVERT FROM LOGICAL (VCFPL) > > VECTOR FP CONVERT TO FIXED (VCSFP) > > VECTOR FP CONVERT TO LOGICAL(VCLFP) > > VECTOR SHIFT LEFT (VSL) > > VECTOR SHIFT RIGHT ARITHMETIC (VSRA) > > VECTOR SHIFT RIGHT LOGICAL (VSRL) > > >>> > > >>> Thanks, queued to my s390x-next branch now: > > >>> > > >>>https://gitlab.com/thuth/qemu/-/commits/s390x-next/ > > >>> > > >> Thanks for fixing up. At this point I would have suggested to exclude > > >> the tests for now. > > >> > > >> -- > > >> Thanks, > > >> > > >> David / dhildenb > > >> > > > > >
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
Sorry, It was in the discussion for v4 patches, as an attachment . mail thread: [PATCH v4 10/11] tests/tcg/s390x: Tests for Vector Enhancements Facility 2 So it likely never made it to the mailing list. I've reattached and will forward the patch (by itself) to the mailing list. I think the other solution works just as well by ignoring if compiler doesn't support z15. I just thought I'd bring it back up as I saw discussion about it. Thanks - David Miller On Tue, May 3, 2022 at 2:55 AM Thomas Huth wrote: > > Hi! > > On 02/05/2022 18.06, David Miller wrote: > > There was also the patch that had them as .insn in the other series of > > emails. > > Sorry, I missed that patch, could you please point me to the mail on > https://lore.kernel.org/qemu-devel/ ? I remember that there was a discussion > about the vri-d encoding, but I apparently missed the patch that came out of > this discussion... > > Thomas > > > On Mon, May 2, 2022 at 11:52 AM David Hildenbrand wrote: > >> > >> On 02.05.22 09:20, Thomas Huth wrote: > >>> On 28/04/2022 11.46, David Hildenbrand wrote: > Implement Vector-Enhancements Facility 2 for s390x > > resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 > > implements: > VECTOR LOAD ELEMENTS REVERSED (VLER) > VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) > VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, > VLEBRG) > VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) > VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) > VECTOR STORE ELEMENTS REVERSED (VSTER) > VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) > VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, > VSTEBRG) > VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) > VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) > VECTOR STRING SEARCH(VSTRS) > > modifies: > VECTOR FP CONVERT FROM FIXED(VCFPS) > VECTOR FP CONVERT FROM LOGICAL (VCFPL) > VECTOR FP CONVERT TO FIXED (VCSFP) > VECTOR FP CONVERT TO LOGICAL(VCLFP) > VECTOR SHIFT LEFT (VSL) > VECTOR SHIFT RIGHT ARITHMETIC (VSRA) > VECTOR SHIFT RIGHT LOGICAL (VSRL) > >>> > >>> Thanks, queued to my s390x-next branch now: > >>> > >>>https://gitlab.com/thuth/qemu/-/commits/s390x-next/ > >>> > >> Thanks for fixing up. At this point I would have suggested to exclude > >> the tests for now. > >> > >> -- > >> Thanks, > >> > >> David / dhildenb > >> > > > From bb6bf2f9529c4d76db9a9eff2ff7fa1235657103 Mon Sep 17 00:00:00 2001 From: David Miller Date: Mon, 21 Mar 2022 16:58:57 -0400 Subject: [PATCH v5 10/11] tests/tcg/s390x: Tests for Vector Enhancements Facility 2 Signed-off-by: David Miller --- tests/tcg/s390x/Makefile.target | 8 ++ tests/tcg/s390x/vx.h| 19 + tests/tcg/s390x/vxeh2_vcvt.c| 88 tests/tcg/s390x/vxeh2_vlstr.c | 139 tests/tcg/s390x/vxeh2_vs.c | 95 ++ 5 files changed, 349 insertions(+) create mode 100644 tests/tcg/s390x/vx.h create mode 100644 tests/tcg/s390x/vxeh2_vcvt.c create mode 100644 tests/tcg/s390x/vxeh2_vlstr.c create mode 100644 tests/tcg/s390x/vxeh2_vs.c diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target index 8c9b6a13ce..921a056dd1 100644 --- a/tests/tcg/s390x/Makefile.target +++ b/tests/tcg/s390x/Makefile.target @@ -16,6 +16,14 @@ TESTS+=shift TESTS+=trap TESTS+=signals-s390x +VECTOR_TESTS=vxeh2_vs +VECTOR_TESTS+=vxeh2_vcvt +VECTOR_TESTS+=vxeh2_vlstr + +TESTS+=$(VECTOR_TESTS) + +$(VECTOR_TESTS): CFLAGS+=-march=z15 -O2 + ifneq ($(HAVE_GDB_BIN),) GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py diff --git a/tests/tcg/s390x/vx.h b/tests/tcg/s390x/vx.h new file mode 100644 index 00..2e66f8b714 --- /dev/null +++ b/tests/tcg/s390x/vx.h @@ -0,0 +1,19 @@ +#ifndef QEMU_TESTS_S390X_VX_H +#define QEMU_TESTS_S390X_VX_H + +typedef union S390Vector { +uint64_t d[2]; /* doubleword */ +uint32_t w[4]; /* word */ +uint16_t h[8]; /* halfword */ +uint8_t b[16]; /* byte */ +floatf[4]; /* float32 */ +double fd[2]; /* float64 */ +__uint128_t v; +} S390Vector; + +#define ES8 0 +#define ES16 1 +#define ES32 2 +#define ES64 3 + +#endif \ No newline at end of file diff --git a/tests/tcg/s390x/vxeh2_vcvt.c b/tests/tcg/s390x/vxeh2_vcvt.c new file mode 100644 index 00..2e46841ab5 --- /dev/null +++ b/tests/tcg/s390x/vxeh2_vcvt.c @@ -0,0 +1,88 @@ +/* + * vxeh2_vcvt: vector-enhancements facility 2 vector convert * + */ +#include +#include "vx.h" + +#define M_S 8 +#define M4_XxC 4 +#define M4_def M4_XxC +
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
Hi! On 02/05/2022 18.06, David Miller wrote: There was also the patch that had them as .insn in the other series of emails. Sorry, I missed that patch, could you please point me to the mail on https://lore.kernel.org/qemu-devel/ ? I remember that there was a discussion about the vri-d encoding, but I apparently missed the patch that came out of this discussion... Thomas On Mon, May 2, 2022 at 11:52 AM David Hildenbrand wrote: On 02.05.22 09:20, Thomas Huth wrote: On 28/04/2022 11.46, David Hildenbrand wrote: Implement Vector-Enhancements Facility 2 for s390x resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 implements: VECTOR LOAD ELEMENTS REVERSED (VLER) VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, VLEBRG) VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) VECTOR STORE ELEMENTS REVERSED (VSTER) VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, VSTEBRG) VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) VECTOR STRING SEARCH(VSTRS) modifies: VECTOR FP CONVERT FROM FIXED(VCFPS) VECTOR FP CONVERT FROM LOGICAL (VCFPL) VECTOR FP CONVERT TO FIXED (VCSFP) VECTOR FP CONVERT TO LOGICAL(VCLFP) VECTOR SHIFT LEFT (VSL) VECTOR SHIFT RIGHT ARITHMETIC (VSRA) VECTOR SHIFT RIGHT LOGICAL (VSRL) Thanks, queued to my s390x-next branch now: https://gitlab.com/thuth/qemu/-/commits/s390x-next/ Thanks for fixing up. At this point I would have suggested to exclude the tests for now. -- Thanks, David / dhildenb
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
There was also the patch that had them as .insn in the other series of emails. On Mon, May 2, 2022 at 11:52 AM David Hildenbrand wrote: > > On 02.05.22 09:20, Thomas Huth wrote: > > On 28/04/2022 11.46, David Hildenbrand wrote: > >> Implement Vector-Enhancements Facility 2 for s390x > >> > >> resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 > >> > >> implements: > >> VECTOR LOAD ELEMENTS REVERSED (VLER) > >> VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) > >> VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, VLEBRG) > >> VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) > >> VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) > >> VECTOR STORE ELEMENTS REVERSED (VSTER) > >> VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) > >> VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, > >> VSTEBRG) > >> VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) > >> VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) > >> VECTOR STRING SEARCH(VSTRS) > >> > >> modifies: > >> VECTOR FP CONVERT FROM FIXED(VCFPS) > >> VECTOR FP CONVERT FROM LOGICAL (VCFPL) > >> VECTOR FP CONVERT TO FIXED (VCSFP) > >> VECTOR FP CONVERT TO LOGICAL(VCLFP) > >> VECTOR SHIFT LEFT (VSL) > >> VECTOR SHIFT RIGHT ARITHMETIC (VSRA) > >> VECTOR SHIFT RIGHT LOGICAL (VSRL) > > > > Thanks, queued to my s390x-next branch now: > > > > https://gitlab.com/thuth/qemu/-/commits/s390x-next/ > > > Thanks for fixing up. At this point I would have suggested to exclude > the tests for now. > > -- > Thanks, > > David / dhildenb >
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
On 02.05.22 09:20, Thomas Huth wrote: > On 28/04/2022 11.46, David Hildenbrand wrote: >> Implement Vector-Enhancements Facility 2 for s390x >> >> resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 >> >> implements: >> VECTOR LOAD ELEMENTS REVERSED (VLER) >> VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) >> VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, VLEBRG) >> VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) >> VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) >> VECTOR STORE ELEMENTS REVERSED (VSTER) >> VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) >> VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, VSTEBRG) >> VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) >> VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) >> VECTOR STRING SEARCH(VSTRS) >> >> modifies: >> VECTOR FP CONVERT FROM FIXED(VCFPS) >> VECTOR FP CONVERT FROM LOGICAL (VCFPL) >> VECTOR FP CONVERT TO FIXED (VCSFP) >> VECTOR FP CONVERT TO LOGICAL(VCLFP) >> VECTOR SHIFT LEFT (VSL) >> VECTOR SHIFT RIGHT ARITHMETIC (VSRA) >> VECTOR SHIFT RIGHT LOGICAL (VSRL) > > Thanks, queued to my s390x-next branch now: > > https://gitlab.com/thuth/qemu/-/commits/s390x-next/ > Thanks for fixing up. At this point I would have suggested to exclude the tests for now. -- Thanks, David / dhildenb
Re: [PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
On 28/04/2022 11.46, David Hildenbrand wrote: Implement Vector-Enhancements Facility 2 for s390x resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 implements: VECTOR LOAD ELEMENTS REVERSED (VLER) VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, VLEBRG) VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) VECTOR STORE ELEMENTS REVERSED (VSTER) VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, VSTEBRG) VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) VECTOR STRING SEARCH(VSTRS) modifies: VECTOR FP CONVERT FROM FIXED(VCFPS) VECTOR FP CONVERT FROM LOGICAL (VCFPL) VECTOR FP CONVERT TO FIXED (VCSFP) VECTOR FP CONVERT TO LOGICAL(VCLFP) VECTOR SHIFT LEFT (VSL) VECTOR SHIFT RIGHT ARITHMETIC (VSRA) VECTOR SHIFT RIGHT LOGICAL (VSRL) Thanks, queued to my s390x-next branch now: https://gitlab.com/thuth/qemu/-/commits/s390x-next/ Thomas
[PATCH v6 00/13] s390x/tcg: Implement Vector-Enhancements Facility 2
Implement Vector-Enhancements Facility 2 for s390x resolves: https://gitlab.com/qemu-project/qemu/-/issues/738 implements: VECTOR LOAD ELEMENTS REVERSED (VLER) VECTOR LOAD BYTE REVERSED ELEMENTS (VLBR) VECTOR LOAD BYTE REVERSED ELEMENT (VLEBRH, VLEBRF, VLEBRG) VECTOR LOAD BYTE REVERSED ELEMENT AND ZERO (VLLEBRZ) VECTOR LOAD BYTE REVERSED ELEMENT AND REPLICATE (VLBRREP) VECTOR STORE ELEMENTS REVERSED (VSTER) VECTOR STORE BYTE REVERSED ELEMENTS (VSTBR) VECTOR STORE BYTE REVERSED ELEMENTS (VSTEBRH, VSTEBRF, VSTEBRG) VECTOR SHIFT LEFT DOUBLE BY BIT (VSLD) VECTOR SHIFT RIGHT DOUBLE BY BIT(VSRD) VECTOR STRING SEARCH(VSTRS) modifies: VECTOR FP CONVERT FROM FIXED(VCFPS) VECTOR FP CONVERT FROM LOGICAL (VCFPL) VECTOR FP CONVERT TO FIXED (VCSFP) VECTOR FP CONVERT TO LOGICAL(VCLFP) VECTOR SHIFT LEFT (VSL) VECTOR SHIFT RIGHT ARITHMETIC (VSRA) VECTOR SHIFT RIGHT LOGICAL (VSRL) v5 -> v6: * Move fix to #1 * Include max CPU model cleanups * "target/s390x: add S390_FEAT_VECTOR_ENH2 to qemu CPU model" -> Take care of compat machines * "tests/tcg/s390x: Tests for Vector Enhancements Facility 2" -> Add missing newline to end of header file -> Resolve simple conflict in Makefile Cc: Thomas Huth Cc: Richard Henderson Cc: David Miller Cc: Christian Borntraeger Cc: Cornelia Huck Cc: Halil Pasic Cc: Eric Farman David Hildenbrand (2): s390x/cpu_models: drop "msa5" from the TCG "max" model s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Miller (9): target/s390x: vxeh2: vector convert short/32b target/s390x: vxeh2: vector string search target/s390x: vxeh2: Update for changes to vector shifts target/s390x: vxeh2: vector shift double by bit target/s390x: vxeh2: vector {load, store} elements reversed target/s390x: vxeh2: vector {load, store} byte reversed elements target/s390x: vxeh2: vector {load, store} byte reversed element target/s390x: add S390_FEAT_VECTOR_ENH2 to qemu CPU model tests/tcg/s390x: Tests for Vector Enhancements Facility 2 Richard Henderson (2): target/s390x: Fix writeback to v1 in helper_vstl tcg: Implement tcg_gen_{h,w}swap_{i32,i64} hw/s390x/s390-virtio-ccw.c | 3 + include/tcg/tcg-op.h | 6 + target/s390x/cpu_models.c| 26 +- target/s390x/gen-features.c | 14 +- target/s390x/helper.h| 13 + target/s390x/tcg/insn-data.def | 40 ++- target/s390x/tcg/translate.c | 3 +- target/s390x/tcg/translate_vx.c.inc | 461 --- target/s390x/tcg/vec_fpu_helper.c| 31 ++ target/s390x/tcg/vec_helper.c| 2 - target/s390x/tcg/vec_int_helper.c| 55 target/s390x/tcg/vec_string_helper.c | 99 ++ tcg/tcg-op.c | 30 ++ tests/tcg/s390x/Makefile.target | 8 + tests/tcg/s390x/vx.h | 19 ++ tests/tcg/s390x/vxeh2_vcvt.c | 88 + tests/tcg/s390x/vxeh2_vlstr.c| 139 tests/tcg/s390x/vxeh2_vs.c | 93 ++ 18 files changed, 1051 insertions(+), 79 deletions(-) create mode 100644 tests/tcg/s390x/vx.h create mode 100644 tests/tcg/s390x/vxeh2_vcvt.c create mode 100644 tests/tcg/s390x/vxeh2_vlstr.c create mode 100644 tests/tcg/s390x/vxeh2_vs.c -- 2.35.1