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

Allow building AVX2 on x86 (suggestion by @samuel-lee-msft) #467

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

msprotz
Copy link
Collaborator

@msprotz msprotz commented May 19, 2024

No description provided.

@msprotz msprotz requested a review from a team as a code owner May 19, 2024 21:59
@cla-bot cla-bot bot added the cla-signed label May 19, 2024
@msprotz
Copy link
Collaborator Author

msprotz commented May 19, 2024

So I'm confused. Here's the problematic compiler invocation:

/usr/bin/clang -DCMAKE_INTDIR=\"Debug\" -I/home/runner/work/hacl-packages/hacl-packages/include -I/home/runner/work/hacl-packages/hacl-packages/build -I/home/runner/work/hacl-packages/hacl-packages/karamel/include -I/home/runner/work/hacl-packages/hacl-packages/karamel/krmllib/dist/minimal -I/home/runner/work/hacl-packages/hacl-packages/vale/include -I/home/runner/work/hacl-packages/hacl-packages/libcrux/include -I/home/runner/work/hacl-packages/hacl-packages/libcrux/eurydice -m32 -g -std=gnu11 -g -Og -fPIC -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined -DHACL_CAN_COMPILE_VEC128 -msse2 -msse3 -msse4.1 -msse4.2 -MD -MT CMakeFiles/hacl_vec128.dir/Debug/src/Hacl_MAC_Poly1305_Simd128.c.o -MF CMakeFiles/hacl_vec128.dir/Debug/src/Hacl_MAC_Poly1305_Simd128.c.o.d -o CMakeFiles/hacl_vec128.dir/Debug/src/Hacl_MAC_Poly1305_Simd128.c.o -c /home/runner/work/hacl-packages/hacl-packages/src/Hacl_MAC_Poly1305_Simd128.c
/home/runner/work/hacl-packages/hacl-packages/src/Hacl_MAC_Poly1305_Simd128.c:78:40: warning: implicit declaration of function '_mm_insert_epi64' is invalid in C99 [-Wimplicit-function-declaration]
  Lib_IntVector_Intrinsics_vec128 f0 = Lib_IntVector_Intrinsics_vec128_insert64(acc0, 0ULL, 1U);

The error is about _mm_insert_epi64 not being defined. But according to https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_insert_epi64&ig_expand=3835 :

  • this should be found in #include <smmintrin.h> which we do have in libintvector.h
  • this is predicated on having sse4.1 which is ok since we do pass -msse4.1 to the compiler

@franziskuskiefer any clue?

(I am hearing that specific change works on Windows.)

@coveralls
Copy link

Pull Request Test Coverage Report for Build 9150790138

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 59.064%

Totals Coverage Status
Change from base Build 9096505835: 0.0%
Covered Lines: 38622
Relevant Lines: 65390

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

3 participants