我对aarch64中新的ld4r指令感到困惑。
以下代码(将相同的4个32位值加载到v [20-23]中):
ld1 { v20.4s }, [out1]
ld1 { v21.4s }, [out1]
ld1 { v22.4s }, [out1]
ld1 { v23.4s }, [out1]
似乎等同于以下代码:
ld1 { v20.4s }, [out1]
mov v21.16b, v20.16b
mov v22.16b, v20.16b
mov v23.16b, v20.16b
但它似乎不等同于以下行:
ld4r { v20.4s, v21.4s, v22.4s, v23.4s }, [out1]
我误读了ld4r指令吗?是不是应该复制超过4个车道?
答案 0 :(得分:0)
似乎ld4r只加载一个4元素结构,并在SAME通道上复制它。这不是通道到通道的复制。