[pushed] [PATCH 0/5] LoongArch: Implement 128-vector widened mul/add/sub templates.

Lulu Cheng chenglulu@loongson.cn
Fri Oct 31 01:08:43 GMT 2025


Pushed to r16-4900 ... r16-4904

在 2025/10/27 下午3:23, Lulu Cheng 写道:
> 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(-)
>



More information about the Gcc-patches mailing list