]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Error early with V and no M extension.
authorRobin Dapp <rdapp@ventanamicro.com>
Wed, 24 Jul 2024 07:08:00 +0000 (09:08 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Thu, 25 Jul 2024 09:19:32 +0000 (11:19 +0200)
commite589ffb6d78881572ddea21df0d9b6c2641d574d
tree755ec649b802db178246f7d5a1aa493b1d4d2591
parent4cbbce045681c234387d8d56376ea179dc869229
RISC-V: Error early with V and no M extension.

For calculating the value of a poly_int at runtime we use a
multiplication instruction that requires the M extension.
Instead of just asserting and ICEing this patch emits an early
error at option-parsing time.

gcc/ChangeLog:

PR target/116036

* config/riscv/riscv.cc (riscv_override_options_internal): Error
with TARGET_VECTOR && !TARGET_MUL.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/arch-31.c: Add m to arch string and expect it.
* gcc.target/riscv/arch-32.c: Ditto.
* gcc.target/riscv/arch-37.c: Ditto.
* gcc.target/riscv/arch-38.c: Ditto.
* gcc.target/riscv/predef-14.c: Ditto.
* gcc.target/riscv/predef-15.c: Ditto.
* gcc.target/riscv/predef-16.c: Ditto.
* gcc.target/riscv/predef-26.c: Ditto.
* gcc.target/riscv/predef-27.c: Ditto.
* gcc.target/riscv/predef-32.c: Ditto.
* gcc.target/riscv/predef-33.c: Ditto.
* gcc.target/riscv/predef-36.c: Ditto.
* gcc.target/riscv/predef-37.c: Ditto.
* gcc.target/riscv/rvv/autovec/pr111486.c: Add m to arch string.
* gcc.target/riscv/compare-debug-1.c: Ditto.
* gcc.target/riscv/compare-debug-2.c: Ditto.
* gcc.target/riscv/rvv/base/pr116036.c: New test.
18 files changed:
gcc/config/riscv/riscv.cc
gcc/testsuite/gcc.target/riscv/arch-31.c
gcc/testsuite/gcc.target/riscv/arch-32.c
gcc/testsuite/gcc.target/riscv/arch-37.c
gcc/testsuite/gcc.target/riscv/arch-38.c
gcc/testsuite/gcc.target/riscv/compare-debug-1.c
gcc/testsuite/gcc.target/riscv/compare-debug-2.c
gcc/testsuite/gcc.target/riscv/predef-14.c
gcc/testsuite/gcc.target/riscv/predef-15.c
gcc/testsuite/gcc.target/riscv/predef-16.c
gcc/testsuite/gcc.target/riscv/predef-26.c
gcc/testsuite/gcc.target/riscv/predef-27.c
gcc/testsuite/gcc.target/riscv/predef-32.c
gcc/testsuite/gcc.target/riscv/predef-33.c
gcc/testsuite/gcc.target/riscv/predef-36.c
gcc/testsuite/gcc.target/riscv/predef-37.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
gcc/testsuite/gcc.target/riscv/rvv/base/pr116036.c [new file with mode: 0644]