RISC-V内联汇编实现矩阵乘法时的内存存储错误排查求助
RISC-V内联汇编矩阵乘法内存存储错误排查请求
问题详情
- 基于GNU C内联RISC-V汇编实现3×3矩阵与3×1矩阵的乘法
- 转写C循环逻辑
for (f = 0 ; f < 3; f++) *p_y += *p_h++ * *p_x++ ; p_y++;为asm volatile块时,出现内存存储异常:p_y地址更新正常,乘法计算结果正确- 内存中存储的最终值错误,存在累加异常,当前输出为
5 28 69
- 已尝试调整约束符(从
"+r"改为"+&r")并添加破坏列表,问题仍未解决 - 另有一版内联汇编代码可得到正确结果,预期输出为
14 32 50
输入数据
1 2 3 4 5 6 7 8 9 // 3×3输入矩阵H 1 2 3 // 3×1输入矩阵X 0 0 0 // 结果矩阵Y初始值
内容的提问来源于stack exchange,提问作者Justdoit
相关产品推荐
相关产品推荐

