M4RI 1.0.1
Defines
xor.h File Reference

Functions for adding vectors. More...

Go to the source code of this file.

Defines

#define _mzd_combine8(c, t1, t2, t3, t4, t5, t6, t7, t8, wide)   for(ii=0; ii<wide ; ii++) c[ii] ^= t1[ii] ^ t2[ii] ^ t3[ii] ^ t4[ii] ^ t5[ii] ^ t6[ii] ^ t7[ii] ^ t8[ii]
#define _mzd_combine4(c, t1, t2, t3, t4, wide)   for(ii=0; ii<wide ; ii++) c[ii] ^= t1[ii] ^ t2[ii] ^ t3[ii] ^ t4[ii]
#define _mzd_combine2(c, t1, t2, wide)   for(ii=0; ii<wide ; ii++) c[ii] ^= t1[ii] ^ t2[ii]
#define _MZD_COMBINE   _mzd_combine4(c, t1, t2, t3, t4, wide)

Detailed Description

Functions for adding vectors.

Author:
Martin Albrecht <martinralbrecht@googlemail.com>
Todo:
start counting at 0!

Define Documentation

#define _mzd_combine2 (   c,
  t1,
  t2,
  wide 
)    for(ii=0; ii<wide ; ii++) c[ii] ^= t1[ii] ^ t2[ii]

Compute c[i] += t1[i] + t2[i] for 0 <= i < wide

Todo:
the non SSE2 version of this code is slow, replace by code from mzd_process_rows2
#define _mzd_combine4 (   c,
  t1,
  t2,
  t3,
  t4,
  wide 
)    for(ii=0; ii<wide ; ii++) c[ii] ^= t1[ii] ^ t2[ii] ^ t3[ii] ^ t4[ii]

Compute c[i] += t1[i] + t2[i] + t3[i] + t4[i] for 0 <= i < wide

Todo:
the non SSE2 version of this code is slow, replace by code from mzd_process_rows4
#define _mzd_combine8 (   c,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  wide 
)    for(ii=0; ii<wide ; ii++) c[ii] ^= t1[ii] ^ t2[ii] ^ t3[ii] ^ t4[ii] ^ t5[ii] ^ t6[ii] ^ t7[ii] ^ t8[ii]

Compute c[i] += t1[i] + t2[i] + t3[i] + t4[i] + t5[i] + t5[i] + t6[i] + t7[i] for 0 <= i < wide

Todo:
the non SSE2 version of this code is slow, replace by code from mzd_process_rows8