Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
bitsandbytes
Commits
432a4f4d
Unverified
Commit
432a4f4d
authored
Aug 22, 2024
by
Marvin Gießing
Committed by
GitHub
Aug 22, 2024
Browse files
Initial support for ppc64le (#1316)
Signed-off-by:
mgiessing
<
marvin.giessing@gmail.com
>
parent
a685654b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
2 deletions
+25
-2
include/Portable.h
include/Portable.h
+23
-0
include/SIMD.h
include/SIMD.h
+1
-1
include/Type.h
include/Type.h
+1
-1
No files found.
include/Portable.h
View file @
432a4f4d
...
...
@@ -26,8 +26,31 @@ typedef struct {float a; float b; float c; float d;} __m128;
typedef
struct
{
int
a
;
int
b
;
int
c
;
int
d
;}
__m128i
;
typedef
struct
{
double
a
;
double
b
;}
__m128d
;
#endif
#elif defined(__powerpc64__)
#ifdef __CUDACC__
#undef USE_VSX // Doesn't work with nvcc, undefined symbols
#else
#include <altivec.h>
#undef USE_VSX // Not yet implemented
#endif
#undef USE_AVX // x86_64 only
#undef USE_AVX2 // x86_64 only
#undef USE_SSE2 // x86_64 only
#undef USE_SSE41 // x86_64 only
#undef USE_SSE42 // x86_64 only
#undef USE_FMA // x86_64 only
#ifdef USE_VSX
typedef
vector
float
__m128
;
typedef
vector
signed
int
__m128i
;
typedef
vector
double
__m128d
;
#else
typedef
struct
{
float
a
;
float
b
;
float
c
;
float
d
;}
__m128
;
typedef
struct
{
int
a
;
int
b
;
int
c
;
int
d
;}
__m128i
;
typedef
struct
{
double
a
;
double
b
;}
__m128d
;
#endif
#else
#undef USE_NEON // ARM64 only
#undef USE_VSX // PPC only
#ifdef __FMA__
#define USE_FMA
#endif
...
...
include/SIMD.h
View file @
432a4f4d
...
...
@@ -41,7 +41,7 @@ template <> struct InstrFloatTraits<Scalar, double>
}
}
#if !defined(__aarch64__)
#if !defined(__aarch64__)
&& !defined(__powerpc64__)
#ifdef USE_SSE42
#ifndef _MSC_VER
#include <popcntintrin.h>
...
...
include/Type.h
View file @
432a4f4d
...
...
@@ -10,7 +10,7 @@ using std::size_t;
namespace
BinSearch
{
enum
InstrSet
{
Scalar
,
SSE
,
AVX
,
Neon
};
enum
InstrSet
{
Scalar
,
SSE
,
AVX
,
Neon
,
VSX
};
#define ALGOENUM(x, b) x,
enum
Algos
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment