Lines Matching full:bits
100 #define DEF_VAVG(BITS) \ argument
101 void HELPER(gvec_vavg##BITS)(void *v1, const void *v2, const void *v3, \
106 for (i = 0; i < (128 / BITS); i++) { \
107 const int32_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, i); \
108 const int32_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, i); \
110 s390_vec_write_element##BITS(v1, i, (a + b + 1) >> 1); \
116 #define DEF_VAVGL(BITS) \ argument
117 void HELPER(gvec_vavgl##BITS)(void *v1, const void *v2, const void *v3, \
122 for (i = 0; i < (128 / BITS); i++) { \
123 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
124 const uint##BITS##_t b = s390_vec_read_element##BITS(v3, i); \
126 s390_vec_write_element##BITS(v1, i, (a + b + 1) >> 1); \
132 #define DEF_VCLZ(BITS) \ argument
133 void HELPER(gvec_vclz##BITS)(void *v1, const void *v2, uint32_t desc) \
137 for (i = 0; i < (128 / BITS); i++) { \
138 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
140 s390_vec_write_element##BITS(v1, i, clz32(a) - 32 + BITS); \
146 #define DEF_VCTZ(BITS) \ argument
147 void HELPER(gvec_vctz##BITS)(void *v1, const void *v2, uint32_t desc) \
151 for (i = 0; i < (128 / BITS); i++) { \
152 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
154 s390_vec_write_element##BITS(v1, i, a ? ctz32(a) : BITS); \
262 #define DEF_VMAL(BITS) \ argument
263 void HELPER(gvec_vmal##BITS)(void *v1, const void *v2, const void *v3, \
268 for (i = 0; i < (128 / BITS); i++) { \
269 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
270 const uint##BITS##_t b = s390_vec_read_element##BITS(v3, i); \
271 const uint##BITS##_t c = s390_vec_read_element##BITS(v4, i); \
273 s390_vec_write_element##BITS(v1, i, a * b + c); \
279 #define DEF_VMAH(BITS) \ argument
280 void HELPER(gvec_vmah##BITS)(void *v1, const void *v2, const void *v3, \
285 for (i = 0; i < (128 / BITS); i++) { \
286 const int32_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, i); \
287 const int32_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, i); \
288 const int32_t c = (int##BITS##_t)s390_vec_read_element##BITS(v4, i); \
290 s390_vec_write_element##BITS(v1, i, (a * b + c) >> BITS); \
296 #define DEF_VMALH(BITS) \ argument
297 void HELPER(gvec_vmalh##BITS)(void *v1, const void *v2, const void *v3, \
302 for (i = 0; i < (128 / BITS); i++) { \
303 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
304 const uint##BITS##_t b = s390_vec_read_element##BITS(v3, i); \
305 const uint##BITS##_t c = s390_vec_read_element##BITS(v4, i); \
307 s390_vec_write_element##BITS(v1, i, (a * b + c) >> BITS); \
313 #define DEF_VMAE(BITS, TBITS) \ argument
314 void HELPER(gvec_vmae##BITS)(void *v1, const void *v2, const void *v3, \
320 int##TBITS##_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, j); \
321 int##TBITS##_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, j); \
331 #define DEF_VMALE(BITS, TBITS) \ argument
332 void HELPER(gvec_vmale##BITS)(void *v1, const void *v2, const void *v3, \
338 uint##TBITS##_t a = s390_vec_read_element##BITS(v2, j); \
339 uint##TBITS##_t b = s390_vec_read_element##BITS(v3, j); \
349 #define DEF_VMAO(BITS, TBITS) \ argument
350 void HELPER(gvec_vmao##BITS)(void *v1, const void *v2, const void *v3, \
356 int##TBITS##_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, j); \
357 int##TBITS##_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, j); \
367 #define DEF_VMALO(BITS, TBITS) \ argument
368 void HELPER(gvec_vmalo##BITS)(void *v1, const void *v2, const void *v3, \
374 uint##TBITS##_t a = s390_vec_read_element##BITS(v2, j); \
375 uint##TBITS##_t b = s390_vec_read_element##BITS(v3, j); \
385 #define DEF_VMH(BITS) \ argument
386 void HELPER(gvec_vmh##BITS)(void *v1, const void *v2, const void *v3, \
391 for (i = 0; i < (128 / BITS); i++) { \
392 const int32_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, i); \
393 const int32_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, i); \
395 s390_vec_write_element##BITS(v1, i, (a * b) >> BITS); \
401 #define DEF_VMLH(BITS) \ argument
402 void HELPER(gvec_vmlh##BITS)(void *v1, const void *v2, const void *v3, \
407 for (i = 0; i < (128 / BITS); i++) { \
408 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
409 const uint##BITS##_t b = s390_vec_read_element##BITS(v3, i); \
411 s390_vec_write_element##BITS(v1, i, (a * b) >> BITS); \
417 #define DEF_VME(BITS, TBITS) \ argument
418 void HELPER(gvec_vme##BITS)(void *v1, const void *v2, const void *v3, \
424 int##TBITS##_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, j); \
425 int##TBITS##_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, j); \
434 #define DEF_VMLE(BITS, TBITS) \ argument
435 void HELPER(gvec_vmle##BITS)(void *v1, const void *v2, const void *v3, \
441 const uint##TBITS##_t a = s390_vec_read_element##BITS(v2, j); \
442 const uint##TBITS##_t b = s390_vec_read_element##BITS(v3, j); \
451 #define DEF_VMO(BITS, TBITS) \ argument
452 void HELPER(gvec_vmo##BITS)(void *v1, const void *v2, const void *v3, \
458 int##TBITS##_t a = (int##BITS##_t)s390_vec_read_element##BITS(v2, j); \
459 int##TBITS##_t b = (int##BITS##_t)s390_vec_read_element##BITS(v3, j); \
468 #define DEF_VMLO(BITS, TBITS) \ argument
469 void HELPER(gvec_vmlo##BITS)(void *v1, const void *v2, const void *v3, \
475 const uint##TBITS##_t a = s390_vec_read_element##BITS(v2, j); \
476 const uint##TBITS##_t b = s390_vec_read_element##BITS(v3, j); \
485 #define DEF_VPOPCT(BITS) \ argument
486 void HELPER(gvec_vpopct##BITS)(void *v1, const void *v2, uint32_t desc) \
490 for (i = 0; i < (128 / BITS); i++) { \
491 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
493 s390_vec_write_element##BITS(v1, i, ctpop32(a)); \
499 #define DEF_VERIM(BITS) \ argument
500 void HELPER(gvec_verim##BITS)(void *v1, const void *v2, const void *v3, \
506 for (i = 0; i < (128 / BITS); i++) { \
507 const uint##BITS##_t a = s390_vec_read_element##BITS(v1, i); \
508 const uint##BITS##_t b = s390_vec_read_element##BITS(v2, i); \
509 const uint##BITS##_t mask = s390_vec_read_element##BITS(v3, i); \
510 const uint##BITS##_t d = (a & ~mask) | (rol##BITS(b, count) & mask); \
512 s390_vec_write_element##BITS(v1, i, d); \
591 #define DEF_VSCBI(BITS) \ argument
592 void HELPER(gvec_vscbi##BITS)(void *v1, const void *v2, const void *v3, \
597 for (i = 0; i < (128 / BITS); i++) { \
598 const uint##BITS##_t a = s390_vec_read_element##BITS(v2, i); \
599 const uint##BITS##_t b = s390_vec_read_element##BITS(v3, i); \
601 s390_vec_write_element##BITS(v1, i, a >= b); \
614 /* Selected bits all zeros; or all mask bits zero */ in HELPER()
617 /* Selected bits all ones */ in HELPER()
620 /* Selected bits a mix of zeros and ones */ in HELPER()