vmadot的使用

可能不是vmadot的问题 而是其他问题 比如向量寄存器设置错误了?最简单的vmadot指令中A、B都是int8类型,C是int32类型,所以使用内联编码时 需要给C 重新设置向量寄存器 比如

    asm volatile(
        // 设置向量寄存器,元素 8bit,LMUL=1
        "vsetvli t0, x0, e8, m1, tu, mu\n"
        // 加载矩阵数据
        "vle8.v v0, (%[va])\n"       // 加载 A 向量
        "vsetvli t0, x0, e8, m1, tu, mu\n"
        "vle8.v v1, (%[vb])\n"       // 加载 B 向量
        // IME 扩展的 dot product
        "vmadot v2, v0, v1\n"      // v2 = v0 * v1 + v2(累加)
        
        //重新设置C的寄存器
        "vsetvli t0, x0, e32, m2, tu, mu\n"
        // 保存结果
        "vse32.v v2, (%[vc])\n"      // 存储 32bit 结果
        :
        : [va]"r"(a), [vb]"r"(b), [vc]"r"(c)
        : "t0", "v2", "v3", "memory"
    );