X86 架构编程:AVX 新指令与 64 位核心架构解析
1. X86 - AVX 编程新指令
1.1 通用寄存器指令
基于 Haswell 等微架构的处理器引入了一些新的通用寄存器指令。这些指令可用于执行无标志乘法和移位操作,比基于标志的同类操作更快,还支持增强的位操作。
1.2 无标志乘法和位移操作
我们以 AvxGprMulxShiftx 示例程序来展示无标志无符号整数乘法和移位指令的使用。以下是该程序的 C++ 和汇编代码:
AvxGprMulxShiftx.cpp
#include "stdafx.h"
#include "MiscDefs.h"
extern "C" Uint64 AvxGprMulx_(Uint32 a, Uint32 b, Uint8 flags[2]);
extern "C" void AvxGprShiftx_(Int32 x, Uint32 count, Int32 results[3]);
void AvxGprMulx(void)
{
const int n = 3;
Uint32 a[n] = {64, 3200, 100000000};
Uint32 b[n] = {1001, 12, 250000000};
printf("Results for AvxGprMulx()\n");
for (int i = 0; i < n; i++)
{
Uint8 flags[2]
超级会员免费看
订阅专栏 解锁全文
120

被折叠的 条评论
为什么被折叠?



