Building fails due to incompatible instructions

20 views
Skip to first unread message

colt

unread,
Aug 26, 2025, 1:48:36 PM (10 days ago) Aug 26
to WebM Discussion

Hi. While building libvpx, I receive these error messages (just showing some):

"/tmp/cccs6JIy.s: Assembler messages:
/tmp/cccs6JIy.s:22: Error: no such instruction: `vbroadcasti128 (%r8),%ymm0'
/tmp/cccs6JIy.s:27: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:29: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:30: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:32: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:34: Error: no such instruction: `vinserti128 $0x1,%xmm5,%ymm4,%ymm4'
/tmp/cccs6JIy.s:36: Error: no such instruction: `vinserti128 $0x1,%xmm11,%ymm1,%ymm5'
/tmp/cccs6JIy.s:37: Error: no such instruction: `vinserti128 $0x1,%xmm6,%ymm0,%ymm10'
/tmp/cccs6JIy.s:38: Error: no such instruction: `vinserti128 $0x1,%xmm1,%ymm6,%ymm6'
/tmp/cccs6JIy.s:40: Error: no such instruction: `vinserti128 $0x1,%xmm0,%ymm2,%ymm2'
/tmp/cccs6JIy.s:41: Error: no such instruction: `vinserti128 $0x1,%xmm3,%ymm1,%ymm1'
/tmp/cccs6JIy.s:43: Error: suffix or operands invalid for `vpunpckhbw'"
....
....
/tmp/cccs6JIy.s:2967: Error: no such instruction: `vextracti128 $0x1,%ymm0,%xmm0'
make[1]: *** [vpx_dsp/x86/vpx_subpixel_8t_intrin_avx2.c.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [.DEFAULT] Error 2"

The reason for this is clear. My cpu does not support avx2. So  why is that configure is failing to realize that? I tried to pass -march=native through --extra-cflags and also do use the --cpu parameter, but neither worked. config.log only shows errors only in a few tests, due to the compiler, not the cpu:

"BEGIN /tmp/vpx-conf-464-12753.c
     1 int x;
END /tmp/vpx-conf-464-12753.c
gcc -m64 -Werror -mavx512f -mavx512cd -mavx512bw -mavx512dq -mavx512vl -c -o /tmp/vpx-conf-464-12753.o /tmp/vpx-conf-464-12753.c
gcc: error: unrecognized command line option ‘-mavx512bw’
gcc: error: unrecognized command line option ‘-mavx512dq’
gcc: error: unrecognized command line option ‘-mavx512vl’
check_cc -mavx512f
BEGIN /tmp/vpx-conf-464-12753.c
     1 #include <immintrin.h>
     2 void f(void) {
     3   __m512i x = _mm512_set1_epi16(0);
     4   (void)x;
     5 }
END /tmp/vpx-conf-464-12753.c
gcc -m64 -mavx512f -c -o /tmp/vpx-conf-464-12753.o /tmp/vpx-conf-464-12753.c
/tmp/ccofVaYi.s: Assembler messages:
/tmp/ccofVaYi.s:19: Error: no such instruction: `vpxord %zmm1,%zmm1,%zmm1'
/tmp/ccofVaYi.s:20: Error: no such instruction: `vmovdqa64 %zmm1,-304(%rbp)'
/tmp/ccofVaYi.s:253: Error: no such instruction: `vmovdqa64 -304(%rbp),%zmm2'
/tmp/ccofVaYi.s:254: Error: no such instruction: `vmovdqa64 %zmm2,-240(%rbp)'
/tmp/ccofVaYi.s:255: Error: no such instruction: `vmovdqa64 -240(%rbp),%zmm0'
/tmp/ccofVaYi.s:256: Error: no such instruction: `vmovdqa64 %zmm0,-112(%rbp)'
    disabling avx512: not supported by compiler

James Zern

unread,
Aug 28, 2025, 10:40:04 PM (8 days ago) Aug 28
to webm-d...@webmproject.org
Hi,

On Tue, Aug 26, 2025 at 10:48 AM colt <brasil.a...@gmail.com> wrote:

Hi. While building libvpx, I receive these error messages (just showing some):

"/tmp/cccs6JIy.s: Assembler messages:
/tmp/cccs6JIy.s:22: Error: no such instruction: `vbroadcasti128 (%r8),%ymm0'
/tmp/cccs6JIy.s:27: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:29: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:30: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:32: Error: suffix or operands invalid for `vpshufb'
/tmp/cccs6JIy.s:34: Error: no such instruction: `vinserti128 $0x1,%xmm5,%ymm4,%ymm4'
/tmp/cccs6JIy.s:36: Error: no such instruction: `vinserti128 $0x1,%xmm11,%ymm1,%ymm5'
/tmp/cccs6JIy.s:37: Error: no such instruction: `vinserti128 $0x1,%xmm6,%ymm0,%ymm10'
/tmp/cccs6JIy.s:38: Error: no such instruction: `vinserti128 $0x1,%xmm1,%ymm6,%ymm6'
/tmp/cccs6JIy.s:40: Error: no such instruction: `vinserti128 $0x1,%xmm0,%ymm2,%ymm2'
/tmp/cccs6JIy.s:41: Error: no such instruction: `vinserti128 $0x1,%xmm3,%ymm1,%ymm1'
/tmp/cccs6JIy.s:43: Error: suffix or operands invalid for `vpunpckhbw'"
....
....
/tmp/cccs6JIy.s:2967: Error: no such instruction: `vextracti128 $0x1,%ymm0,%xmm0'
make[1]: *** [vpx_dsp/x86/vpx_subpixel_8t_intrin_avx2.c.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [.DEFAULT] Error 2"

The reason for this is clear. My cpu does not support avx2. So  why is that configure is failing to realize that? I tried to pass -march=native through --extra-cflags and also do use the --cpu parameter, but neither worked. config.log only shows errors only in a few tests, due to the compiler, not the cpu:

By default the library uses runtime cpu detection. This means that as long as the compiler supports compiling the source it will be included in the library, but only used on cpus that support the instructions. In this case there may be an issue with the compiler you're using or the check by configure is incomplete. Please file a bug [1] and include the configure command line, the compiler version, config.log and the output from `make V=1`. If the compiler is very old we can't guarantee support [2], but if the fix is simple or there's a workaround we'll try to provide one.

In the meantime you can add `--disable-avx2` to your command line to avoid building these files.

 

"BEGIN /tmp/vpx-conf-464-12753.c
     1 int x;
END /tmp/vpx-conf-464-12753.c
gcc -m64 -Werror -mavx512f -mavx512cd -mavx512bw -mavx512dq -mavx512vl -c -o /tmp/vpx-conf-464-12753.o /tmp/vpx-conf-464-12753.c
gcc: error: unrecognized command line option ‘-mavx512bw’
gcc: error: unrecognized command line option ‘-mavx512dq’
gcc: error: unrecognized command line option ‘-mavx512vl’
check_cc -mavx512f
BEGIN /tmp/vpx-conf-464-12753.c
     1 #include <immintrin.h>
     2 void f(void) {
     3   __m512i x = _mm512_set1_epi16(0);
     4   (void)x;
     5 }
END /tmp/vpx-conf-464-12753.c
gcc -m64 -mavx512f -c -o /tmp/vpx-conf-464-12753.o /tmp/vpx-conf-464-12753.c
/tmp/ccofVaYi.s: Assembler messages:
/tmp/ccofVaYi.s:19: Error: no such instruction: `vpxord %zmm1,%zmm1,%zmm1'
/tmp/ccofVaYi.s:20: Error: no such instruction: `vmovdqa64 %zmm1,-304(%rbp)'
/tmp/ccofVaYi.s:253: Error: no such instruction: `vmovdqa64 -304(%rbp),%zmm2'
/tmp/ccofVaYi.s:254: Error: no such instruction: `vmovdqa64 %zmm2,-240(%rbp)'
/tmp/ccofVaYi.s:255: Error: no such instruction: `vmovdqa64 -240(%rbp),%zmm0'
/tmp/ccofVaYi.s:256: Error: no such instruction: `vmovdqa64 %zmm0,-112(%rbp)'
    disabling avx512: not supported by compiler

--
You received this message because you are subscribed to the Google Groups "WebM Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to webm-discuss...@webmproject.org.
To view this discussion visit https://groups.google.com/a/webmproject.org/d/msgid/webm-discuss/f62a51c3-0cd4-4dbd-a359-f60c91c04e53n%40webmproject.org.
Reply all
Reply to author
Forward
0 new messages