Hi Juzhe,

The pre-commit CI is seeing these new failures after applying this patch [1]:

|FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/mask_strided_load-1.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_LOAD" 132 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/mask_strided_store-1.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_LOAD" 66 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/mask_strided_store-1.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_STORE" 66 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-1.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_LOAD" 66 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-3.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_LOAD" 55 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-1.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_STORE" 66 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-2.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_STORE" 44 FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_STORE" 55 |

Example debug log:
|
Executing on host: /home/runner/work/gcc-precommit-ci/gcc-precommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/xgcc -B/home/runner/work/gcc-precommit-ci/gcc-precommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/ /home/runner/work/gcc-precommit-ci/gcc-precommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c -march=rv32gc_zba_zbb_zbc_zbs -mabi=ilp32d -mcmodel=medlow -fdiagnostics-plain-output   -march=rv64gcv_zvfh -mabi=lp64d -O3 --param riscv-autovec-preference=scalable -fno-vect-cost-model -ffast-math -fdump-tree-optimized-details -S   -o strided_store-3.s    (timeout = 600) spawn -ignore SIGHUP /home/runner/work/gcc-precommit-ci/gcc-precommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/xgcc -B/home/runner/work/gcc-precommit-ci/gcc-precommit-ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/ /home/runner/work/gcc-precommit-ci/gcc-precommit-ci/riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c -march=rv32gc_zba_zbb_zbc_zbs -mabi=ilp32d -mcmodel=medlow -fdiagnostics-plain-output -march=rv64gcv_zvfh -mabi=lp64d -O3 --param riscv-autovec-preference=scalable -fno-vect-cost-model -ffast-math -fdump-tree-optimized-details -S -o strided_store-3.s PASS: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c (test for excess errors) gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c: pattern found 0 times FAIL: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c scan-tree-dump-times optimized " .MASK_LEN_STRIDED_STORE" 55 PASS: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c scan-tree-dump-not optimized " .SCATTER_STORE" PASS: gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-3.c scan-tree-dump-not optimized " .MASK_SCATTER_STORE"|

If these failures are due to the missing middle-end bits then feel free to ignore :-)

Thanks,
Patrick

[1]: https://github.com/ewlu/gcc-precommit-ci/issues/524#issuecomment-1787004837

On 10/31/23 13:26, Robin Dapp wrote:
Hi Juzhe,

LGTM once the middle-end parts are in.  Just tiny nits.
Nothing that would warrant a V2, though.

+;; =========================================================================
+;; == Stried Load/Store
missing a 'd' here.
+(define_predicate "vector_stride_extension_operand"
+  (ior (and (match_operand 0 "immediate_operand")
+            (match_test "Pmode == DImode"))
+       (and (match_operand 0 "const_0_operand")
+            (match_test "Pmode == SImode"))))
+
This could use a comment why we allow only sign extension
for 32 bit.  Also the linter complains about spaces vs tabs.

Regards
  Robin

Reply via email to