Message ID | 20230526181240.1425579-5-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix Fedora 38 Clang on s390x | expand |
On 5/26/23 11:12, Ilya Leoshkevich wrote: > Add a small test to prevent regressions. > > Cc:qemu-stable@nongnu.org > Signed-off-by: Ilya Leoshkevich<iii@linux.ibm.com> > --- > tests/tcg/s390x/Makefile.target | 1 + > tests/tcg/s390x/locfhr.c | 29 +++++++++++++++++++++++++++++ > 2 files changed, 30 insertions(+) > create mode 100644 tests/tcg/s390x/locfhr.c Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 26.05.23 20:12, Ilya Leoshkevich wrote: > Add a small test to prevent regressions. > > Cc: qemu-stable@nongnu.org > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > tests/tcg/s390x/Makefile.target | 1 + > tests/tcg/s390x/locfhr.c | 29 +++++++++++++++++++++++++++++ > 2 files changed, 30 insertions(+) > create mode 100644 tests/tcg/s390x/locfhr.c > > diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target > index c48de439625..3c239fdd082 100644 > --- a/tests/tcg/s390x/Makefile.target > +++ b/tests/tcg/s390x/Makefile.target > @@ -48,6 +48,7 @@ TESTS += $(PGM_SPECIFICATION_TESTS) > > Z13_TESTS=vistr > Z13_TESTS+=lcbb > +Z13_TESTS+=locfhr > $(Z13_TESTS): CFLAGS+=-march=z13 -O2 > TESTS+=$(Z13_TESTS) > > diff --git a/tests/tcg/s390x/locfhr.c b/tests/tcg/s390x/locfhr.c > new file mode 100644 > index 00000000000..ab9ff6e4490 > --- /dev/null > +++ b/tests/tcg/s390x/locfhr.c > @@ -0,0 +1,29 @@ > +/* > + * Test the LOCFHR instruction. > + * > + * SPDX-License-Identifier: GPL-2.0-or-later > + */ > +#include <assert.h> > +#include <stdlib.h> > + > +static inline __attribute__((__always_inline__)) long > +locfhr(long r1, long r2, int m3, int cc) > +{ > + cc <<= 28; > + asm("spm %[cc]\n" > + "locfhr %[r1],%[r2],%[m3]\n" > + : [r1] "+r" (r1) > + : [cc] "r" (cc), [r2] "r" (r2), [m3] "i" (m3) > + : "cc"); > + return r1; > +} > + > +int main(void) > +{ > + assert(locfhr(0x1111111122222222, 0x3333333344444444, 8, 0) == > + 0x3333333322222222); > + assert(locfhr(0x5555555566666666, 0x7777777788888888, 11, 1) == > + 0x5555555566666666); > + > + return EXIT_SUCCESS; > +} Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target index c48de439625..3c239fdd082 100644 --- a/tests/tcg/s390x/Makefile.target +++ b/tests/tcg/s390x/Makefile.target @@ -48,6 +48,7 @@ TESTS += $(PGM_SPECIFICATION_TESTS) Z13_TESTS=vistr Z13_TESTS+=lcbb +Z13_TESTS+=locfhr $(Z13_TESTS): CFLAGS+=-march=z13 -O2 TESTS+=$(Z13_TESTS) diff --git a/tests/tcg/s390x/locfhr.c b/tests/tcg/s390x/locfhr.c new file mode 100644 index 00000000000..ab9ff6e4490 --- /dev/null +++ b/tests/tcg/s390x/locfhr.c @@ -0,0 +1,29 @@ +/* + * Test the LOCFHR instruction. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#include <assert.h> +#include <stdlib.h> + +static inline __attribute__((__always_inline__)) long +locfhr(long r1, long r2, int m3, int cc) +{ + cc <<= 28; + asm("spm %[cc]\n" + "locfhr %[r1],%[r2],%[m3]\n" + : [r1] "+r" (r1) + : [cc] "r" (cc), [r2] "r" (r2), [m3] "i" (m3) + : "cc"); + return r1; +} + +int main(void) +{ + assert(locfhr(0x1111111122222222, 0x3333333344444444, 8, 0) == + 0x3333333322222222); + assert(locfhr(0x5555555566666666, 0x7777777788888888, 11, 1) == + 0x5555555566666666); + + return EXIT_SUCCESS; +}
Add a small test to prevent regressions. Cc: qemu-stable@nongnu.org Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- tests/tcg/s390x/Makefile.target | 1 + tests/tcg/s390x/locfhr.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/tcg/s390x/locfhr.c