]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V:Bugfix for vlmul_ext and vlmul_trunc with NULL return value[pr117286]
authorxuli <xuli1@eswincomputing.com>
Mon, 28 Oct 2024 04:41:09 +0000 (04:41 +0000)
committerxuli <xuli1@eswincomputing.com>
Mon, 28 Oct 2024 06:58:48 +0000 (06:58 +0000)
commit75caa17f5cb4e414919baff0435300b549a76eca
tree929850e9ac48c96324722b4157f5a3699df64223
parentf1823d8037e355cd755087e695051d190ffe755e
RISC-V:Bugfix for vlmul_ext and vlmul_trunc with NULL return value[pr117286]

This patch fixes following ICE:

test.c: In function 'func':
test.c:37:24: internal compiler error: Segmentation fault
   37 |     vfloat16mf2_t vc = __riscv_vlmul_trunc_v_f16m1_f16mf2(vb);
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The root cause is that vlmul_trunc has a null return value.
gimple_call <__riscv_vlmul_trunc_v_f16m1_f16mf2, NULL, vb_13>
                                                 ^^^

Passed the rv64gcv_zvfh regression test.

Singed-off-by: Li Xu <xuli1@eswincomputing.com>
PR target/117286

gcc/ChangeLog:

* config/riscv/riscv-vector-builtins-bases.cc: Do not expand NULL return.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/pr117286.c: New test.
gcc/config/riscv/riscv-vector-builtins-bases.cc
gcc/testsuite/gcc.target/riscv/rvv/base/pr117286.c [new file with mode: 0644]