diff options
author | Jin Ma <jinma@linux.alibaba.com> | 2024-08-17 09:29:11 -0600 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2024-08-17 09:29:11 -0600 |
commit | 3f51684ac05f065a87c53d9506400cbe97af6b79 (patch) | |
tree | e0cd8b5ad845862eaa98ea70ecc6ed4d1e8974c8 /gcc/digraph.h | |
parent | 06ae7bc1345a31a5f23dc86b348a1bef59bb3cc1 (diff) | |
download | gcc-3f51684ac05f065a87c53d9506400cbe97af6b79.zip gcc-3f51684ac05f065a87c53d9506400cbe97af6b79.tar.gz gcc-3f51684ac05f065a87c53d9506400cbe97af6b79.tar.bz2 |
RISC-V: Bugfix for RVV rounding intrinsic ICE in function checker
When compiling an interface for rounding of type 'vfloat16*' without using zvfh
or zvfhmin, it is not enough to use FLOAT_MODE_P because the type does not
support it. Although the subsequent riscv_validate_vector_type checks will
still fail and throw exceptions, I don't think we should have ICE here.
internal compiler error: in check, at config/riscv/riscv-vector-builtins-shapes.cc:444
10 | return __riscv_vfadd_vv_f16m1_rm (vs2, vs1, 0, vl);
| ^~~~~~
0x4191794 internal_error(char const*, ...)
/iothome/jin.ma/code/master/gcc/gcc/diagnostic-global-context.cc:491
0x416ebf5 fancy_abort(char const*, int, char const*)
/iothome/jin.ma/code/master/gcc/gcc/diagnostic.cc:1772
0x220aae6 riscv_vector::build_frm_base::check(riscv_vector::function_checker&) const
/iothome/jin.ma/code/master/gcc/gcc/config/riscv/riscv-vector-builtins-shapes.cc:444
0x2205323 riscv_vector::function_checker::check()
/iothome/jin.ma/code/master/gcc/gcc/config/riscv/riscv-vector-builtins.cc:4414
gcc/ChangeLog:
* config/riscv/riscv-protos.h (riscv_vector_float_type_p): New.
* config/riscv/riscv-vector-builtins.cc (function_instance::any_type_float_p):
Use riscv_vector_float_type_p instead of FLOAT_MODE_P for judgment.
* config/riscv/riscv.cc (riscv_vector_int_type_p): Change static to extern.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/bug-9.c: New test.
Diffstat (limited to 'gcc/digraph.h')
0 files changed, 0 insertions, 0 deletions