public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] rs6000: Add SSE4.1 "blend", "ceil", "floor"
@ 2021-07-16 13:50 Paul A. Clarke
  2021-07-16 13:50 ` [PATCH v2 1/6] rs6000: Add support for SSE4.1 "blend" intrinsics Paul A. Clarke
                   ` (5 more replies)
  0 siblings, 6 replies; 20+ messages in thread
From: Paul A. Clarke @ 2021-07-16 13:50 UTC (permalink / raw)
  To: gcc-patches; +Cc: segher, wschmidt

I have combined three independent "v1" patchsets into this set,
and the "blend" patches were originally combined with "test",
which has now been merged.

Instead of copying some tests from gcc/testsuite/gcc.target/i386,
I created new tests.  The i386 tests in question used rand() to
generate the input data and assembly to compute the rounded values.
Using rand() for testing seems wrong, and the assembly is obviously
not portable.  I use static data, primarily exercising the edges of
dynamic ranges (where fractions start to be unrepresentable).

Tested on ppc64le, ppc64, ppc.

v2:
- Rewrite blends to use vec_perm.
- Improve formatting.

Paul A. Clarke (6):
  rs6000: Add support for SSE4.1 "blend" intrinsics
  rs6000: Add tests for SSE4.1 "blend" intrinsics
  rs6000: Add support for SSE4.1 "ceil" intrinsics
  rs6000: Add tests for SSE4.1 "ceil" intrinsics
  rs6000: Add support for SSE4.1 "floor" intrinsics
  rs6000: Add tests for SSE4.1 "floor" intrinsics

 gcc/config/rs6000/smmintrin.h                 | 124 ++++++++++++++++++
 .../gcc.target/powerpc/sse4_1-blendpd.c       |  89 +++++++++++++
 .../gcc.target/powerpc/sse4_1-blendps-2.c     |  81 ++++++++++++
 .../gcc.target/powerpc/sse4_1-blendps.c       |  90 +++++++++++++
 .../gcc.target/powerpc/sse4_1-blendvpd.c      |  65 +++++++++
 .../gcc.target/powerpc/sse4_1-ceilpd.c        |  51 +++++++
 .../gcc.target/powerpc/sse4_1-ceilps.c        |  41 ++++++
 .../gcc.target/powerpc/sse4_1-ceilsd.c        | 119 +++++++++++++++++
 .../gcc.target/powerpc/sse4_1-ceilss.c        |  95 ++++++++++++++
 .../gcc.target/powerpc/sse4_1-check.h         |   4 +
 .../gcc.target/powerpc/sse4_1-floorpd.c       |  51 +++++++
 .../gcc.target/powerpc/sse4_1-floorps.c       |  41 ++++++
 .../gcc.target/powerpc/sse4_1-floorsd.c       | 119 +++++++++++++++++
 .../gcc.target/powerpc/sse4_1-floorss.c       |  95 ++++++++++++++
 .../gcc.target/powerpc/sse4_1-round-data.h    |  20 +++
 .../gcc.target/powerpc/sse4_1-round.h         |  27 ++++
 .../gcc.target/powerpc/sse4_1-round2.h        |  27 ++++
 .../gcc.target/powerpc/sse4_1-roundpd-2.c     |  36 +++++
 .../gcc.target/powerpc/sse4_1-roundpd-3.c     |  36 +++++
 19 files changed, 1211 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-blendpd.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-blendps-2.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-blendps.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-blendvpd.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-ceilpd.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-ceilps.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-ceilsd.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-ceilss.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-floorpd.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-floorps.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-floorsd.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-floorss.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-round-data.h
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-round.h
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-round2.h
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd-2.c
 create mode 100644 gcc/testsuite/gcc.target/powerpc/sse4_1-roundpd-3.c

-- 
2.27.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2021-07-30 22:13 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-16 13:50 [PATCH v2 0/6] rs6000: Add SSE4.1 "blend", "ceil", "floor" Paul A. Clarke
2021-07-16 13:50 ` [PATCH v2 1/6] rs6000: Add support for SSE4.1 "blend" intrinsics Paul A. Clarke
2021-07-16 18:13   ` Bill Schmidt
2021-07-28 21:30   ` Segher Boessenkool
2021-07-16 13:50 ` [PATCH v2 2/6] rs6000: Add tests " Paul A. Clarke
2021-07-16 18:16   ` Bill Schmidt
2021-07-28 21:51   ` Segher Boessenkool
2021-07-16 13:50 ` [PATCH v2 3/6] rs6000: Add support for SSE4.1 "ceil" intrinsics Paul A. Clarke
2021-07-16 18:20   ` Bill Schmidt
2021-07-28 22:01   ` Segher Boessenkool
2021-07-16 13:50 ` [PATCH v2 4/6] rs6000: Add tests " Paul A. Clarke
2021-07-16 18:22   ` Bill Schmidt
2021-07-28 22:16   ` Segher Boessenkool
2021-07-30 22:13     ` Paul A. Clarke
2021-07-16 13:50 ` [PATCH v2 5/6] rs6000: Add support for SSE4.1 "floor" intrinsics Paul A. Clarke
2021-07-16 18:30   ` Bill Schmidt
2021-07-28 22:25   ` Segher Boessenkool
2021-07-16 13:50 ` [PATCH v2 6/6] rs6000: Add tests " Paul A. Clarke
2021-07-16 18:31   ` Bill Schmidt
2021-07-28 22:26   ` Segher Boessenkool

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).