Page MenuHomeFreeBSD

biology/fermi-lite: port to armv7/aarch64
Needs ReviewPublic

Authored by fuz on Tue, Oct 15, 2:51 PM.

Details

Reviewers
yuri
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
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 60009
Build 56894: arc lint + arc unit

Event Timeline

fuz requested review of this revision.Tue, Oct 15, 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.