]> 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)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 28 Jul 2024 17:05:56 +0000 (19:05 +0200)
commit9d6e3fe0d83ab7165e2bb1e0f3e578d6bd66f854
tree35b74725671e39f089c8b780c18183bf6ac02a5f
parentdbe6c7fed7ee152a6fc79e849d655a4e7e5112ce
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]