首页 > 试题广场 >

考虑下面的C函数,其中EXPR是用# define定义的宏:

[问答题]

考虑下面的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

这道题你会答吗?花几分钟告诉大家答案吧!