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, Nov 15, 11:30 AM
Unknown Object (File)
Sat, Nov 9, 3:31 PM
Unknown Object (File)
Wed, Nov 6, 3:34 PM
Unknown Object (File)
Mon, Oct 28, 2:03 PM
Unknown Object (File)
Fri, Oct 25, 6:52 AM
Unknown Object (File)
Fri, Oct 25, 6:52 AM
Unknown Object (File)
Sun, Oct 20, 7:13 PM
Unknown Object (File)
Sun, Oct 20, 7:05 PM
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.Mon, Oct 28, 12:44 PM
This revision was automatically updated to reflect the committed changes.