Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
在哪里可以找到列出 SSE 内在函数操作的官方参考资料?
是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
c
gcc
SSE
SIMD
英特尔 SSE:为什么 `_mm_extract_ps` 返回 `int` 而不是 `float`?
为什么 mm extract ps返回一个int代替float 读单的正确方法是什么float来自 C 中的 XMM 寄存器 或者更确切地说 另一种询问方式是 其相反的是什么 mm set ps操作说明 所有答案似乎都没有真正回答问题 wh
c
SSE
SIMD
更快的四元数向量乘法不起作用
我的数学库需要一个更快的四元数向量乘法例程 现在我正在使用规范v qv q 1 它产生的结果与向量乘以由四元数组成的矩阵相同 所以我对它的正确性充满信心 到目前为止 我已经实现了 3 种替代 更快 的方法 1 我不知道我从哪里得到这个 v
c
vector
matrix
SSE
quaternions
与 SSE 比较 16 字节字符串
我有 16 字节的 字符串 它们可能更短 但您可能会假设它们在末尾用零填充 但您可能不会假设它们是 16 字节对齐的 至少不总是 如何编写一个例程将它们与 SSE 内在函数进行比较 是否相等 我发现这个代码片段可能会有帮助 但我不确定它是否
c
gcc
x86
SSE
SIMD
添加饱和 32 位有符号整数内在函数?
有人可以推荐一种使用 Intel 内在函数 AVX SSE4 添加饱和 32 位有符号整数的快速方法吗 我查看了内在指南并发现 mm256 adds epi16但这似乎只添加 16 位整数 我没有看到 32 位有任何类似的东西 其他电话似乎
x86
SSE
intrinsics
avx
saturationarithmetic
在 SSE 和 AVX512 寄存器之间移动数据?
我想将四个 xmm 寄存器移动到一个 zmm 寄存器中 使用 AVX512 指令执行一些计算并将结果返回到 XMM 寄存器 不通过内存来做到这一点的最有效方法是什么 None
SSE
avx512
为什么“+=”在 SSE 内在函数中给出了意想不到的结果
sse内在累加有两种实现方式 但其中之一得到了错误的结果 include
c
gcc
SSE
intrinsics
同时使用 SSE2 内在函数和 gcc 内联汇编器
我尝试在 gcc 中混合 SSE2 内在函数和内联汇编器 但是 如果我将变量指定为 xmm0 register 作为输入 那么在某些情况下我会收到编译器错误 例子 include
gcc
SSE
inlineassembly
intrinsics
对齐与未对齐 x86 SIMD 指令之间的选择
SIMD指令一般有两种类型 A 使用对齐的内存地址 如果地址未在操作数大小边界上对齐 则会引发一般保护 GP 异常 movaps xmm0 xmmword ptr rax vmovaps ymm0 ymmword ptr rax vmova
x86
SSE
SIMD
avx
avx512
_MM_TRANSPOSE4_PS 在 GCC 中导致编译器错误?
我第一次在 GCC 而不是 MSVC 中编译我的数学库 并经历了所有的小错误 我遇到了一个根本没有意义的错误 Line 284 error lvalue required as left operand of assignment 284号
c
visualc
gcc
SSE
intrinsics
C 风格强制转换与内在强制转换
假设我已经定义了 m256d x我想提取低 128 位 我会做 m128d xlow mm256 castpd256 pd128 x 然而 我最近看到有人这样做 m128d xlow m128d x 是否有用于演员的首选方法 为什么要用第一
c
SSE
avx
将 XMM 寄存器压入堆栈
有没有办法将打包双字整数从 XMM 寄存器推送到堆栈 然后在需要时将其弹出 理想情况下 我正在寻找通用寄存器的 PUSH 或 POP 之类的东西 我已经检查了英特尔手册 但我要么错过了命令 要么没有 或者我是否必须将值解压到通用寄存器然后推
Assembly
x86
SIMD
SSE
如何使用 __m128i 执行元素左移?
我发现 SSE 移位指令只能在所有元素上移位相同的量 mm sll epi32 mm slli epi32 这些会移动所有元素 但移动量相同 http software intel com sites products documentat
c
SSE
avx
是否有适用于双打 (__m128d) 的 Move (_mm_move_ss) 和 Set (_mm_set_ss) 内在函数?
多年来 我有几次看到 in 中的内在函数float参数被转换为 m128使用以下代码 m128 b mm move ss m mm set ss a 例如 void MyFunction float y m128 a mm move ss
c
x86
double
SSE
intrinsics
_mm_max_ss 在 clang 和 gcc 之间有不同的行为
我正在尝试使用 clang 和 gcc 交叉编译一个项目 但在使用时发现一些奇怪的差异 mm max ss e g m128 a mm set ss std numeric limits
c
gcc
x86
Clang
SSE
将字段中的位扩展到掩码中所有(重叠+相邻)集位的最快方法?
假设我有 2 个名为 IN 和 MASK 的二进制输入 实际字段大小可能是 32 到 256 位 具体取决于用于完成任务的指令集 每次调用时两个输入都会改变 Inputs IN 1100010010010100 MASK 000111101
c
Assembly
x86
SSE
avx
SSE:跨页边界的未对齐加载和存储
我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
c
Linux
x8664
SSE
memoryalignment
大数组上的 SSE 性能较慢
我是 SSE 编程新手 所以我希望有人可以帮助我 我最近使用 GCC SSE 内在函数实现了一个函数来计算 32 位整数数组的总和 下面给出了我的实现代码 int ssum const int d unsigned int len stat
c
performance
SSE
SIMD
intrinsics
按字节数对向量进行混洗
有什么办法可以左移 v 0 gt v 1 a m128i by n字节 其中n仅在运行时才知道 我目前仅限于 AVX1 但如果 AVX2 512 使这变得更容易 我非常感兴趣 I found mm bslli si128 m128i imm
c
x86
SSE
intrinsics
avx
使用 (float&)int 进行类型双关可以正常工作,(float const&)int 会像 (float)int 一样转换吗?
VS2019 发布 x86 template
c
Assembly
visualc
SSE
intrinsics
1
2
3
4
5
6
...12
»