【发布时间】:2019-05-26 20:48:17
【问题描述】:
我正在尝试使用内在函数编写 AVX2 代码。想知道如何使用英特尔内在函数将 YMM 中的最低单词广播到整个 YMM。我知道用汇编代码我可以写
vpbroadcastw ymm1, xmm0
因为ymm0的最低字也是xmm0的最低字。我有一个变量 x,它是 YMM 中的一个值。但是
_mm256_broadcastw_epi16((__m128i) x)
其中 x 是 __m256i 返回错误——无法转换两个不同大小的东西。
rq_recip3_new.c:381:5: error: can’t convert a value of type ‘__m256i {aka __vector(4) long long int}’ to vector type ‘__vector(2) long long int’ which has different size
我认为这并不重要,但我的机器使用 gcc 6.4.1 和 7.3(分别为 Fedora 25 和 Ubuntu LTS 16.04)。
【问题讨论】:
标签: intrinsics avx2