Intel SSE4.2
的数量正好是313个汇编指令集(英特尔手册数量的总和)。我希望AVX
和AVX2
使用相同的号码,但无法找到任何可信参考号码。我发现reference告诉AVX
(第1页,表1)中有292条指令,错误且SSE4.2包含SSSE3,但它们并没有对它进行计数。那么如何计算AVX/AVX2
指令呢?
(我想编写一个程序并将英特尔内在函数指南复制到文本文件中并进行处理。但我需要一种更简单的方法
答案 0 :(得分:5)
AVX
中有86条说明,AVX2
中有137条说明,AVX
和AVX2
引入了223条新说明。
我已将英特尔内在函数指南复制到字格式,删除了内在函数,对汇编指令进行了排序并删除了重复的指令。
这假定所有指令都有相应的内在函数
AVX
ins:
vaddpd,
vaddps,
vaddsubpd,
vaddsubps,
vandnpd,
vandnps,
vandpd,
vandps,
vblendpd,
vblendps,
vblendvpd,
vblendvps,
vbroadcastf128,
vbroadcastsd,
VBROADCASTSS,
vcmppd,
vcmpps,
vcmpsd,
vcmpss,
vcvtdq2pd,
vcvtdq2ps,
vcvtpd2dq,
vcvtpd2ps,
vcvtps2dq,
vcvtps2pd,
vcvttpd2dq,
vcvttps2dq,
vdivpd,
vdivps,
vdpps,
vextractf128,
vhaddpd,
vhaddps,
vhsubpd,
vhsubps,
vinsertf128,
vlddqu,
vmaskmovpd,
vmaskmovps,
vmaxpd,
vmaxps,
vminpd,
vminps,
vmovapd,
vmovaps,
vmovddup,
vmovdqa,
vmovdqu,
vmovmskpd,
vmovmskps,
vmovntdq,
vmovntpd,
vmovntps,
vmovshdup,
vmovsldup,
vmovupd,
vmovups,
vmulpd,
vmulps,
vorpd,
vorps,
vperm2f128,
vpermilpd,
vpermilps,
vptest,
vpxor,
vrcpps,
vroundpd,
vroundps,
vrsqrtps,
vshufpd,
vshufps,
vsqrtpd,
vsqrtps,
vsubpd,
vsubps,
vtestpd,
vtestps,
vunpckhpd,
vunpckhps,
vunpcklpd,
vunpcklps,
vxorpd,
vxorps,
vzeroall,
vzeroupper,
和AVX2
ins:
movddup,
vbroadcasti128,
vextracti128,
vgatherdpd,
vgatherdps,
vgatherqpd,
vgatherqps,
vinserti128,
vmovntdqa,
vmpsadbw,
vpabsb,
vpabsd,
vpabsw,
vpackssdw,
vpacksswb,
vpackusdw,
vpackuswb,
vpaddb,
vpaddd,
vpaddq,
vpaddsb,
vpaddsw,
vpaddusb,
vpaddusw,
vpaddw,
vpalignr,
vpand,
vpandn,
vpavgb,
vpavgw,
vpblendd,
vpblendvb,
vpblendw,
vpbroadcastb,
vpbroadcastd,
vpbroadcastq,
vpbroadcastw,
vpcmpeqb,
vpcmpeqd,
vpcmpeqq,
vpcmpeqw,
vpcmpgtb,
vpcmpgtd,
vpcmpgtq,
vpcmpgtw,
vperm2i128,
vpermd,
vpermpd,
vpermps,
vpermq,
vpgatherdd,
vpgatherdq,
vpgatherqd,
vpgatherqq,
vphaddd,
vphaddsw,
vphaddw,
vphsubd,
vphsubsw,
vphsubw,
vpmaddubsw,
vpmaddwd,
vpmaskmovd,
vpmaskmovq,
vpmaxsb,
vpmaxsd,
vpmaxsw,
vpmaxub,
vpmaxud,
vpmaxuw,
vpminsb,
vpminsd,
vpminsw,
vpminub,
vpminud,
vpminuw,
vpmovmskb,
vpmovsxbd,
vpmovsxbq,
vpmovsxbw,
vpmovsxdq,
vpmovsxwd,
vpmovsxwq,
vpmovzxbd,
vpmovzxbq,
vpmovzxbw,
vpmovzxdq,
vpmovzxwd,
vpmovzxwq,
vpmuldq,
vpmulhrsw,
vpmulhuw,
vpmulhw,
vpmulld,
vpmullw,
vpmuludq,
VPOR,
vpsadbw,
vpshufb,
vpshufd,
vpshufhw,
vpshuflw,
vpsignb,
vpsignd,
vpsignw,
vpslld,
vpslldq,
vpsllq,
vpsllvd,
vpsllvq,
vpsllw,
vpsrad,
vpsravd,
vpsraw,
vpsrld,
vpsrldq,
vpsrlq,
vpsrlvd,
vpsrlvq,
vpsrlw,
vpsubb,
vpsubd,
vpsubq,
vpsubsb,
vpsubsw,
vpsubusb,
vpsubusw,
vpsubw,
vpunpckhbw,
vpunpckhdq,
vpunpckhqdq,
vpunpckhwd,
vpunpcklbw,
vpunpckldq,
vpunpcklqdq,
vpunpcklwd,
vpxor。
答案 1 :(得分:1)
This resource也提供了这个问题的答案:
英特尔AVX是一项全面的ISA增强功能,可增加n 另外还有新的功能 紧凑的新编码格式。
•大量(200+)以上的传统英特尔SSEx指令 通过增强的指令编码进行升级以利用 功能就像一个独特的源操作数和灵活的内存 对准。
•中等数量(<100)的传统128位Intel SS Ex指令 已被提升为处理256位矢量数据。
•许多新的数据处理和算术运算(&lt; 100), 在传统的英特尔SSEx中不存在,被添加到英特尔处理器中 将于2010年及以后推出。