public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Chenghui Pan <panchenghui@loongson.cn>
To: gcc-patches@gcc.gnu.org
Cc: xry111@xry111.site, i@xen0n.name, chenglulu@loongson.cn,
	xuchenghua@loongson.cn, Chenghui Pan <panchenghui@loongson.cn>
Subject: [PATCH v2 0/8] Add Loongson SX/ASX instruction support to LoongArch target.
Date: Tue, 18 Jul 2023 19:06:17 +0800	[thread overview]
Message-ID: <20230718110625.88834-1-panchenghui@loongson.cn> (raw)

This is an update of https://gcc.gnu.org/pipermail/gcc-patches/2023-June/623262.html
In addition, LSX/LASX instructions support is added in the master branch of binutils-gdb,
and these GCC patches can be used with future releases of binutils-gdb.

Changes since v1:

- Some usages of "unspec" in lsx.md and lasx.md are replaced with arithmetic
  RTL expressions.
- Support ADDR_REG_REG in LSX and LASX.
- Constraint docs are appended in gcc/doc/md.texi and head comment block of
  gcc/config/loongarch/constraints.md.
- Codes related to vecarg in loongarch.cc and loongarch.opt.in are removed in v2.
- Testsuite of LSX and LASX is added in v2, and can be called by using
  loongarch-vector.exp independently.
- Adjust the loongarch_expand_vector_init() function to reduce instruction
  amount when initializing the vector with element-by-element style.
- Some minor implementation changes of RTL templates in lsx.md and lasx.md.

Lulu Cheng (8):
  LoongArch: Added Loongson SX vector directive compilation framework.
  LoongArch: Added Loongson SX base instruction support.
  LoongArch: Added Loongson SX directive builtin function support.
  LoongArch: Added Loongson ASX vector directive compilation framework.
  LoongArch: Added Loongson ASX base instruction support.
  LoongArch: Added Loongson ASX directive builtin function support.
  LoongArch: Add Loongson SX directive test cases.
  LoongArch: Add Loongson ASX directive test cases.

 gcc/config.gcc                                |     2 +-
 gcc/config/loongarch/constraints.md           |   131 +-
 .../loongarch/genopts/loongarch-strings       |     4 +
 gcc/config/loongarch/genopts/loongarch.opt.in |    12 +-
 gcc/config/loongarch/lasx.md                  |  5120 +++
 gcc/config/loongarch/lasxintrin.h             |  5342 +++
 gcc/config/loongarch/loongarch-builtins.cc    |  2686 +-
 gcc/config/loongarch/loongarch-c.cc           |    18 +
 gcc/config/loongarch/loongarch-def.c          |     6 +
 gcc/config/loongarch/loongarch-def.h          |     9 +-
 gcc/config/loongarch/loongarch-driver.cc      |    10 +
 gcc/config/loongarch/loongarch-driver.h       |     2 +
 gcc/config/loongarch/loongarch-ftypes.def     |   666 +-
 gcc/config/loongarch/loongarch-modes.def      |    39 +
 gcc/config/loongarch/loongarch-opts.cc        |    89 +-
 gcc/config/loongarch/loongarch-opts.h         |     3 +
 gcc/config/loongarch/loongarch-protos.h       |    35 +
 gcc/config/loongarch/loongarch-str.h          |     3 +
 gcc/config/loongarch/loongarch.cc             |  4669 +-
 gcc/config/loongarch/loongarch.h              |   117 +-
 gcc/config/loongarch/loongarch.md             |    56 +-
 gcc/config/loongarch/loongarch.opt            |    12 +-
 gcc/config/loongarch/lsx.md                   |  4479 ++
 gcc/config/loongarch/lsxintrin.h              |  5181 +++
 gcc/config/loongarch/predicates.md            |   333 +-
 gcc/doc/md.texi                               |    11 +
 .../gcc.target/loongarch/strict-align.c       |    13 +
 .../vector/lasx/lasx-bit-manipulate.c         | 27813 +++++++++++
 .../loongarch/vector/lasx/lasx-builtin.c      |  1509 +
 .../loongarch/vector/lasx/lasx-cmp.c          |  5361 +++
 .../loongarch/vector/lasx/lasx-fp-arith.c     |  6259 +++
 .../loongarch/vector/lasx/lasx-fp-cvt.c       |  7315 +++
 .../loongarch/vector/lasx/lasx-int-arith.c    | 38361 ++++++++++++++++
 .../loongarch/vector/lasx/lasx-mem.c          |   147 +
 .../loongarch/vector/lasx/lasx-perm.c         |  7730 ++++
 .../vector/lasx/lasx-str-manipulate.c         |   712 +
 .../loongarch/vector/lasx/lasx-xvldrepl.c     |    13 +
 .../loongarch/vector/lasx/lasx-xvstelm.c      |    12 +
 .../loongarch/vector/loongarch-vector.exp     |    42 +
 .../loongarch/vector/lsx/lsx-bit-manipulate.c | 15586 +++++++
 .../loongarch/vector/lsx/lsx-builtin.c        |  1461 +
 .../gcc.target/loongarch/vector/lsx/lsx-cmp.c |  3354 ++
 .../loongarch/vector/lsx/lsx-fp-arith.c       |  3713 ++
 .../loongarch/vector/lsx/lsx-fp-cvt.c         |  4114 ++
 .../loongarch/vector/lsx/lsx-int-arith.c      | 22424 +++++++++
 .../gcc.target/loongarch/vector/lsx/lsx-mem.c |   537 +
 .../loongarch/vector/lsx/lsx-perm.c           |  5555 +++
 .../loongarch/vector/lsx/lsx-str-manipulate.c |   408 +
 .../loongarch/vector/simd_correctness_check.h |    39 +
 49 files changed, 181229 insertions(+), 284 deletions(-)
 create mode 100644 gcc/config/loongarch/lasx.md
 create mode 100644 gcc/config/loongarch/lasxintrin.h
 create mode 100644 gcc/config/loongarch/lsx.md
 create mode 100644 gcc/config/loongarch/lsxintrin.h
 create mode 100644 gcc/testsuite/gcc.target/loongarch/strict-align.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-bit-manipulate.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-cmp.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-fp-arith.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-fp-cvt.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-int-arith.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-mem.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-perm.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-str-manipulate.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvstelm.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-bit-manipulate.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-cmp.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-fp-arith.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-fp-cvt.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-int-arith.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mem.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-perm.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-str-manipulate.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h

-- 
2.36.0


             reply	other threads:[~2023-07-18 11:07 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-18 11:06 Chenghui Pan [this message]
2023-07-18 11:06 ` [PATCH v2 1/8] LoongArch: Added Loongson SX vector directive compilation framework Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 2/8] LoongArch: Added Loongson SX base instruction support Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 3/8] LoongArch: Added Loongson SX directive builtin function support Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 4/8] LoongArch: Added Loongson ASX vector directive compilation framework Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 5/8] LoongArch: Added Loongson ASX base instruction support Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 6/8] LoongArch: Added Loongson ASX directive builtin function support Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 7/8] LoongArch: Add Loongson SX directive test cases Chenghui Pan
2023-07-18 11:06 ` [PATCH v2 8/8] LoongArch: Add Loongson ASX " Chenghui Pan
2023-07-18 12:26 ` [PATCH v2 0/8] Add Loongson SX/ASX instruction support to LoongArch target Xi Ruoyao
2023-07-19  1:14   ` PanChenghui

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=20230718110625.88834-1-panchenghui@loongson.cn \
    --to=panchenghui@loongson.cn \
    --cc=chenglulu@loongson.cn \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=i@xen0n.name \
    --cc=xry111@xry111.site \
    --cc=xuchenghua@loongson.cn \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).