From ab2522317b5ed7556c56d733ccb53c65e27ddca9 Mon Sep 17 00:00:00 2001 From: x Date: Sun, 8 Jan 2017 11:48:09 +0100 Subject: [PATCH] TurboPFor: Bit Pack SIMD include --- bitpack128v_.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/bitpack128v_.h b/bitpack128v_.h index 0fbea52..71db5f3 100644 --- a/bitpack128v_.h +++ b/bitpack128v_.h @@ -1996,3 +1996,41 @@ BITBLK128V32_64(ip, 31, op, parm); IPPE(ip); OPPE(op += 64*4/sizeof(op[0]));\ } +#define BITPACK128V32(__pip, __nbits, __pop, __parm) { __m128i *__ip=(__m128i *)__pip,*__op=(__m128i *)__pop;\ + switch(__nbits) {\ + case 0: break;\ + case 1:{ BITPACK128V32_1( __ip, __op, __parm); } break;\ + case 2:{ BITPACK128V32_2( __ip, __op, __parm); } break;\ + case 3:{ BITPACK128V32_3( __ip, __op, __parm); } break;\ + case 4:{ BITPACK128V32_4( __ip, __op, __parm); } break;\ + case 5:{ BITPACK128V32_5( __ip, __op, __parm); } break;\ + case 6:{ BITPACK128V32_6( __ip, __op, __parm); } break;\ + case 7:{ BITPACK128V32_7( __ip, __op, __parm); } break;\ + case 8:{ BITPACK128V32_8( __ip, __op, __parm); } break;\ + case 9:{ BITPACK128V32_9( __ip, __op, __parm); } break;\ + case 10:{ BITPACK128V32_10(__ip, __op, __parm); } break;\ + case 11:{ BITPACK128V32_11(__ip, __op, __parm); } break;\ + case 12:{ BITPACK128V32_12(__ip, __op, __parm); } break;\ + case 13:{ BITPACK128V32_13(__ip, __op, __parm); } break;\ + case 14:{ BITPACK128V32_14(__ip, __op, __parm); } break;\ + case 15:{ BITPACK128V32_15(__ip, __op, __parm); } break;\ + case 16:{ BITPACK128V32_16(__ip, __op, __parm); } break;\ + case 17:{ BITPACK128V32_17(__ip, __op, __parm); } break;\ + case 18:{ BITPACK128V32_18(__ip, __op, __parm); } break;\ + case 19:{ BITPACK128V32_19(__ip, __op, __parm); } break;\ + case 20:{ BITPACK128V32_20(__ip, __op, __parm); } break;\ + case 21:{ BITPACK128V32_21(__ip, __op, __parm); } break;\ + case 22:{ BITPACK128V32_22(__ip, __op, __parm); } break;\ + case 23:{ BITPACK128V32_23(__ip, __op, __parm); } break;\ + case 24:{ BITPACK128V32_24(__ip, __op, __parm); } break;\ + case 25:{ BITPACK128V32_25(__ip, __op, __parm); } break;\ + case 26:{ BITPACK128V32_26(__ip, __op, __parm); } break;\ + case 27:{ BITPACK128V32_27(__ip, __op, __parm); } break;\ + case 28:{ BITPACK128V32_28(__ip, __op, __parm); } break;\ + case 29:{ BITPACK128V32_29(__ip, __op, __parm); } break;\ + case 30:{ BITPACK128V32_30(__ip, __op, __parm); } break;\ + case 31:{ BITPACK128V32_31(__ip, __op, __parm); } break;\ + case 32:{ BITPACK128V32_32(__ip, __op, __parm); } break;\ + }\ +} +