add x86 vsh* implementations

This commit is contained in:
Konstantinos Margaritis 2021-10-09 00:31:13 +03:00
parent eebd6c97bc
commit 8b7ba89cb5
2 changed files with 516 additions and 366 deletions

File diff suppressed because it is too large Load Diff

View File

@ -920,7 +920,7 @@ TEST(SuperVectorUtilsTest,LShift64_512c){
u64a vec[8] = {32, 64, 128, 256, 512, 512, 256, 1024}; u64a vec[8] = {32, 64, 128, 256, 512, 512, 256, 1024};
auto SP = SuperVector<64>::loadu(vec); auto SP = SuperVector<64>::loadu(vec);
for(int s = 0; s<64; s++) { for(int s = 0; s<64; s++) {
auto SP_after_shift = SP.lshift64(s); auto SP_after_shift = SP.vshl_64(s);
for (int i=0; i<8; i++) { for (int i=0; i<8; i++) {
ASSERT_EQ(SP_after_shift.u.u64[i], vec[i] << s); ASSERT_EQ(SP_after_shift.u.u64[i], vec[i] << s);
} }
@ -931,7 +931,7 @@ TEST(SuperVectorUtilsTest,RShift64_512c){
u64a vec[8] = {32, 64, 128, 256, 512, 512, 256, 1024}; u64a vec[8] = {32, 64, 128, 256, 512, 512, 256, 1024};
auto SP = SuperVector<64>::loadu(vec); auto SP = SuperVector<64>::loadu(vec);
for(int s = 0; s<64; s++) { for(int s = 0; s<64; s++) {
auto SP_after_shift = SP.rshift64(s); auto SP_after_shift = SP.vshr_64(s);
for (int i=0; i<8; i++) { for (int i=0; i<8; i++) {
ASSERT_EQ(SP_after_shift.u.u64[i], vec[i] >> s); ASSERT_EQ(SP_after_shift.u.u64[i], vec[i] >> s);
} }