SSE 中的矢量化分支表查找快速近似余弦
我正在制作一个供个人使用的小型游戏引擎。目标架构是 x86_64,最好使用 SSE2。 正弦/余弦函数是核心部分之一,它是作为输入范围 [0, π / 2] 的 1024…
错误:来自类型“__m256i”的 static_cast 无效{aka ‘__vector(4) long long int’} 键入 ‘void*’
I'm trying to compile a piece of code where it calls uses static_cast to do something like the following: __m256i values; int64_t i = 1; sta…
将“movss xmm0,cs:dword_5B27420”替换为“movss xmm0,立即”
我在 Ida Pro 中有一个 linux .so 文件,并且有以下指令: movss xmm0, cs:dword_5B27420 是否可以使用与该指令相同或更少的字节数将固定值移动到 xmm…
打印 __m128i 变量
我正在尝试学习使用内在函数进行编码,下面是一个代码,它执行加法 使用的编译器:icc #include #include int main() { __m128i a = _mm_set_epi32(1,…
具有 PCLMULQDQ 的快速 CRC *未反映*
我正在尝试写一个 PCLMULQDQ 优化的 CRC-32 实现。特定的 CRC-32 变体适用于我不拥有的变体,但我试图以库形式提供支持。在 crcany model 形式中,它…
如何在C6678 DSP上使用SSE指令集?
SSE 只能在 x86 x64 CPU 上使用。我在 TI C6678 上使用 SPEEXDSP 库时遇到问题。我从来没有使用过SSE指令,我尝试了很多方法,但无法让它在DSP上工作…
如何加载16个8位数据并将它们连接到4个无符号整数?
有没有什么优雅的方法来加载 16 个 8 位数据并将它们连接到 4 个 unsigned int ? 如下所示: 通过 _mm_load_si128() 将以下数组(16 epi8)加载到 __…
如何在 Delphi 32 中探测计算机是否支持 SSE2?
C++ 方法是此处(在 Windows 下)。 相同的答案,但在 Linux 下使用 GCC。 据我了解,相关asm代码摘录: mov eax, 1 cpuid mov features, edx 我对BAS…
使用自动矢量化和 sse 加速对数据大小的依赖
我正在尝试使用英特尔编译器的自动矢量化和 sse 来加速一些代码。 所有计算都是将某些结构体node_t转换为另一个结构体w_t(函数tr()和gen_tr())。 当…
具有对齐成员的对象的动态分配 - 可能的解决方案?
我正在考虑使用 SSE 来加速我的项目中的一些代码。这通常需要我正在处理的数据进行 16 字节对齐。对于静态分配,我认为 __declspec(align(16)) 可以解…
将 uint32 向量转换为 float 向量的最有效方法?
x86 没有从无符号 int32 转换为浮点的 SSE 指令。实现这一目标最有效的指令序列是什么? 编辑: 为了澄清,我想做以下标量运算的向量序列: unsigned …