考虑下面的C函数,其中EXPR是用# define定义的宏:
double simplefun(double x) { return EXPR(x); }
下面,我们给出了为不同的EXPR定义生成的AVX2代码,其中,X的值保存在%xmm0 中。这些代码都对应于某些对浮点数值有用的操作。确定这些操作都是什么。要理解 从内存中取出的常数字的位模式才能找出答案。
vmovsd .LC1(%rip),%xmm1 vandpd %xmm1,%xmm0,%xmm0 .LC1: .long 4294967295 .long 2147483647 .long 0 .long 0 vxorpd %xmm0,%xmm0,%xmm0 .LC2: .long 0 .long -2147483648 .long 0 .long 0