[Bug c/82094] New: error: inlining failed in call to always_inline ‘_mm512_permutexvar_epi8’

vasistavinay at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Sep 4 05:21:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82094

            Bug ID: 82094
           Summary: error: inlining failed in call to always_inline
                    ‘_mm512_permutexvar_epi8’
           Product: gcc
           Version: 7.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vasistavinay at gmail dot com
  Target Milestone: ---

Created attachment 42111
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42111&action=edit
Permutation of uchar elements in an AVX-512 vector

I get the following error, when I compile the attached source with the given
command -


$ gcc -march=skylake-avx512 -mavx512f test_avx512_permute.c

In file included from
/in/gcc/7.1.0/Linux5/x86_64/lib/gcc/x86_64-pc-linux-gnu/7.1.0/include/immintrin.h:67:0,
                 from test_avx512_permute.c:4:
test_avx512_permute.c: In function ‘main’:
/in/gcc/7.1.0/Linux5/x86_64/lib/gcc/x86_64-pc-linux-gnu/7.1.0/include/avx512vbmiintrin.h:71:1:
error: inlining failed in call to always_inline ‘_mm512_permutexvar_epi8’:
target specific option mismatch
 _mm512_permutexvar_epi8 (__m512i __A, __m512i __B)
 ^~~~~~~~~~~~~~~~~~~~~~~
test_avx512_permute.c:13:7: note: called from here
     c = _mm512_permutexvar_epi8(a, b);
     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/in/gcc/7.1.0/Linux5/x86_64/lib/gcc/x86_64-pc-linux-gnu/7.1.0/include/immintrin.h:67:0,
                 from test_avx512_permute.c:4:
/in/gcc/7.1.0/Linux5/x86_64/lib/gcc/x86_64-pc-linux-gnu/7.1.0/include/avx512vbmiintrin.h:71:1:
error: inlining failed in call to always_inline ‘_mm512_permutexvar_epi8’:
target specific option mismatch
 _mm512_permutexvar_epi8 (__m512i __A, __m512i __B)
 ^~~~~~~~~~~~~~~~~~~~~~~
test_avx512_permute.c:13:7: note: called from here
     c = _mm512_permutexvar_epi8(a, b);
     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_________________________________

And strangely, if I comment out the epi8 set intrinsics (lines 12 and 13), and
do just the permutation without initializing vectors a and b, the following
error occurs for the same command string -


$ gcc -march=skylake-avx512 -mavx512f test_avx512_permute.c

In file included from
/in/gcc/7.1.0/Linux5/x86_64/lib/gcc/x86_64-pc-linux-gnu/7.1.0/include/immintrin.h:67:0,
                 from test_avx512_permute.c:5:
test_avx512_permute.c: In function ‘main’:
/in/gcc/7.1.0/Linux5/x86_64/lib/gcc/x86_64-pc-linux-gnu/7.1.0/include/avx512vbmiintrin.h:71:1:
error: inlining failed in call to always_inline ‘_mm512_permutexvar_epi8’:
target specific option mismatch
 _mm512_permutexvar_epi8 (__m512i __A, __m512i __B)
 ^~~~~~~~~~~~~~~~~~~~~~~
test_avx512_permute.c:16:7: note: called from here
     c = _mm512_permutexvar_epi8(a, b);
     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

_________________________________
(In other words, the same error is duplicated in the first case)

Please help me understand if there is anything wrong in my program.

P.S: I'm cross-compiling the code since I don't have the access to a skylake
machine yet.

Thanks and Regards,
~ Vinay


More information about the Gcc-bugs mailing list