ARM是否支持64位浮点数的SIMD操作?

ARM是否支持64位浮点数的SIMD操作?,arm,precision,simd,Arm,Precision,Simd,NEON可以对32位浮点数执行SIMD操作。但不对64位浮点数执行SIMD操作。 VFU不是SIMD。它只能对一个元素执行32位或64位浮点运算 ARM是否支持64位浮点数的SIMD操作?这仅在支持ARMv8的处理器上,并且仅在运行Aarch64指令集时才可能实现。这在Aarch32指令集中是不可能的 但是,大多数处理器支持32位和64位标量浮点运算(即浮点单元)。ARMv8 在ARMv8中,可以: fadd v2.2d, v0.2d, v1.2d 类似的ARMv7不工作: 程序集失败,原因

NEON可以对32位浮点数执行SIMD操作。但不对64位浮点数执行SIMD操作。 VFU不是SIMD。它只能对一个元素执行32位或64位浮点运算


ARM是否支持64位浮点数的SIMD操作?

这仅在支持ARMv8的处理器上,并且仅在运行Aarch64指令集时才可能实现。这在Aarch32指令集中是不可能的

但是,大多数处理器支持32位和64位标量浮点运算(即浮点单元)。

ARMv8

在ARMv8中,可以:

fadd v2.2d, v0.2d, v1.2d

类似的ARMv7不工作:

程序集失败,原因是:

bad type in Neon instruction -- `vadd.f64 q2,q0,q1'

手册

A1.5“高级SIMD和浮点支持”说明:

SIMD指令提供压缩单指令多数据(SIMD)和单元素标量操作,并支持:

  • AArch64状态下的单精度和双精度算法
对于ARMv7,F6.1.27“VADD(浮点)”表示:

是矢量元素的数据类型,编码在“sz”字段中。它可以具有以下值:

F32当sz=0时 F16当sz=1时


但是没有
F64
,这表明这是不可能的。

问题缺失。是和否。我们在这里谈论的是AArch64还是32位?@auselen:问题在标题中,但在正文中没有重复。@notlike,这不是更多关于ARMv8和ARMv7的吗?我认为ARM刚刚发布了一款32位ARMv8芯片。@Zboson…v8中的A32/T32指令集仍然与v7中的ARM/Thumb指令集具有相同的霓虹灯指令。事实上,Cortex-A32只能帮助消除“v8==AArch64”谬误。你是说64位simd操作在ARM中是可能的吗?如果是,请向我提供有关此的任何链接,希望了解有关此的更多信息。例如:。第7.1.Thnks Dric512段中Aarch64霓虹灯部分的最后一个要点是,对于链路,ARMv7不支持双精度矢量运算,但ARMv8支持双精度矢量运算。
bad type in Neon instruction -- `vadd.f64 q2,q0,q1'