相关疑难解决方法(0)

AArch64是否支持未对齐访问?

AArch64本身是否支持未对齐访问?我问,因为目前ocamlopt假设"不".

alignment arm64

6
推荐指数
1
解决办法
2930
查看次数

LLVM 中的 SIMD 向量内存加载

LLVM 中将数据从内存加载到 SIMD 向量中的“正确”(即可移植)方式是什么?

查看 LLVM 的自动矢量化器为 x86 目标生成的典型 IR,模式似乎是:

  • 将指向标量类型(例如,double *)的指针位转换到相应的向量类型(例如,<4 x double>*),
  • 从转换后的指针加载,同时考虑对齐的考虑(即,不使用向量类型的自然对齐,而是使用相应标量类型的对齐)。

在 AVX 的情况下,这种模式很好地映射到 SIMD 内在函数,例如_mm256_loadu_pd()和朋友。但是,我不知道这种策略是否也适用于其他 ISA(例如 Neon、AltiVec)。

我无法在 LLVM 文档中找到有关该主题的信息。我错过了一些明显的东西吗?

c++ simd llvm avx llvm-ir

6
推荐指数
1
解决办法
217
查看次数

标签 统计

alignment ×1

arm64 ×1

avx ×1

c++ ×1

llvm ×1

llvm-ir ×1

simd ×1