summaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorØyvind Kolås <pippin@gimp.org>2022-01-23 02:48:02 +0100
committerØyvind Kolås <pippin@gimp.org>2022-01-23 02:48:02 +0100
commit6012c648899745fcfd641b6e204d02802e1efdb5 (patch)
treee3eb9dd1cea478175a8c63aa28d23eb607b8a396 /extensions
parent45349ee92dcba00aa948cbaee244d58e973f2c28 (diff)
babl: add more missing SIMD build related files
Diffstat (limited to 'extensions')
-rw-r--r--extensions/babl-verify-cpu.inc63
1 files changed, 63 insertions, 0 deletions
diff --git a/extensions/babl-verify-cpu.inc b/extensions/babl-verify-cpu.inc
new file mode 100644
index 0000000..d656445
--- /dev/null
+++ b/extensions/babl-verify-cpu.inc
@@ -0,0 +1,63 @@
+#include "babl-cpuaccel.h"
+
+#ifdef X86_64_V2
+#define BABL_SIMD_x86_64_v2
+#define BABL_SIMD_SUFFIX(symbol) symbol##_x86_64_v2
+#else
+#ifdef X86_64_V3
+#define BABL_SIMD_x86_64_v3
+#define BABL_SIMD_SUFFIX(symbol) symbol##_x86_64_v3
+#else
+#define BABL_SIMD_generic
+#define BABL_SIMD_SUFFIX(symbol) symbol##_generic
+#endif
+#endif
+
+#define BABL_VERIFY_CPU() do{}while(0)
+
+
+#ifdef BABL_SIMDFREE
+
+#ifdef ARCH_X86_64
+
+#undef BABL_VERIFY_CPU
+#define BABL_VERIFY_CPU()\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_X86_64_V2)\
+ == BABL_CPU_ACCEL_X86_64_V2) return 0;\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_X86_64_V3)\
+ == BABL_CPU_ACCEL_X86_64_V3) return 0;
+
+#endif
+
+#ifdef ARCH_ARM
+#undef BABL_VERIFY_CPU
+#define BABL_VERIFY_CPU()\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_ARM_NEON)\
+ == BABL_CPU_ACCEL_ARM_NEON) return 0;
+
+#endif
+#endif
+
+#ifdef X86_64_V2
+#undef BABL_VERIFY_CPU
+#define BABL_VERIFY_CPU()\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_X86_64_V2)\
+ != BABL_CPU_ACCEL_X86_64_V2) return 0;\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_X86_64_V3)\
+ == BABL_CPU_ACCEL_X86_64_V3) return 0;
+#endif
+
+#ifdef X86_64_V3
+#undef BABL_VERIFY_CPU
+#define BABL_VERIFY_CPU()\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_X86_64_V3)\
+ != BABL_CPU_ACCEL_X86_64_V3) return 0;
+#endif
+
+
+#ifdef ARM_NEON
+#undef BABL_VERIFY_CPU
+#define BABL_VERIFY_CPU()\
+ if ((babl_cpu_accel_get_support() & BABL_CPU_ACCEL_ARM_NEON)\
+ != BABL_CPU_ACCEL_ARM_NEON) return 0;
+#endif