Improve GOST R 34.11-2012 (Streebog) speed
authorjsteube <jens.steube@gmail.com>
Thu, 26 May 2016 17:47:01 +0000 (19:47 +0200)
committerjsteube <jens.steube@gmail.com>
Thu, 26 May 2016 17:47:01 +0000 (19:47 +0200)
OpenCL/m11700_a3.cl
OpenCL/m11800_a3.cl

index 0224f23..a62ad73 100644 (file)
@@ -2248,22 +2248,19 @@ void streebog_g (u64x h[8], const u64x m[8], __local u64 (*s_sbob_sl64)[256])
   u64x s[8];
   u64x t[8];
 
-  #ifdef _unroll
-  #pragma unroll
-  #endif
   for (int i = 0; i < 8; i++)
   {
     t[i] = h[i];
   }
 
+  #ifdef _unroll
+  #pragma unroll
+  #endif
   for (int i = 0; i < 8; i++)
   {
     k[i] = SBOG_LPSti64;
   }
 
-  #ifdef _unroll
-  #pragma unroll
-  #endif
   for (int i = 0; i < 8; i++)
   {
     s[i] = m[i];
@@ -2271,9 +2268,6 @@ void streebog_g (u64x h[8], const u64x m[8], __local u64 (*s_sbob_sl64)[256])
 
   for (int r = 0; r < 12; r++)
   {
-    #ifdef _unroll
-    #pragma unroll
-    #endif
     for (int i = 0; i < 8; i++)
     {
       t[i] = s[i] ^ k[i];
@@ -2301,9 +2295,6 @@ void streebog_g (u64x h[8], const u64x m[8], __local u64 (*s_sbob_sl64)[256])
     }
   }
 
-  #ifdef _unroll
-  #pragma unroll
-  #endif
   for (int i = 0; i < 8; i++)
   {
     h[i] ^= s[i] ^ k[i] ^ m[i];
index 4ef9bb0..5dd6c99 100644 (file)
@@ -2248,22 +2248,19 @@ void streebog_g (u64x h[8], const u64x m[8], __local u64 (*s_sbob_sl64)[256])
   u64x s[8];
   u64x t[8];
 
-  #ifdef _unroll
-  #pragma unroll
-  #endif
   for (int i = 0; i < 8; i++)
   {
     t[i] = h[i];
   }
 
+  #ifdef _unroll
+  #pragma unroll
+  #endif
   for (int i = 0; i < 8; i++)
   {
     k[i] = SBOG_LPSti64;
   }
 
-  #ifdef _unroll
-  #pragma unroll
-  #endif
   for (int i = 0; i < 8; i++)
   {
     s[i] = m[i];
@@ -2271,9 +2268,6 @@ void streebog_g (u64x h[8], const u64x m[8], __local u64 (*s_sbob_sl64)[256])
 
   for (int r = 0; r < 12; r++)
   {
-    #ifdef _unroll
-    #pragma unroll
-    #endif
     for (int i = 0; i < 8; i++)
     {
       t[i] = s[i] ^ k[i];
@@ -2301,9 +2295,6 @@ void streebog_g (u64x h[8], const u64x m[8], __local u64 (*s_sbob_sl64)[256])
     }
   }
 
-  #ifdef _unroll
-  #pragma unroll
-  #endif
   for (int i = 0; i < 8; i++)
   {
     h[i] ^= s[i] ^ k[i] ^ m[i];