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(-)
