summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bench2.cpp4
-rw-r--r--ppc-simd.h7
2 files changed, 8 insertions, 3 deletions
diff --git a/bench2.cpp b/bench2.cpp
index df1a813c..5224c531 100644
--- a/bench2.cpp
+++ b/bench2.cpp
@@ -234,6 +234,10 @@ void Benchmark2(double t, double hertz)
if (HasPMULL())
BenchMarkByName2<AuthenticatedSymmetricCipher, AuthenticatedSymmetricCipher>("AES/GCM", 0, "AES/GCM");
else
+#elif CRYPTOPP_POWER8_VMULL_AVAILABLE
+ if (HasPMULL())
+ BenchMarkByName2<AuthenticatedSymmetricCipher, AuthenticatedSymmetricCipher>("AES/GCM", 0, "AES/GCM");
+ else
#endif
{
BenchMarkByName2<AuthenticatedSymmetricCipher, AuthenticatedSymmetricCipher>("AES/GCM", 0, "AES/GCM (2K tables)", MakeParameters(Name::TableSize(), 2048));
diff --git a/ppc-simd.h b/ppc-simd.h
index 055e8364..b5b94397 100644
--- a/ppc-simd.h
+++ b/ppc-simd.h
@@ -336,9 +336,10 @@ inline T VectorRotateRight(const T& vec)
template <class T>
inline T VectorGetLow(const T& val)
{
- const T zero = {0};
- const uint8x16_p mask = {16,16,16,16, 16,16,16,16, 8,9,10,11, 12,13,14,15 };
- return (T)vec_perm(val, zero, mask);
+ //const T zero = {0};
+ //const uint8x16_p mask = {16,16,16,16, 16,16,16,16, 8,9,10,11, 12,13,14,15 };
+ //return (T)vec_perm(val, zero, mask);
+ return VectorShiftLeft<8>(VectorShiftRight<8>(val));
}
/// \brief Extract a dword from a vector