是否存在从内存中的 32 位浮点值到 512 位寄存器生成 AVX512 广播操作的 x86 内在函数?
Is there an x86 intrinsic that generates the AVX512 broadcast operation from a 32 bit floating point value in memory to a 512 bit register?
该指令存在 (vbroadcastss zmm/m32
),但似乎没有生成它的内在指令。
我可以把它编码成
static inline __m512 mybroadcast(float *x) {
__m512 v;
asm inline ( "vbroadcastss %1,%0 "
: "=v" (v)
: "m" (*x)
);
return v;
}
有没有不用内联 asm 就可以做到这一点的方法?
我觉得_mm512_set1_ps
就是你想要的。
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_set1_ps&expand=5236,4980
该指令存在 (vbroadcastss zmm/m32
),但似乎没有生成它的内在指令。
我可以把它编码成
static inline __m512 mybroadcast(float *x) {
__m512 v;
asm inline ( "vbroadcastss %1,%0 "
: "=v" (v)
: "m" (*x)
);
return v;
}
有没有不用内联 asm 就可以做到这一点的方法?
我觉得_mm512_set1_ps
就是你想要的。
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_set1_ps&expand=5236,4980