关于EVEX压缩位移中input element size的定义及查询规则问询
EVEX编码disp8缩放因子相关问题解答
1. "input element size"的精确定义
input element size是指令处理向量内存操作数时,单个输入数据元素的字节宽度,属于指令语义定义的核心操作粒度。它和向量总长度(128/256/512位)是独立概念:向量总长度 = 单次处理的元素数量 × input element size。
举几个实际例子:
VADDPS(单精度浮点加法)的input element size为4字节(32位单精度浮点单元)VPMOVQB(字节向量转寄存器)的input element size为1字节(8位整数单元)VADDPD(双精度浮点加法)的input element size为8字节(64位双精度浮点单元)
2. Intel手册指令表中确定input element size的通用规则
在Intel 64/IA-32架构软件开发手册的指令表中,可通过以下通用规则快速定位每条指令的input element size:
指令助记词后缀直接标识:
绝大多数向量指令的助记词后缀会明确元素大小:- 整数指令:
B(1字节)、W(2字节)、D(4字节)、Q(8字节),比如VMOVB对应1字节,VPMULD对应4字节; - 浮点指令:
S(单精度,4字节)、D(双精度,8字节),比如VMOVSS对应4字节,VADDPD对应8字节; - AVX-512指令:后缀规则和上述一致,比如
VPCMPB对应1字节、VPCMPQ对应8字节;部分带EVEX.w位的指令,助记词会配合该位状态确定元素大小,这类情况会在指令描述中明确说明。
- 整数指令:
手册指令表列项明确标注:
每条指令的条目里,通常会有Element Size或Operand Size列,直接给出单个元素的字节宽度;同时指令的功能描述段落中,也会清晰说明操作的元素粒度。EVEX编码字段辅助验证:
EVEX.w位(宽度位)会配合指令语义调整元素大小,但这种调整是和指令助记词绑定的,手册中会明确标注该位对元素大小的影响,可作为验证依据。
内容的提问来源于stack exchange,提问作者YutakaAoki
相关产品推荐
相关产品推荐

