Skip to content

compiler AVX2 intrinsics check is failing in autotools. #361

Open
@sezero

Description

@sezero

This is on i686-linux with gcc-14. Relevant parts of config.log:

configure:15283: checking if compiler supports AVX2 intrinsics with -mavx -mfma -mavx2
configure:15312: gcc14 -o conftest -g -O2 -mavx -mfma -mavx2   conftest.c  >&5
conftest.c: In function 'main':
conftest.c:40:53: error: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
   40 |               _mm256_cvtepi16_epi32(_mm_loadu_si128(utest));
      |                                                     ^~~~~
      |                                                     |
      |                                                     unsigned char *
In file included from /opt/gcc14/lib/gcc/i686-pc-linux-gnu/14.1.1/include/xmmintrin.h:1322,
                 from /opt/gcc14/lib/gcc/i686-pc-linux-gnu/14.1.1/include/immintrin.h:31,
                 from conftest.c:25:
/opt/gcc14/lib/gcc/i686-pc-linux-gnu/14.1.1/include/emmintrin.h:704:35: note: expected 'const __m128i_u *' but argument is of type 'unsigned char *'
  704 | _mm_loadu_si128 (__m128i_u const *__P)
      |                  ~~~~~~~~~~~~~~~~~^~~
configure:15312: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "opus"
| #define PACKAGE_TARNAME "opus"
| #define PACKAGE_VERSION "1.5.2-12-gfc96bb9"
| #define PACKAGE_STRING "opus 1.5.2-12-gfc96bb9"
| #define PACKAGE_BUGREPORT "[email protected]"
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define OPUS_BUILD /**/
| #define restrict __restrict
| #define VAR_ARRAYS 1
| #define FLOAT_APPROX 1
| /* end confdefs.h.  */
| #include <immintrin.h>
|            #include <time.h>
| 
| int
| main (void)
| {
| 
|              unsigned char utest[16] = {1};
|              __m256 mtest;
|              __m256i mtest1;
|              __m256i mtest2;
|              mtest = _mm256_set1_ps((float)time(NULL));
|              mtest = _mm256_fmadd_ps(mtest, mtest, mtest);
|              mtest1 = _mm256_set_m128i(_mm_loadu_si64(utest), _mm_loadu_si64(utest));
|              mtest2 =
|               _mm256_cvtepi16_epi32(_mm_loadu_si128(utest));
|              return _mm256_extract_epi16(_mm256_xor_si256(
|               _mm256_xor_si256(mtest1, mtest2), _mm256_cvttps_epi32(mtest)), 0);
| 
| 
|   ;
|   return 0;
| }
configure:15321: result: no
configure:15445: WARNING: Compiler does not support AVX2 intrinsics

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions