Assembly 如何在RISC-V汇编中使用向量运算

Assembly 如何在RISC-V汇编中使用向量运算,assembly,simd,riscv,Assembly,Simd,Riscv,我正试图利用RISC-V汇编中的向量操作,特别是我需要用arch RV64iV或RV64GV编译我的源代码。 我使用的是riscv64未知elf工具链,参数如下: riscv64未知elf gcc-o测试-march=rv32iv测试.s 但我得到了以下错误: 汇编程序消息: 致命错误:-march=rv32iv:不支持的ISA子集'v' 谢谢截至2019年2月,没有标准的RISC-V向量扩展,这意味着标准的RISC-V工具链中没有支持。有各种各样的矢量扩展草案,但没有软件支持。截至2020年初

我正试图利用RISC-V汇编中的向量操作,特别是我需要用arch RV64iV或RV64GV编译我的源代码。 我使用的是riscv64未知elf工具链,参数如下:

riscv64未知elf gcc-o测试-march=rv32iv测试.s

但我得到了以下错误:

汇编程序消息: 致命错误:-march=rv32iv:不支持的ISA子集'v'


谢谢

截至2019年2月,没有标准的RISC-V向量扩展,这意味着标准的RISC-V工具链中没有支持。有各种各样的矢量扩展草案,但没有软件支持。

截至2020年初,RISC-V矢量扩展“V”规范的版本为0.8,仍处于草稿状态

然而,GNU gcc/binutils有“V”端口可用,并且Spike RISC-V模拟器也支持“V”0.8。这个


我最近发表了关于如何开始RISC-V“V”0.8开发的文章,例如如何构建正确的工具链、相关组件、组装、编译“V”代码以及如何使用Spike进行测试。

尝试更新您的工具链。关于2018年9月的RISC-V向量扩展,他说“目前还没有使用GCC进行任何实现工作或实验”。@Michael:但这是否意味着没有自动向量化或使GCC发出指令的内部函数?GNUBINUTILS是一个单独的项目,即使gcc从未发出asm指令,它也可以实现asm指令。(a.s上的
gcc
只是将asm文件从binutils馈送到
as
-march
选项通常在仅进行汇编而非编译时没有意义,但在ARM上对thumb和ARM可能没有影响。@PeterCordes:不知道。这就是我能找到的信息。我最近没有自己构建binutils,因此我没有任何最新的源代码发行版。我的评论在OP中得到了部分解决:他们应该尝试
riscv64 unknown elf gcc test.s
,看看汇编程序说了些什么,而不是搞错gcc前端。