This applies the sse2neon header on armv7 and aarch64 to implement
the SSE intrinsics.
Details
- Reviewers
yuri - Commits
- R11:9ecc74ab460e: biology/fermi-lite: port to armv7/aarch64
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
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.