C和C++函数double floor(double arg)
(在cmath
和math.h
中定义)返回不大于arg
的最大整数值。使用AVX指令进行矢量化的最有效方法是什么?如何在AVX中实现楼层(双层)?
从本质上讲,我要的是
__m256d floor(__m256d arg);
是否有必要转换成整数并返回?
C和C++函数double floor(double arg)
(在cmath
和math.h
中定义)返回不大于arg
的最大整数值。使用AVX指令进行矢量化的最有效方法是什么?如何在AVX中实现楼层(双层)?
从本质上讲,我要的是
__m256d floor(__m256d arg);
是否有必要转换成整数并返回?
该固有值存在为_mm256_floor_pd
是否要支持大于2^31的值? – anatolyg
我不认为你甚至可以安全地转换为整数,因为直到AVX512,只有标量'CVTTSD2SI r64,xmm/m64',没有打包的double-> 64bit整数转换。好东西有SSE4.1'roundpd'。 :P –