hor*_*guy 2 c assembly gcc sse sse2
我目前有以下代码:
float a[4] = { 10, 20, 30, 40 };
float b[4] = { 0.1, 0.1, 0.1, 0.1 };
asm volatile("movups (%0), %%xmm0\n\t"
"mulps (%1), %%xmm0\n\t"
"movups %%xmm0, (%1)"
:: "r" (a), "r" (b));
Run Code Online (Sandbox Code Playgroud)
我首先要问几个问题:
(1)如果我要在16字节边界上对齐数组,它甚至可以工作吗?由于数组是在堆栈上分配的,因此对齐它们几乎是不可能的吗?
看到这篇文章的选定答案:堆栈变量是否由GCC __attribute __((aligned(x)))对齐?
(2)代码是否可以重构以提高效率?如果我将两个浮点数组都放在寄存器而不只是一个?
谢谢
| 归档时间: |
|
| 查看次数: |
1708 次 |
| 最近记录: |