On 11/4/24 6:09 AM, Craig Blackmore wrote:
`expand_vec_setmem` only generated vectorized memset if it fitted into a
single vector store of at least (TARGET_MIN_VLEN / 8) bytes.  Also,
without dynamic LMUL the operation was always TARGET_MAX_LMUL even if it
would have fitted a smaller LMUL.

Allow vectorized memset to be generated for smaller lengths and smaller
LMUL by switching to using use_vector_string_op.  Smaller LMUL can be
seen in setmem-3.c:f3.  Smaller lengths will be seen after the second
patch in this series which selectively disables by pieces.

gcc/ChangeLog:

        * config/riscv/riscv-string.cc
        (use_vector_stringop_p): Add comment.
        (expand_vec_setmem): Use use_vector_stringop_p instead of
        check_vectorise_memory_operation.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/rvv/base/setmem-3.c: Expect smaller lmul.
Thanks.  I've pushed this to the trunk.
jeff

Reply via email to