science/cgribex: fix build on powerpc64le, powerpc64 with CPUTYPE=power6 and newer with Clang

Clang doesn't have __fsel function.
Taken from https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/rs6000/ppu_intrinsics.h;h=e17faae05932e33c22697a3178b26314b88c9a31;hb=HEAD#l530
This commit is contained in:
Piotr Kubaj 2021-01-27 13:16:16 +00:00
parent d361a794f2
commit d156d185df
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=563073

View File

@ -0,0 +1,22 @@
--- src/minmax_val.c.orig 2021-01-26 13:07:53 UTC
+++ src/minmax_val.c
@@ -292,6 +291,19 @@ void sse2_minmax_val_double(const double *restrict buf
#endif // SIMD
#if defined(_ARCH_PWR6)
+
+#ifndef __fsel
+static __inline__ double __fsel(double x, double y, double z)
+ __attribute__((always_inline));
+static __inline__ double
+__fsel(double x, double y, double z)
+{
+ double r;
+ __asm__("fsel %0,%1,%2,%3" : "=d"(r) : "d"(x),"d"(y),"d"(z));
+ return r;
+}
+#endif
+
static
void pwr6_minmax_val_double_unrolled6(const double *restrict data, size_t datasize, double *fmin, double *fmax)
{