无心人
发表于 2020-2-7 21:51:00
好像,mulx支持更普遍点,adcx/adox支持弱很多
无心人
发表于 2020-2-7 21:54:23
gxqcn 发表于 2020-2-7 21:21
谢谢指点!
ADCX, MULX 将尽可能用上(我前年买的 i7-8550U 应该支持吧),
https://blog.csdn.net/xiuye2015/article/details/51408224
试试这个测试程序执行结果
gxqcn
发表于 2020-2-8 09:10:58
无心人 发表于 2020-2-7 21:54
https://blog.csdn.net/xiuye2015/article/details/51408224
试试这个测试程序执行结果
GenuineIntel
Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
3DNOW not supported
3DNOWEXT not supported
ABM not supported
ADX supported
AES supported
AVX supported
AVX2 supported
AVX512CD not supported
AVX512ER not supported
AVX512F not supported
AVX512PF not supported
BMI1 supported
BMI2 supported
CLFSH supported
CMPXCHG16B supported
CX8 supported
ERMS supported
F16C supported
FMA supported
FSGSBASE supported
FXSR supported
HLE not supported
INVPCID supported
LAHF supported
LZCNT supported
MMX supported
MMXEXT not supported
MONITOR supported
MOVBE supported
MSR supported
OSXSAVE supported
PCLMULQDQ supported
POPCNT supported
PREFETCHWT1 not supported
RDRAND supported
RDSEED supported
RDTSCP supported
RTM not supported
SEP supported
SHA not supported
SSE supported
SSE2 supported
SSE3 supported
SSE4.1 supported
SSE4.2 supported
SSE4a not supported
SSSE3 supported
SYSCALL supported
TBM not supported
XOP not supported
XSAVE supported
gxqcn
发表于 2020-2-8 09:14:45
无心人 发表于 2020-2-7 21:51
好像,mulx支持更普遍点,adcx/adox支持弱很多
正好,我主要需要的是 mulx,对 adcx/adox 并不怎么需要,
因为,内部数据并不是用满全部 bit 的,“进位加”运算的适用场合很少。
gxqcn
发表于 2020-2-8 09:27:31
另外,请教 无心人,我记得好像有一个指令,可以将一个数按 bit 位反序,叫什么来着?
无心人
发表于 2020-2-8 10:00:34
gxqcn 发表于 2020-2-8 09:27
另外,请教 无心人,我记得好像有一个指令,可以将一个数按 bit 位反序,叫什么来着?
有个BSWAP是字节顺序反序
然后4,2,1三步移位
gxqcn
发表于 2020-2-8 10:14:46
我刚刚也查到了这个指令,是按字节反序,
如果能做到按位反序的话,可以免去一个查表的过程,
其中,查表也是为了用空间换时间。
无心人
发表于 2020-2-8 10:21:07
gxqcn 发表于 2020-2-8 10:14
我刚刚也查到了这个指令,是按字节反序,
如果能做到按位反序的话,可以免去一个查表的过程,
其中,查表 ...
查表不见得比三步移位快,最好测试下
gxqcn
发表于 2020-2-13 20:42:51
gxqcn 发表于 2020-2-7 21:21
关于汇编,我打算先安装 Intel C++ Compiler,它允许内联汇编,看看效果;
如不行,再考虑独立汇编。
看编译器支持:https://zh.cppreference.com/w/cpp/compiler_support
发现现在 Intel C++ 远不如 MSVC 对标准支持得好,
比如“三路比较运算符” operator <=>,前者就不支持,后者支持。
所以,决定放弃用 Intel C++ Compiler,
看来,写独立汇编是必须要过的坎了。
wayne
发表于 2020-2-13 22:10:21
gxqcn 发表于 2020-2-13 20:42
看编译器支持:https://zh.cppreference.com/w/cpp/compiler_support
发现现在 Intel C++ 远不如 MSVC ...
Intel C++ Compiler还是比较冷门的。我觉得只要支持 gcc和visual studio 两个就充分且完备了。再完美一点就用clang前端。
页:
1
2
3
[4]
5
6
7
8
9
10
11
12