问题标签 [intrinsics]

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 投票
3 回答
15001 浏览

c - 如何在 ARM Cortex-a8 中使用乘法和累加内在函数?

如何使用 GCC 提供的 Multiply-Accumulate 内在函数?

谁能解释我必须传递给这个函数的三个参数。我的意思是源和目标寄存器以及函数返回什么?

帮助!!!

0 投票
1 回答
4158 浏览

simd - 如何使用 NEON SIMD 合并 2 行的元素?

我有一个

我有 2 行,

从这些我怎么能得到 -

是否有任何单个 NEON SIMD 指令可以合并这两行?或者我怎样才能使用内在函数尽可能少的步骤来实现这一点?

我想过使用zip/unzip内在函数,但zip 函数返回的数据类型float32x2x2_t不适合我,我需要一个float32x4_t数据类型。

0 投票
2 回答
3505 浏览

optimization - SSE2 内在函数:直接访问内存

许多 SSE 指令允许源操作数是 16 字节对齐的内存地址。例如,各种 (un)pack 指令。PUNCKLBW 具有以下签名:

PUNPCKLBW xmm1, xmm2/m128

现在这对于内在函数似乎根本不可能。看起来必须使用 _mm_load* 内在函数来读取内存中的任何内容。这是 PUNPCKLBW 的内在函数:

__m128i _mm_unpacklo_epi8 (__m128i a, __m128i b);

(据我所知,__m128i 类型总是指一个 XMM 寄存器。)

现在,这是为什么呢?这是相当可悲的,因为我通过直接寻址内存看到了一些优化潜力......

0 投票
4 回答
7171 浏览

c - 内在函数,无法定义 (C)

我实现了一个名为 abs() 的函数。我收到此错误:

内在函数,无法定义

我做错了什么?我正在使用 Visual Studio 2005。

0 投票
5 回答
4376 浏览

arm - 将 8bit uint8_t 加载为 uint32_t?

我的图像处理项目适用于灰度图像。我有 ARM Cortex-A8 处理器平台。我想使用NEON。

我有一个灰度图像(考虑下面的例子),在我的算法中,我只需要添加列。

如何将四个 8 位像素值(即uint8_t)作为四个 uint32_t并行加载到 128 位 NEON 寄存器之一中?我必须使用什么内在功能来做到这一点?

我是说:

替代文字

我必须将它们加载为 32 位,因为如果您仔细观察,我执行 255 + 255 的那一刻是 512,它不能保存在 8 位寄存器中。

例如

0 投票
2 回答
6428 浏览

gcc - Mac上的SSE4.1内在函数编译错误

我在(我认为)支持它的硬件上使用 SSE4.1 内在函数时遇到了一些麻烦。谁能告诉我我是否错过了什么?

在 MacBookPro5,4 (Penryn) 上构建以下代码:

生成以下错误:

0 投票
1 回答
2375 浏览

arm - 如何使用NEON比较(大于或等于)指令?

一般如何使用 NEON 比较指令?

这是一个案例,我想使用大于或等于指令?

目前我有一个,

在 NEON 中,我想以同样的方式使用 x,只是这次 x 是一个向量。

0 投票
4 回答
2333 浏览

c - 如何使用 SSE 内在函数将值存储在不连续的内存位置?

我对 SSE 很陌生,并且使用内在函数优化了一段代码。我对操作本身很满意,但我正在寻找一种更好的方法来编写结果。结果以三个_m128i变量结束。

我想要做的是将结果值中的特定字节存储到非连续的内存位置。我目前正在这样做:

其中ycbcr是字节 ( unsigned char) 数组。由于我无法定义的原因,这对我来说似乎是错误的。有人对更好的方法有任何建议吗?

谢谢!

0 投票
6 回答
1293 浏览

c++ - 如何优化一个循环?

我有以下瓶颈功能。

我想C++用 SSE2 内部函数替换代码。我已经尝试过_mm_cmpgt_epi8,但它使用了签名比较。我需要无符号比较。

有什么技巧(SSE、SSE2、SSSE3)来解决我的问题吗?

注意: 在这种情况下,我不想使用多线程。

0 投票
1 回答
753 浏览

arm - 具有内在函数的前导零计算

我正在尝试优化一些在嵌入式系统中工作的代码(FLAC 解码、Windows CE、ARM 926 MCU)。

默认实现使用宏和查找表:

bsr然而,大多数 CPU在 x86 和clzARM ( http://www.devmaster.net/articles/fixed-point-optimizations/ ) 上已经有一个专用指令,这应该更有效。

在 Windows CE 上,我们有内部函数_CountLeadingZeros,它应该只是调用那个值。然而,它比宏慢 4 倍(以 1000 万次迭代测量)。

(应该)依赖于专用 ASM 指令的内在函数怎么可能慢 4 倍?