https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117286

            Bug ID: 117286
           Summary: [RISC-V] internal compiler error: Segmentation fault
                    `__riscv_vlmul_ext_v_f16mf2_f16m1`
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yibohe at pku dot edu.cn
  Target Milestone: ---

For the following code with rvv intrinsics:
```
#include <riscv_vector.h>
_Float16 a[10];
void func(){
  int placeholder0 = 10;
  _Float16* ptr_a = a;
  for (size_t vl; placeholder0 > 0; placeholder0 -= vl){
    vl = __riscv_vsetvl_e16m1(placeholder0);
    vfloat16mf2_t va = __riscv_vle16_v_f16mf2(ptr_a, vl);
    vfloat16m1_t vb = __riscv_vlmul_ext_v_f16mf2_f16m1(va);
    ptr_a += vl;
  }
}
```

ICE is triggered with option `-O1`, `-O2`, `-O3`, and `-Os`.
```
riscv64-unknown-elf-gcc -march=rv64gcv_zvfh -mabi=lp64d -Wno-psabi -static -O1
-freport-bug 1.c
during RTL pass: expand
1.c: In function 'func':
1.c:9:23: internal compiler error: Segmentation fault
    9 |     vfloat16m1_t vb = __riscv_vlmul_ext_v_f16mf2_f16m1(va);
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x10439c3 crash_signal
        ../.././gcc/gcc/toplev.cc:319
0xc3c78d gen_lowpart_common(machine_mode, rtx_def*)
        ../.././gcc/gcc/emit-rtl.cc:1569
0xfe6e59 gen_lowpart_general(machine_mode, rtx_def*)
        ../.././gcc/gcc/rtlhooks.cc:48
0x1494ea2 riscv_vector::vlmul_ext::expand(riscv_vector::function_expander&)
const
        ../.././gcc/gcc/config/riscv/riscv-vector-builtins-bases.cc:1765
0x148e39b riscv_vector::function_expander::expand()
        ../.././gcc/gcc/config/riscv/riscv-vector-builtins.h:651
0x148e39b riscv_vector::expand_builtin(unsigned int, tree_node*, rtx_def*)
        ../.././gcc/gcc/config/riscv/riscv-vector-builtins.cc:4703
0xb41cd4 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
        ../.././gcc/gcc/builtins.cc:7769
0xc6d594 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        ../.././gcc/gcc/expr.cc:12361
0xb63e24 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
        ../.././gcc/gcc/expr.h:316
0xb63e24 expand_call_stmt
        ../.././gcc/gcc/cfgexpand.cc:2865
0xb63e24 expand_gimple_stmt_1
        ../.././gcc/gcc/cfgexpand.cc:3932
0xb63e24 expand_gimple_stmt
        ../.././gcc/gcc/cfgexpand.cc:4077
0xb68d3f expand_gimple_basic_block
        ../.././gcc/gcc/cfgexpand.cc:6133
0xb6b5e7 execute
        ../.././gcc/gcc/cfgexpand.cc:6872
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Preprocessed source stored into /tmp/cca2ogQP.out file, please attach this to
your bugreport.
```

Reply via email to