Merge pull request #333 from y0sh1/CreateTravisBuilds
[hashcat.git] / OpenCL / simd.c
index 6802b98..865819d 100644 (file)
 
 // attack-mode 0
 
-static inline u32x ix_create_bft (__global bf_t *bfs_buf, const u32 il_pos)
+inline u32x ix_create_bft (__global bf_t *bfs_buf, const u32 il_pos)
 {
   #if   VECT_SIZE == 1
   const u32x ix = (u32x) (bfs_buf[il_pos + 0].i);
@@ -1193,7 +1193,7 @@ static inline u32x ix_create_bft (__global bf_t *bfs_buf, const u32 il_pos)
 
 // attack-mode 1
 
-static inline u32x pwlenx_create_combt (__global comb_t *combs_buf, const u32 il_pos)
+inline u32x pwlenx_create_combt (__global comb_t *combs_buf, const u32 il_pos)
 {
   #if   VECT_SIZE == 1
   const u32x pw_lenx = (u32x) (combs_buf[il_pos + 0].pw_len);
@@ -1210,7 +1210,7 @@ static inline u32x pwlenx_create_combt (__global comb_t *combs_buf, const u32 il
   return pw_lenx;
 }
 
-static inline u32x ix_create_combt (__global comb_t *combs_buf, const u32 il_pos, const int idx)
+inline u32x ix_create_combt (__global comb_t *combs_buf, const u32 il_pos, const int idx)
 {
   #if   VECT_SIZE == 1
   const u32x ix = (u32x) (combs_buf[il_pos + 0].i[idx]);
@@ -1239,6 +1239,18 @@ static inline u32x ix_create_combt (__global comb_t *combs_buf, const u32 il_pos
 #define packv(arr,var,gid,idx) (u32x) ((arr)[((gid) * 16) + 0].var[(idx)], (arr)[((gid) * 16) + 1].var[(idx)], (arr)[((gid) * 16) + 2].var[(idx)], (arr)[((gid) * 16) + 3].var[(idx)], (arr)[((gid) * 16) + 4].var[(idx)], (arr)[((gid) * 16) + 5].var[(idx)], (arr)[((gid) * 16) + 6].var[(idx)], (arr)[((gid) * 16) + 7].var[(idx)], (arr)[((gid) * 16) + 8].var[(idx)], (arr)[((gid) * 16) + 9].var[(idx)], (arr)[((gid) * 16) + 10].var[(idx)], (arr)[((gid) * 16) + 11].var[(idx)], (arr)[((gid) * 16) + 12].var[(idx)], (arr)[((gid) * 16) + 13].var[(idx)], (arr)[((gid) * 16) + 14].var[(idx)], (arr)[((gid) * 16) + 15].var[(idx)])
 #endif
 
+#if   VECT_SIZE == 1
+#define packvf(arr,var,gid) (u32x) ((arr)[((gid) *  1) + 0].var)
+#elif VECT_SIZE == 2
+#define packvf(arr,var,gid) (u32x) ((arr)[((gid) *  2) + 0].var, (arr)[((gid) *  2) + 1].var)
+#elif VECT_SIZE == 4
+#define packvf(arr,var,gid) (u32x) ((arr)[((gid) *  4) + 0].var, (arr)[((gid) *  4) + 1].var, (arr)[((gid) *  4) + 2].var, (arr)[((gid) *  4) + 3].var)
+#elif VECT_SIZE == 8
+#define packvf(arr,var,gid) (u32x) ((arr)[((gid) *  8) + 0].var, (arr)[((gid) *  8) + 1].var, (arr)[((gid) *  8) + 2].var, (arr)[((gid) *  8) + 3].var, (arr)[((gid) *  8) + 4].var, (arr)[((gid) *  8) + 5].var, (arr)[((gid) *  8) + 6].var, (arr)[((gid) *  8) + 7].var)
+#elif VECT_SIZE == 16
+#define packvf(arr,var,gid) (u32x) ((arr)[((gid) * 16) + 0].var, (arr)[((gid) * 16) + 1].var, (arr)[((gid) * 16) + 2].var, (arr)[((gid) * 16) + 3].var, (arr)[((gid) * 16) + 4].var, (arr)[((gid) * 16) + 5].var, (arr)[((gid) * 16) + 6].var, (arr)[((gid) * 16) + 7].var, (arr)[((gid) * 16) + 8].var, (arr)[((gid) * 16) + 9].var, (arr)[((gid) * 16) + 10].var, (arr)[((gid) * 16) + 11].var, (arr)[((gid) * 16) + 12].var, (arr)[((gid) * 16) + 13].var, (arr)[((gid) * 16) + 14].var, (arr)[((gid) * 16) + 15].var)
+#endif
+
 #if   VECT_SIZE == 1
 #define unpackv(arr,var,gid,idx,val) (arr)[((gid) *  1) + 0].var[(idx)] = val;
 #elif VECT_SIZE == 2