Page MenuHomeFreeBSD

biology/fermi-lite: port to armv7/aarch64
ClosedPublic

Authored by fuz on Oct 15 2024, 2:51 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jan 17, 3:42 PM
Unknown Object (File)
Fri, Jan 17, 2:36 PM
Unknown Object (File)
Sun, Jan 12, 6:32 AM
Unknown Object (File)
Sat, Jan 11, 4:55 AM
Unknown Object (File)
Dec 5 2024, 2:49 PM
Unknown Object (File)
Nov 26 2024, 12:51 PM
Unknown Object (File)
Nov 23 2024, 2:06 AM
Unknown Object (File)
Nov 23 2024, 2:03 AM
Subscribers

Details

Summary

This applies the sse2neon header on armv7 and aarch64 to implement
the SSE intrinsics.

Test Plan

builds fine on armv7, aarch64, amd64, and i386

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

fuz requested review of this revision.Oct 15 2024, 2:51 PM
fuz created this revision.

remove hash marks from ONLY_FOR_ARCHS block and alphabetise.

Note that this changeset requires a new port devel/sse2neon.h which just places sse2neon.h into ${LOCALBASE}/include. For testing the patch, you can just grab the file from up stream; I'll commit that port with my next patch.

Did you consider using devel/simde? That's usually how I get around this sort of issue.

No, I tried sse2neon, it worked, and then I did not see the need to investigate other approaches.

I think SIMDE will do the same thing for neon, while at the same time supporting a variety of other architectures with no additional patching. I've used it successfully with aarch64, powerpc64, and riscv. Probably worth a look. Check out biology/bwa, biology/bowtie2, etc.

Sorry, I will not redo this patch with simde as I already sunk a day into patching various ports with this appraoch. If you would like to give that a try, feel free to write your own patch and reject this one.

I don't think it's a good idea to add a new port that's basically a small fraction of an existing, well-supported port. Redoing the patches may be a drag, but it would benefit a lot of users by supporting other platforms, and avoid leading future developers away from a better solution by example. Using SIMDE also allows ONLY_FOR_ARCHS to be removed entirely, simplifying the port. The changes needed for SIMDE are similar to what you did. Just replace emmintrin.h with something like simde/x86/sse2.h. The conversion from sse2neon to SIMDE should be easy.

I am not at all familiar with SIMDe, while I have used sse2neon in some code and know of its shortcomings. Feel free to supply your own patch for SIMDe, I have no interest in doing that.

This revision was not accepted when it landed; it landed in state Needs Review.Oct 28 2024, 12:44 PM
This revision was automatically updated to reflect the committed changes.