Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
I can reproduce the crash above in my computer, so something is definitely off.
Looks like we emit this
case RISCV::BI__builtin_rvv_vmmv_m_b8: case RISCV::BI__builtin_rvv_vmmv_m_b4: case RISCV::BI__builtin_rvv_vmmv_m_b2: case RISCV::BI__builtin_rvv_vmmv_m_b1: case RISCV::BI__builtin_rvv_vmmv_m_b16: case RISCV::BI__builtin_rvv_vmmv_m_b32: case RISCV::BI__builtin_rvv_vmmv_m_b64: case RISCV::BI__builtin_rvv_vmand_mm_b8: case RISCV::BI__builtin_rvv_vmand_mm_b4: case RISCV::BI__builtin_rvv_vmand_mm_b2: case RISCV::BI__builtin_rvv_vmand_mm_b1: case RISCV::BI__builtin_rvv_vmand_mm_b16: case RISCV::BI__builtin_rvv_vmand_mm_b32: case RISCV::BI__builtin_rvv_vmand_mm_b64: ID = Intrinsic::riscv_vmand; IntrinsicTypes = {ResultType, Ops[2]->getType()}; break;
But Ops has size 2 so this is accessing past the end. I observed the crash with clang::RISCV::BI__builtin_rvv_vmmv_m_b1 but I assume it happens with the other ones as well.
I think the description of the builtin should be def : RVVBuiltin<"m", "m", type_range>; as these are like unary operations, aren't they?
Comment Actions
The fix is put in https://reviews.llvm.org/D100819#inline-952584. I will land D100819 today.