This is an update of : 
https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624770.html

Changes since last version:
- Revert vabsd/xvabsd RTL templates to unspec impl, because arithmetic RTL 
expression
  cannot cover the edge case of the instruction output. v2 impl of vabsd/xvabsd 
template
  cause the failure of gcc.dg/sabd_1.c when running regression test with 
  RUNTESTFLAGS="--target_board=unix/-mlsx".
- Resolve warning in gcc/config/loongarch/loongarch.cc when bootstrapping with 
  BOOT_CFLAGS="-O2 -ftree-vectorize -fno-vect-cost-model -mlasx".
- Remove redundant definitions in lasxintrin.h.
- Refine commit info.

Lulu Cheng (8):
  LoongArch: Add Loongson SX vector directive compilation framework.
  LoongArch: Add Loongson SX base instruction support.
  LoongArch: Add Loongson SX directive builtin function support.
  LoongArch: Add Loongson ASX vector directive compilation framework.
  LoongArch: Add Loongson ASX base instruction support.
  LoongArch: Add 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                  |  5122 +++
 gcc/config/loongarch/lasxintrin.h             |  5338 +++
 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                   |  4481 ++
 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.31.1

Reply via email to