如何计算avx和avx2指令集的数量

时间:2016-11-29 07:34:49

标签: assembly x86 avx avx2

Intel SSE4.2的数量正好是313个汇编指令集(英特尔手册数量的总和)。我希望AVXAVX2使用相同的号码,但无法找到任何可信参考号码。我发现reference告诉AVX(第1页,表1)中有292条指令,错误且SSE4.2包含SSSE3,但它们并没有对它进行计数。那么如何计算AVX/AVX2指令呢? (我想编写一个程序并将英特尔内在函数指南复制到文本文件中并进行处理。但我需要一种更简单的方法

2 个答案:

答案 0 :(得分:5)

AVX中有86条说明,AVX2中有137条说明,AVXAVX2引入了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年及以后推出。