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
next 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).