On 8/14/25 7:34 AM, Kito Cheng wrote:
can_find_related_mode_p didn't handle VLS type correctly, and the root
cause is TARGET_MIN_VLEN is in bits, but what we want is in bytes.

gcc/ChangeLog:

        * config/riscv/riscv-selftests.cc (riscv_run_selftests):
        Call run_vectorize_related_mode_selftests.
        (test_vectorize_related_mode): New.
        (run_vectorize_related_mode_selftests): New.
        * config/riscv/riscv-v.cc (can_find_related_mode_p):
        Handle VLS type correctly.
Looks like it blew up in the self-tests.  From pre-commit testing:


cc1: internal compiler error: in require, at machmode.h:323
0x2ed3166 internal_error(char const*, ...)
        ../../../gcc/gcc/diagnostic-global-context.cc:534
0xd40037 fancy_abort(char const*, int, char const*)
        ../../../gcc/gcc/diagnostics/context.cc:1687
0xc6ff83 opt_mode<machine_mode>::require() const
        ../../../gcc/gcc/machmode.h:323
0xc6ff83 opt_mode<machine_mode>::require() const
        ../../../gcc/gcc/machmode.h:321
0xc6ff83 test_vectorize_related_mode
        ../../../gcc/gcc/config/riscv/riscv-selftests.cc:375
0x1a0b245 run_vectorize_related_mode_selftests
        ../../../gcc/gcc/config/riscv/riscv-selftests.cc:386
0x1a0b245 selftest::riscv_run_selftests()
        ../../../gcc/gcc/config/riscv/riscv-selftests.cc:467
0x2d54fd5 selftest::run_tests()
        ../../../gcc/gcc/selftest-run-tests.cc:117
0x15020be toplev::run_self_tests()
        ../../../gcc/gcc/toplev.cc:2281
Please submit a full bug report, with preprocessed source (by using 
-freport-bug).

Reply via email to