[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 20:41:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276282

            Bug ID: 276282
           Summary: vectorized code fails on powerpc64le: typedef __vector
                    uint8_t __m128i; in the port misc/randomx
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: misc
          Assignee: bugs@FreeBSD.org
          Reporter: yuri@freebsd.org

This code fails:
#elif defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__) //sadly
only POWER7 and newer will be able to use SIMD acceleration. Earlier processors
cant use doubles or 64 bit integers with SIMD
#include <cstdint>
#include <stdexcept>
#include <cstdlib>
#include <altivec.h>
#undef vector
#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;


error:
In file included from
/wrkdirs/usr/ports/misc/randomx/work/RandomX-1.2.1/src/bytecode_machine.cpp:29:
In file included from
/wrkdirs/usr/ports/misc/randomx/work/RandomX-1.2.1/src/bytecode_machine.hpp:32:
/wrkdirs/usr/ports/misc/randomx/work/RandomX-1.2.1/src/intrin_portable.h:189:18:
error: a type specifier is required for all declarations
typedef __vector uint8_t __m128i;
~~~~~~~~~~~~~~~~ ^



I don't know whether this code is valid, but based on the presence of #if
defined(__PPC64__) - it likely is valid.

See the linked log URL for details.

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