1. Simplify the implementation of 256-vector 
vec_widen_<su>{add/sub/mult}_{hi/lo}.
2. Implement 128-bit vector vec_widen_<su>{add/sub/mult}_{hi/lo}.
3. Implement {s/u}dot_prod{v2di/v4si/v4di/v8si}{v8hi/v16qi/v16hi/v32qi}.
4. Removed redundant "-mlasx" compilation options in some test cases.

After doing this, the following test case can be tested and passed:

FAIL: gcc.dg/vect/vect-reduc-chain-1.c -flto -ffat-lto-objects  
scan-tree-dump-times vect "vectorizing statement: \\\\S+ = DOT_PROD_EXPR" 2
FAIL: gcc.dg/vect/vect-reduc-chain-1.c scan-tree-dump-times vect "vectorizing 
statement: \\\\S+ = DOT_PROD_EXPR" 2
FAIL: gcc.dg/vect/vect-reduc-chain-dot-slp-1.c -flto -ffat-lto-objects  
scan-tree-dump vect "vectorizing SLP node starting from: \\\\S+ = DOT_PROD_EXPR"
FAIL: gcc.dg/vect/vect-reduc-chain-dot-slp-1.c scan-tree-dump vect "vectorizing 
SLP node starting from: \\\\S+ = DOT_PROD_EXPR"
FAIL: gcc.dg/vect/vect-reduc-chain-dot-slp-2.c -flto -ffat-lto-objects  
scan-tree-dump vect "vectorizing SLP node starting from: \\\\S+ = DOT_PROD_EXPR"
FAIL: gcc.dg/vect/vect-reduc-chain-dot-slp-2.c scan-tree-dump vect "vectorizing 
SLP node starting from: \\\\S+ = DOT_PROD_EXPR"

Lulu Cheng (5):
  LoongArch: Simplify vec_widen_<su>{add/sub/mult}_{hi/lo}_m describe.
  LoongArch: Implement
    vec_widen_<su>{add/sub/mult}_{hi/lo}_{v16qi/v8hi}.
  LoongArch: Implement the vector dot product operation with quadruple
    width.
  LoongArch: Support vec_widen_[s]{add/sub/mult}_{hi/lo}_{v4si/v8si}.
  LoongArch: Remove the "-mlasx" compilation option from the test cases.

 gcc/config/loongarch/lasx.md                  |  76 ++++---------
 gcc/config/loongarch/loongarch-protos.h       |   6 +-
 gcc/config/loongarch/loongarch.cc             | 103 ++----------------
 gcc/config/loongarch/lsx.md                   |  48 +++++++-
 gcc/config/loongarch/simd.md                  |  55 +++++++++-
 .../gcc.dg/vect/slp-widen-mult-half.c         |   1 -
 gcc/testsuite/gcc.dg/vect/tree-vect.h         |   2 +
 .../gcc.dg/vect/vect-widen-mult-const-s16.c   |   1 -
 .../gcc.dg/vect/vect-widen-mult-const-u16.c   |   1 -
 .../gcc.dg/vect/vect-widen-mult-half-u8.c     |   1 -
 .../gcc.dg/vect/vect-widen-mult-half.c        |   1 -
 .../gcc.dg/vect/vect-widen-mult-u16.c         |   1 -
 .../gcc.dg/vect/vect-widen-mult-u8-s16-s32.c  |   1 -
 .../gcc.dg/vect/vect-widen-mult-u8-u32.c      |   1 -
 .../gcc.dg/vect/vect-widen-mult-u8.c          |   1 -
 15 files changed, 136 insertions(+), 163 deletions(-)

-- 
2.34.1

Reply via email to