[Bug 276282] vectorized code fails on powerpc64le: typedef __vector uint8_t __m128i; in the port misc/randomx

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 12 Jan 2024 23:35:04 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276282

Piotr Kubaj <pkubaj@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pkubaj@FreeBSD.org

--- Comment #2 from Piotr Kubaj <pkubaj@FreeBSD.org> ---
The following patch seems to work:\--- src/intrin_portable.h.orig  2024-01-12
23:32:27 UTC
+++ src/intrin_portable.h
@@ -186,11 +186,11 @@ FORCE_INLINE uint32_t rx_get_rounding_mode() {
 #undef pixel
 #undef bool

-typedef __vector uint8_t __m128i;
-typedef __vector uint32_t __m128l;
-typedef __vector int      __m128li;
-typedef __vector uint64_t __m128ll;
-typedef __vector double __m128d;
+typedef vector unsigned char __m128i;
+typedef vector unsigned int __m128l;
+typedef vector int      __m128li;
+typedef vector unsigned long long __m128ll;
+typedef vector double __m128d;

 typedef __m128i rx_vec_i128;
 typedef __m128d rx_vec_f128;
@@ -209,7 +209,7 @@ typedef union{
 #define rx_prefetch_t0(x)

 /* Splat 64-bit long long to 2 64-bit long longs */
-FORCE_INLINE __m128i vec_splat2sd (int64_t scalar)
+FORCE_INLINE __m128i vec_splat2sd (long long scalar)
 { return (__m128i) vec_splats (scalar); }

 FORCE_INLINE rx_vec_f128 rx_load_vec_f128(const double* pd) {

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