问题标签 [altivec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
471 浏览

sse - _mm_srli_si128 等效于 altivec

我正在将一个用 SSE 4.2 编写的程序移植到 Altivec。我在寻找内在的等价物时遇到了问题_mm_srli_si128

当我用谷歌搜索时,我发现vec_slo它是等价的。

这是我将内容左移 1 个字节的示例程序:

编译时出现以下错误:

0 投票
1 回答
582 浏览

c - Altivec 编译错误

我正在尝试遵循这样的简单示例 altivec 初始化:

但是,当我编译时,我收到一条错误消息:无法在不同大小的向量值之间进行转换。

有人知道为什么会这样吗?我的 gcc 版本是 4.4.6。

我现在可以使用 Paul 的解决方案。

但是,当我尝试打印它时,它给了我错误,因为我在 Paul 的评论下发表了评论。

有谁知道这个姐姐为什么会这样吗?

0 投票
1 回答
318 浏览

c - altivec 提取向量的一部分?

我正在尝试将一个 64 位值与一个 64 位值数组进行比较,例如

R_UINT64 FP;R_UINT64 输入[20000];

如果数组中的任何元素与 FP 的值匹配,则返回 true。

我必须遍历这个数组并找到一个匹配项,我试图通过一次查看 2 个元素而不是一个元素来提高效率。

在 Altivec 中,向量长度为​​ 128 位,因此我将放置两个 FP 副本,向量中的两个元素。(我将它们都截断两个 8 位,每个向量元素)

到目前为止一切顺利,但现在我遇到了一个问题。我找不到只查看一半向量并查看是否存在匹配的 VMX 过程,为了返回真值,两个值必须匹配,这不是我想要的。

所以我想知道是否有办法告诉编译器我每次只看一半的向量?

提前致谢!

0 投票
2 回答
945 浏览

c - AltiVec vec_ld() 是否仅适用于 16 字节对齐的变量?

在 gcc 4.1.2 中,vec_ld()在 CPU MPC74XX 板上无法正常工作。

但是,如果 float 变量对齐到 16 个字节,则它可以正常工作:

这是设计使然吗?

0 投票
0 回答
130 浏览

sse - 在apple developer上找不到关于SSE2、Altivec、VMX的资料

作为保罗。R 建议苹果开发人员有很多关于 SSE2 、 AVX 的资源,但我找不到。任何人都可以帮助我吗?顺便说一句,我也在寻找 altivec 邮件列表的存档。

谢谢!

英特尔 SSE 和 AVX 示例和教程

0 投票
1 回答
266 浏览

sse - Altivec 编程资源

需要将 Windows 上的一些编程代码移植到 PowerPC 上。这些代码需要某种优化,并需要使用 Altivec 编程。

想问在哪里可以找到 Altivec 和任何 SIMD 编程的良好初学者指南,如果它们类似于 SSE?

谢谢

0 投票
0 回答
52 浏览

c - 使用 vec_ld 处理页面错误

我有以下程序将向量加载到向量寄存器中。

如果 buf 在页面结束之前结束,比如让页面从 0 到 4000 地址,缓冲区从 3990 开始。第二个vec_ld将地址对齐到小于 (3990+15) 的地址,这将是相等的到 4000。

如果从地址 4000 开始的页面没有被映射,上面的程序就会崩溃。

如何避免分段错误?

我所能想到的就是memcpy在大小小于16字节时将数据从缓冲区复制到向量寄存器。

0 投票
2 回答
174 浏览

c - 相当于 AltiVec 中的 mm_storel_epi64?

我正在使用 AltiVec 编程接口开发一个项目。

在一个地方,我想将向量寄存器中的 8 个字节存储到缓冲区中。

在 SSE 中,我们具有将_mm_storel_epi64SIMD 寄存器的低 8 字节存储到缓冲区的内在特性。

关于在 AltiVec 中实现 8 字节存储的任何想法?

0 投票
1 回答
895 浏览

c++ - SIMD程序编译问题

我有一个用于向量加法的简单 SIMD 程序

我正在尝试使用这里的 Makefile 编译这个程序

在编译程序时..我收到以下错误

在不使用 Makefile 的情况下简单地编译。我正进入(状态

因此,我下载了 altivec.h 文件并将其放入文件夹中,但仍然出现相同的错误。

我不明白使用 -maltivec 选项有什么问题。还有其他编译方法吗?

0 投票
1 回答
79 浏览

assembly - PowerPC 上有屏蔽混合指令吗?

我正在尝试__vector在 PowerPC(POWER 8)上执行蒙版混合(在类型上)。在查看内在函数(此处提供列表)时,我可以看到一个向量选择,但没有任何合并。

在 x86 处理器上,我知道 intrinsic _mm256_blendv_ps,我正在寻找类似的东西。

谢谢!