Fixed AVX undefined symbols on AARCH64 and removed AVX from ehs::Util::Compare.
This commit is contained in:
24
src/system/AVX2_AARCH64.cpp
Normal file
24
src/system/AVX2_AARCH64.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "ehs/system/AVX2.h"
|
||||
|
||||
namespace ehs
|
||||
{
|
||||
bool AVX2::CompareUnaligned(const UInt_64* a, const UInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AVX2::CompareUnaligned(const SInt_64* a, const SInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AVX2::CompareAligned(const UInt_64* a, const UInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AVX2::CompareAligned(const SInt_64* a, const SInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
49
src/system/AVX2_MSVC_AMD64.asm
Normal file
49
src/system/AVX2_MSVC_AMD64.asm
Normal file
@@ -0,0 +1,49 @@
|
||||
global ?CompareUnaligned@AVX2@ehs@@SA_NPEBK0@Z
|
||||
global ?CompareUnaligned@AVX2@ehs@@SA_NPEBJ0@Z
|
||||
global ?CompareAligned@AVX2@ehs@@SA_NPEBK0@Z
|
||||
global ?CompareAligned@AVX2@ehs@@SA_NPEBJ0@Z
|
||||
|
||||
section .text
|
||||
?CompareUnaligned@AVX2@ehs@@SA_NPEBK0@Z:
|
||||
VMOVDQU YMM0, [RCX]
|
||||
VMOVDQU YMM1, [RDX]
|
||||
VPCMPEQQ YMM2, YMM0, YMM1
|
||||
|
||||
VPMOVMSKB EAX, YMM2
|
||||
CMP EAX, 0xFFFFFFFF
|
||||
SETE AL
|
||||
|
||||
RET
|
||||
|
||||
?CompareUnaligned@AVX2@ehs@@SA_NPEBJ0@Z:
|
||||
VMOVDQU YMM0, [RCX]
|
||||
VMOVDQU YMM1, [RDX]
|
||||
VPCMPEQQ YMM2, YMM0, YMM1
|
||||
|
||||
VPMOVMSKB EAX, YMM2
|
||||
CMP EAX, 0xFFFFFFFF
|
||||
SETE AL
|
||||
|
||||
RET
|
||||
|
||||
?CompareAligned@AVX2@ehs@@SA_NPEBK0@Z:
|
||||
VMOVDQA YMM0, [RCX]
|
||||
VMOVDQA YMM1, [RDX]
|
||||
VPCMPEQQ YMM2, YMM0, YMM1
|
||||
|
||||
VPMOVMSKB EAX, YMM2
|
||||
CMP EAX, 0xFFFFFFFF
|
||||
SETE AL
|
||||
|
||||
RET
|
||||
|
||||
?CompareAligned@AVX2@ehs@@SA_NPEBJ0@Z:
|
||||
VMOVDQA YMM0, [RCX]
|
||||
VMOVDQA YMM1, [RDX]
|
||||
VPCMPEQQ YMM2, YMM0, YMM1
|
||||
|
||||
VPMOVMSKB EAX, YMM2
|
||||
CMP EAX, 0xFFFFFFFF
|
||||
SETE AL
|
||||
|
||||
RET
|
24
src/system/AVX512_AARCH64.cpp
Normal file
24
src/system/AVX512_AARCH64.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "ehs/system/AVX512.h"
|
||||
|
||||
namespace ehs
|
||||
{
|
||||
bool AVX512::CompareUnaligned(const UInt_64* a, const UInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AVX512::CompareUnaligned(const SInt_64* a, const SInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AVX512::CompareAligned(const UInt_64* a, const UInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AVX512::CompareAligned(const SInt_64* a, const SInt_64* b)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
49
src/system/AVX512_MSVC_AMD64.asm
Normal file
49
src/system/AVX512_MSVC_AMD64.asm
Normal file
@@ -0,0 +1,49 @@
|
||||
global ?CompareUnaligned@AVX512@ehs@@SA_NPEBK0@Z
|
||||
global ?CompareUnaligned@AVX512@ehs@@SA_NPEBJ0@Z
|
||||
global ?CompareAligned@AVX512@ehs@@SA_NPEBK0@Z
|
||||
global ?CompareAligned@AVX512@ehs@@SA_NPEBJ0@Z
|
||||
|
||||
section .text
|
||||
?CompareUnaligned@AVX512@ehs@@SA_NPEBK0@Z:
|
||||
VMOVDQU64 ZMM0, [RCX]
|
||||
VMOVDQU64 ZMM1, [RDX]
|
||||
|
||||
VPCMPEQQ K1, ZMM0, ZMM1
|
||||
|
||||
KORTESTQ K1, K1
|
||||
SETC AL
|
||||
|
||||
RET
|
||||
|
||||
?CompareUnaligned@AVX512@ehs@@SA_NPEBJ0@Z:
|
||||
VMOVDQU64 ZMM0, [RCX]
|
||||
VMOVDQU64 ZMM1, [RDX]
|
||||
|
||||
VPCMPEQQ K1, ZMM0, ZMM1
|
||||
|
||||
KORTESTQ K1, K1
|
||||
SETC AL
|
||||
|
||||
RET
|
||||
|
||||
?CompareAligned@AVX512@ehs@@SA_NPEBK0@Z:
|
||||
VMOVDQA64 ZMM0, [RCX]
|
||||
VMOVDQA64 ZMM1, [RDX]
|
||||
|
||||
VPCMPEQQ K1, ZMM0, ZMM1
|
||||
|
||||
KORTESTQ K1, K1
|
||||
SETC AL
|
||||
|
||||
RET
|
||||
|
||||
?CompareAligned@AVX512@ehs@@SA_NPEBJ0@Z:
|
||||
VMOVDQA64 ZMM0, [RCX]
|
||||
VMOVDQA64 ZMM1, [RDX]
|
||||
|
||||
VPCMPEQQ K1, ZMM0, ZMM1
|
||||
|
||||
KORTESTQ K1, K1
|
||||
SETC AL
|
||||
|
||||
RET
|
@@ -744,7 +744,7 @@ namespace ehs
|
||||
bool CPU::RetrieveAVX512F()
|
||||
{
|
||||
#ifdef EHS_ARCH_X64
|
||||
return GetExtFeatureBits_1() & 0b00000000000000001000000000000000;
|
||||
return GetExtFeatureBits_1() & 0b00000000000000010000000000000000;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user