31#include <m4ri/m4ri_config.h>
44static inline void _mzd_combine(
word *c,
word const *t1,
wi_t wide_in) {
54 __m128i *__c = (__m128i *)c;
55 __m128i *__t1 = (__m128i *)t1;
56 const __m128i *eof = (__m128i *)((
unsigned long)(c + wide) & ~0xFUL);
59 while (__c < eof - 1) {
60 xmm1 = _mm_xor_si128(*__c, *__t1++);
62 xmm1 = _mm_xor_si128(*__c, *__t1++);
67 xmm1 = _mm_xor_si128(*__c, *__t1++);
73 wide = ((
sizeof(
word) * wide) % 16) /
sizeof(
word);
76 __M4RI_DD_RAWROW(c, wide_in);
81 wi_t n = (wide + 7) / 8;
83 case 0:
do { *c++ ^= *t1++;
84 case 7: *c++ ^= *t1++;
85 case 6: *c++ ^= *t1++;
86 case 5: *c++ ^= *t1++;
87 case 4: *c++ ^= *t1++;
88 case 3: *c++ ^= *t1++;
89 case 2: *c++ ^= *t1++;
90 case 1: *c++ ^= *t1++;
93 __M4RI_DD_RAWROW(c, wide_in);
97#include "xor_template.h"
101#include "xor_template.h"
105#include "xor_template.h"
109#include "xor_template.h"
113#include "xor_template.h"
117#include "xor_template.h"
121#include "xor_template.h"
#define __M4RI_ALIGNMENT(addr, n)
Return alignment of addr w.r.t. n. For example the address 17 would be 1 aligned w....
Definition misc.h:421
int64_t wi_t
Type of word indexes.
Definition misc.h:81
uint64_t word
A word is the typical packed data structure to represent packed bits.
Definition misc.h:87