Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compiler AVX2 intrinsics check is failing in autotools. #361

Open
sezero opened this issue Jul 29, 2024 · 0 comments · May be fixed by #362
Open

compiler AVX2 intrinsics check is failing in autotools. #361

sezero opened this issue Jul 29, 2024 · 0 comments · May be fixed by #362

Comments

@sezero
Copy link
Contributor

sezero commented Jul 29, 2024

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
sezero added a commit to sezero/opus that referenced this issue Jul 30, 2024
sezero added a commit to sezero/opus that referenced this issue Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant