mirror of
https://github.com/aicodix/code.git
synced 2026-04-27 14:30:36 +00:00
added support for aarch64
__ARM_NEON__ is not defined on gcc anymore ..
This commit is contained in:
parent
f2ebaf4504
commit
986059694e
4 changed files with 8 additions and 5 deletions
|
|
@ -129,7 +129,7 @@ struct PolarHelper<SIMD<int8_t, WIDTH>>
|
||||||
}
|
}
|
||||||
static TYPE qmul(TYPE a, TYPE b)
|
static TYPE qmul(TYPE a, TYPE b)
|
||||||
{
|
{
|
||||||
#ifdef __ARM_NEON__
|
#ifdef __ARM_NEON
|
||||||
return vmul(a, b);
|
return vmul(a, b);
|
||||||
#else
|
#else
|
||||||
return vsign(a, b);
|
return vsign(a, b);
|
||||||
|
|
@ -137,7 +137,7 @@ struct PolarHelper<SIMD<int8_t, WIDTH>>
|
||||||
}
|
}
|
||||||
static TYPE prod(TYPE a, TYPE b)
|
static TYPE prod(TYPE a, TYPE b)
|
||||||
{
|
{
|
||||||
#ifdef __ARM_NEON__
|
#ifdef __ARM_NEON
|
||||||
return vmul(vmul(vsignum(a), vsignum(b)), vmin(vqabs(a), vqabs(b)));
|
return vmul(vmul(vsignum(a), vsignum(b)), vmin(vqabs(a), vqabs(b)));
|
||||||
#else
|
#else
|
||||||
return vsign(vmin(vqabs(a), vqabs(b)), vsign(vsignum(a), b));
|
return vsign(vmin(vqabs(a), vqabs(b)), vsign(vsignum(a), b));
|
||||||
|
|
@ -145,7 +145,7 @@ struct PolarHelper<SIMD<int8_t, WIDTH>>
|
||||||
}
|
}
|
||||||
static TYPE madd(TYPE a, TYPE b, TYPE c)
|
static TYPE madd(TYPE a, TYPE b, TYPE c)
|
||||||
{
|
{
|
||||||
#ifdef __ARM_NEON__
|
#ifdef __ARM_NEON
|
||||||
return vqadd(vmul(a, vmax(b, vdup<TYPE>(-127))), c);
|
return vqadd(vmul(a, vmax(b, vdup<TYPE>(-127))), c);
|
||||||
#else
|
#else
|
||||||
return vqadd(vsign(vmax(b, vdup<TYPE>(-127)), a), c);
|
return vqadd(vsign(vmax(b, vdup<TYPE>(-127)), a), c);
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __ARM_NEON__
|
#ifdef __ARM_NEON
|
||||||
template <int WIDTH>
|
template <int WIDTH>
|
||||||
class Rotate<SIMD<int8_t, 16>, WIDTH>
|
class Rotate<SIMD<int8_t, 16>, WIDTH>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
2
simd.hh
2
simd.hh
|
|
@ -1504,7 +1504,7 @@ static inline SIMD<double, WIDTH> vshuf(SIMD<double, WIDTH> a, SIMD<uint64_t, WI
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __ARM_NEON__
|
#ifdef __ARM_NEON
|
||||||
#include "neon.hh"
|
#include "neon.hh"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ CXX = clang++ -stdlib=libc++ -march=native
|
||||||
#CXX = armv7a-hardfloat-linux-gnueabi-g++ -static -mfpu=neon -march=armv7-a
|
#CXX = armv7a-hardfloat-linux-gnueabi-g++ -static -mfpu=neon -march=armv7-a
|
||||||
#QEMU = qemu-arm
|
#QEMU = qemu-arm
|
||||||
|
|
||||||
|
#CXX = aarch64-unknown-linux-gnu-g++ -static
|
||||||
|
#QEMU = qemu-aarch64
|
||||||
|
|
||||||
.PHONY: clean test
|
.PHONY: clean test
|
||||||
|
|
||||||
tests := $(basename $(wildcard *_test.*))
|
tests := $(basename $(wildcard *_test.*))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue