问题标签 [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.
c - 如何在 ARM Cortex-a8 中使用乘法和累加内在函数?
如何使用 GCC 提供的 Multiply-Accumulate 内在函数?
谁能解释我必须传递给这个函数的三个参数。我的意思是源和目标寄存器以及函数返回什么?
帮助!!!
simd - 如何使用 NEON SIMD 合并 2 行的元素?
我有一个
我有 2 行,
从这些我怎么能得到 -
是否有任何单个 NEON SIMD 指令可以合并这两行?或者我怎样才能使用内在函数尽可能少的步骤来实现这一点?
我想过使用zip/unzip内在函数,但zip 函数返回的数据类型float32x2x2_t
不适合我,我需要一个float32x4_t
数据类型。
optimization - SSE2 内在函数:直接访问内存
许多 SSE 指令允许源操作数是 16 字节对齐的内存地址。例如,各种 (un)pack 指令。PUNCKLBW 具有以下签名:
PUNPCKLBW xmm1, xmm2/m128
现在这对于内在函数似乎根本不可能。看起来必须使用 _mm_load* 内在函数来读取内存中的任何内容。这是 PUNPCKLBW 的内在函数:
__m128i _mm_unpacklo_epi8 (__m128i a, __m128i b);
(据我所知,__m128i 类型总是指一个 XMM 寄存器。)
现在,这是为什么呢?这是相当可悲的,因为我通过直接寻址内存看到了一些优化潜力......
c - 内在函数,无法定义 (C)
我实现了一个名为 abs() 的函数。我收到此错误:
内在函数,无法定义
我做错了什么?我正在使用 Visual Studio 2005。
arm - 将 8bit uint8_t 加载为 uint32_t?
我的图像处理项目适用于灰度图像。我有 ARM Cortex-A8 处理器平台。我想使用NEON。
我有一个灰度图像(考虑下面的例子),在我的算法中,我只需要添加列。
如何将四个 8 位像素值(即uint8_t)作为四个 uint32_t并行加载到 128 位 NEON 寄存器之一中?我必须使用什么内在功能来做到这一点?
我是说:
我必须将它们加载为 32 位,因为如果您仔细观察,我执行 255 + 255 的那一刻是 512,它不能保存在 8 位寄存器中。
例如
gcc - Mac上的SSE4.1内在函数编译错误
我在(我认为)支持它的硬件上使用 SSE4.1 内在函数时遇到了一些麻烦。谁能告诉我我是否错过了什么?
在 MacBookPro5,4 (Penryn) 上构建以下代码:
生成以下错误:
arm - 如何使用NEON比较(大于或等于)指令?
一般如何使用 NEON 比较指令?
这是一个案例,我想使用大于或等于指令?
目前我有一个,
在 NEON 中,我想以同样的方式使用 x,只是这次 x 是一个向量。
c - 如何使用 SSE 内在函数将值存储在不连续的内存位置?
我对 SSE 很陌生,并且使用内在函数优化了一段代码。我对操作本身很满意,但我正在寻找一种更好的方法来编写结果。结果以三个_m128i
变量结束。
我想要做的是将结果值中的特定字节存储到非连续的内存位置。我目前正在这样做:
其中y
、cb
和cr
是字节 ( unsigned char
) 数组。由于我无法定义的原因,这对我来说似乎是错误的。有人对更好的方法有任何建议吗?
谢谢!
c++ - 如何优化一个循环?
我有以下瓶颈功能。
我想C++
用 SSE2 内部函数替换代码。我已经尝试过_mm_cmpgt_epi8
,但它使用了签名比较。我需要无符号比较。
有什么技巧(SSE、SSE2、SSSE3)来解决我的问题吗?
注意: 在这种情况下,我不想使用多线程。
arm - 具有内在函数的前导零计算
我正在尝试优化一些在嵌入式系统中工作的代码(FLAC 解码、Windows CE、ARM 926 MCU)。
默认实现使用宏和查找表:
bsr
然而,大多数 CPU在 x86 和clz
ARM ( http://www.devmaster.net/articles/fixed-point-optimizations/ ) 上已经有一个专用指令,这应该更有效。
在 Windows CE 上,我们有内部函数_CountLeadingZeros
,它应该只是调用那个值。然而,它比宏慢 4 倍(以 1000 万次迭代测量)。
(应该)依赖于专用 ASM 指令的内在函数怎么可能慢 4 倍?