[Bug 275929] biology/plink: Add support for other architectures using SIMDE

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 25 Dec 2023 14:12:18 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275929

            Bug ID: 275929
           Summary: biology/plink: Add support for other architectures
                    using SIMDE
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: jwb@freebsd.org
                CC: mzaki@e-mail.ne.jp
             Flags: maintainer-feedback?(mzaki@e-mail.ne.jp)
                CC: mzaki@e-mail.ne.jp

FYI, you can easily support other platforms using SIMDE.  The patches below
were all that was needed, in addition to a math/simde dependency, to make plink
1.9b6.17 work on Apple M1 via pkgsrc.

$NetBSD$

# Support non-x86

--- SFMT.h.orig 2023-12-25 14:05:59.079320161 +0000
+++ SFMT.h
@@ -129,7 +129,10 @@ extern "C" {
   128-bit SIMD like data type for standard C
   ------------------------------------------*/
 #ifdef __LP64__
-  #include <emmintrin.h>
+  // #include <emmintrin.h>
+  #define SIMDE_ENABLE_NATIVE_ALIASES
+  #include <simde/x86/sse2.h>
+

 /** 128-bit data structure */
 union W128_T {
$NetBSD$

# Support non-x86

--- plink_common.h.orig 2023-12-25 14:02:07.377466789 +0000
+++ plink_common.h
@@ -187,14 +187,9 @@
 // http://esr.ibiblio.org/?p=5095 ).

 #ifdef __LP64__
-  #ifndef __SSE2__
-    // It's obviously possible to support this by writing 64-bit non-SSE2 code
-    // shadowing each SSE2 intrinsic, but this almost certainly isn't worth
the
-    // development/testing effort until regular PLINK 2.0 development is
-    // complete.  No researcher has ever asked me for this feature.
-    #error "64-bit builds currently require SSE2.  Try producing a 32-bit
build instead."
-  #endif
-  #include <emmintrin.h>
+// #include <emmintrin.h>
+  #define SIMDE_ENABLE_NATIVE_ALIASES
+  #include <simde/x86/sse2.h>

   #define VECFTYPE __m128
   #define VECITYPE __m128i

-- 
You are receiving this mail because:
You are the assignee for the bug.