系统声称支持 AVX2,但未实现整数寄存器的广播

System claims AVX2 is supported, but broadcasts of integer registers are unimplemented

cat /proc/cpuinfo 报告已设置 avx2 标志。

但是AVX2指令vpbroadcastb在运行时导致非法指令异常。

我正在使用 x86_64 Linux 和 nasm 作为我的汇编程序。在我的系统上,复制它就像

一样简单
global main
main:
vpbroadcastb xmm1, eax

使用 NASM。

有人知道这件事吗?这是我正在使用的 AMD A12-9700P RADEON R7 APU。

vpbroadcastb 以通用寄存器作为操作数需要 AVX512。它进行汇编(使用足够新的汇编器),但是你在 CPU 上得到一个 非法指令 信号,只有 AVX2。

如果您的 CPU 支持 AVX2,

vpbroadcastb xmm1, xmm0

例如,应该可以。