|
|
1
13
gcc 4.3.2,使用-O1优化或更高版本,将您的函数转换为您向IA32程序集显示的函数,如下所示:
这只是一个32位
|
|
|
2
3
我不认为在标准C/C++中有比您现有的更好的方法来实现这一点。我要做的是编写一个简单的程序集包装器,返回您想要的结果。
|
|
|
3
2
在32位intel上,乘法会影响输出的两个寄存器。也就是说,64位是完全可用的,无论您是否想要它。这只是编译器是否足够聪明来利用它的一个函数。 现代编译器做的事情非常惊人,所以我的建议是再多做一些优化标记的实验,至少在英特尔上是这样。您可能会认为优化器可能知道处理器从32×32位生成64位值。 这就是说,在某个时刻,我试图让编译器在除法结果上使用模和除法,但1998年的老Microsoft编译器不够聪明,无法实现相同的指令同时产生两种结果。 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
|
Daniel Lobo · 使用约束进行优化 1 年前 |
|
Sergio · python中大量数字的乘法 2 年前 |
|
|
Sergey Dev · 临时表与表变量 2 年前 |
|
|
John · 减少C中的内存消耗++ 2 年前 |