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

Enable fft_small module for CMake builds #1629

Merged
merged 41 commits into from
Nov 21, 2023

Conversation

albinahlback
Copy link
Collaborator

@albinahlback albinahlback commented Nov 17, 2023

I made the fft_small module available for MSVC systems that supports AVX2 or ARM NEON instructions.

Also changed definitions of FLINT_NORETURN and FLINT_TLS_PREFIX to the C standards.

I also enabled test checking for the Ubuntu CMake runner.

@albinahlback albinahlback force-pushed the fft_small_cmake branch 3 times, most recently from cdb4309 to 9dca714 Compare November 18, 2023 11:40
@albinahlback
Copy link
Collaborator Author

Okay, I think I found the error! It seems to be the non-GNU version of _madd in crt_helpers.h.

@albinahlback
Copy link
Collaborator Author

Hopefully this fixes #1629

@albinahlback
Copy link
Collaborator Author

Hey, it does work! Summoning @fredrik-johansson!

I messed up with the merge of two different branches, so I never managed to squash the commits properly and the commits are a little bit in the wrong order (for example, "disable fft_small for MSVC" comes after the enabling of it, which is incorrect). Hopefully this is okay though.

@fredrik-johansson
Copy link
Collaborator

Nothing really objectionable as far as I can tell.

The add_sssssaaaaaaaaaa etc. fallbacks look like they might not necessarily generate optimal code, so I'd at least like to have an issue open about profiling/improving that.

@albinahlback
Copy link
Collaborator Author

The add_sssssaaaaaaaaaa etc. fallbacks look like they might not necessarily generate optimal code, so I'd at least like to have an issue open about profiling/improving that.

Yes. X86 Windows could be using _addcarry_u64, but I'm unsure if ARM Windows have any better alternative. But let's open an issue about that instead.

@albinahlback albinahlback merged commit 9e8cfca into flintlib:trunk Nov 21, 2023
18 checks passed
@albinahlback albinahlback deleted the fft_small_cmake branch January 23, 2024 10:41
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 this pull request may close these issues.

2 participants