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

            Bug ID: 113420
           Summary: risc-v vector: ICE when using C compiler compile C++
                    RVV intrinsics
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: juzhe.zhong at rivai dot ai
  Target Milestone: ---

#include <riscv_vector.h>

void matrix_transpose_intrinsics(float *dst, float *src, size_t n) 
{
    for (size_t row_id = 0; row_id < n; ++row_id) { // input row-index
        size_t avl = n;
        // source pointer to row_id-th row
        float* row_src = src + row_id * n;
        // destination pointer to row_id-th column
        float* row_dst = dst + row_id;
        while (avl > 0) {
            size_t vl = __riscv_vsetvl_e32m1(avl);
            vfloat32m1_t row = __riscv_vle32_v_f32m1(row_src, vl);
            __riscv_vsse32(row_dst, sizeof(float) * n, row, vl);
            // updating application vector length
            avl -= vl;
            // updating source and destination pointers
            row_src += vl;
            row_dst += vl * n;
        }
    }
}

<source>: In function 'matrix_transpose_intrinsics':
<source>:14:13: internal compiler error: in resolve_overloaded_builtin, at
config/riscv/riscv-vector-builtins.cc:4614
   14 |             __riscv_vsse32(row_dst, sizeof(float) * n, row, vl);
      |             ^~~~~~~~~~~~~~
0x7fbb66a29e3f __libc_start_main
        ???:0
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Compiler returned: 1

Reply via email to