[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