Changeset 2326 for trunk


Ignore:
Timestamp:
Aug 24, 2012, 4:32:33 PM (7 years ago)
Author:
cameron
Message:

Try int for simd<fw>::constant

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/idisa_cpp/idisa_sse2.cpp

    r2325 r2326  
    6060        static IDISA_ALWAYS_INLINE bitblock128_t lomask();
    6161        static IDISA_ALWAYS_INLINE bitblock128_t umin(bitblock128_t arg1, bitblock128_t arg2);
    62         template <typename FieldType<fw>::T> static IDISA_ALWAYS_INLINE bitblock128_t constant();
    63 //      template <int> static IDISA_ALWAYS_INLINE bitblock128_t constant();
     62//      template <typename FieldType<fw>::T> static IDISA_ALWAYS_INLINE bitblock128_t constant();
     63        template <int> static IDISA_ALWAYS_INLINE bitblock128_t constant();
    6464        static IDISA_ALWAYS_INLINE bitblock128_t min(bitblock128_t arg1, bitblock128_t arg2);
    6565        static IDISA_ALWAYS_INLINE bitblock128_t umax(bitblock128_t arg1, bitblock128_t arg2);
     
    265265template <> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::srl(bitblock128_t arg1, bitblock128_t shift_mask);
    266266template <> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::srl(bitblock128_t arg1, bitblock128_t shift_mask);
    267 //template <> template <typename FieldType<1>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::constant();
    268 //template <> template <typename FieldType<2>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::constant();
    269 //template <> template <typename FieldType<4>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<4>::constant();
    270 //template <> template <typename FieldType<8>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<8>::constant();
    271 //template <> template <typename FieldType<16>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<16>::constant();
    272 //template <> template <fw32_t> IDISA_ALWAYS_INLINE bitblock128_t simd128<32>::constant();
    273 //template <> template <typename FieldType<64>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::constant();
    274 //template <> template <typename FieldType<128>::T> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::constant();
     267
     268template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::constant();
     269template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::constant();
     270template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<4>::constant();
     271template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<8>::constant();
     272template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<16>::constant();
     273template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<32>::constant();
     274template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::constant();
     275template <> template <int> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::constant();
     276#if 0
    275277template <> template <fw1_t> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::constant();
    276278template <> template <fw2_t> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::constant();
     
    281283template <> template <fw64_t> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::constant();
    282284template <> template <fw128_t> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::constant();
     285#endif
    283286template <> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::min(bitblock128_t arg1, bitblock128_t arg2);
    284287template <> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::min(bitblock128_t arg1, bitblock128_t arg2);
     
    456459template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::dsrli(bitblock128_t arg1, bitblock128_t arg2);
    457460template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::dsrli(bitblock128_t arg1, bitblock128_t arg2);
    458 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill(typename FieldType<1>::T val1);
    459 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill(typename FieldType<2>::T val1);
    460 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill(typename FieldType<4>::T val1);
    461 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill(typename FieldType<8>::T val1);
    462 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill(typename FieldType<16>::T val1);
     461template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill(fw1_t val1);
     462template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill(fw2_t val1);
     463template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill(fw4_t val1);
     464template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill(fw8_t val1);
     465template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill(fw16_t val1);
    463466template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<32>::fill(fw32_t val1);
    464 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill(typename FieldType<64>::T val1);
    465 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::fill(typename FieldType<128>::T val1);
    466 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<1>::T mvmd128<1>::extract(bitblock128_t arg1);
    467 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<2>::T mvmd128<2>::extract(bitblock128_t arg1);
    468 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<4>::T mvmd128<4>::extract(bitblock128_t arg1);
    469 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<8>::T mvmd128<8>::extract(bitblock128_t arg1);
    470 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<16>::T mvmd128<16>::extract(bitblock128_t arg1);
     467template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill(fw64_t val1);
     468template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::fill(fw128_t val1);
     469template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw1_t mvmd128<1>::extract(bitblock128_t arg1);
     470template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw2_t mvmd128<2>::extract(bitblock128_t arg1);
     471template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw4_t mvmd128<4>::extract(bitblock128_t arg1);
     472template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw8_t mvmd128<8>::extract(bitblock128_t arg1);
     473template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw16_t mvmd128<16>::extract(bitblock128_t arg1);
    471474template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw32_t mvmd128<32>::extract(bitblock128_t arg1);
    472 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<64>::T mvmd128<64>::extract(bitblock128_t arg1);
     475template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw64_t mvmd128<64>::extract(bitblock128_t arg1);
    473476template <> template <uint8_t pos> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::splat(bitblock128_t arg1);
    474477template <> template <uint8_t pos> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::splat(bitblock128_t arg1);
     
    479482template <> template <uint8_t pos> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::splat(bitblock128_t arg1);
    480483template <> template <uint8_t pos> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::splat(bitblock128_t arg1);
    481 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill16(typename FieldType<1>::T val1, typename FieldType<1>::T val2, typename FieldType<1>::T val3, typename FieldType<1>::T val4, typename FieldType<1>::T val5, typename FieldType<1>::T val6, typename FieldType<1>::T val7, typename FieldType<1>::T val8, typename FieldType<1>::T val9, typename FieldType<1>::T val10, typename FieldType<1>::T val11, typename FieldType<1>::T val12, typename FieldType<1>::T val13, typename FieldType<1>::T val14, typename FieldType<1>::T val15, typename FieldType<1>::T val16);
    482 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill16(typename FieldType<2>::T val1, typename FieldType<2>::T val2, typename FieldType<2>::T val3, typename FieldType<2>::T val4, typename FieldType<2>::T val5, typename FieldType<2>::T val6, typename FieldType<2>::T val7, typename FieldType<2>::T val8, typename FieldType<2>::T val9, typename FieldType<2>::T val10, typename FieldType<2>::T val11, typename FieldType<2>::T val12, typename FieldType<2>::T val13, typename FieldType<2>::T val14, typename FieldType<2>::T val15, typename FieldType<2>::T val16);
    483 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill16(typename FieldType<4>::T val1, typename FieldType<4>::T val2, typename FieldType<4>::T val3, typename FieldType<4>::T val4, typename FieldType<4>::T val5, typename FieldType<4>::T val6, typename FieldType<4>::T val7, typename FieldType<4>::T val8, typename FieldType<4>::T val9, typename FieldType<4>::T val10, typename FieldType<4>::T val11, typename FieldType<4>::T val12, typename FieldType<4>::T val13, typename FieldType<4>::T val14, typename FieldType<4>::T val15, typename FieldType<4>::T val16);
    484 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill16(typename FieldType<8>::T val1, typename FieldType<8>::T val2, typename FieldType<8>::T val3, typename FieldType<8>::T val4, typename FieldType<8>::T val5, typename FieldType<8>::T val6, typename FieldType<8>::T val7, typename FieldType<8>::T val8, typename FieldType<8>::T val9, typename FieldType<8>::T val10, typename FieldType<8>::T val11, typename FieldType<8>::T val12, typename FieldType<8>::T val13, typename FieldType<8>::T val14, typename FieldType<8>::T val15, typename FieldType<8>::T val16);
    485 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill4(typename FieldType<1>::T val1, typename FieldType<1>::T val2, typename FieldType<1>::T val3, typename FieldType<1>::T val4);
    486 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill4(typename FieldType<2>::T val1, typename FieldType<2>::T val2, typename FieldType<2>::T val3, typename FieldType<2>::T val4);
    487 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill4(typename FieldType<4>::T val1, typename FieldType<4>::T val2, typename FieldType<4>::T val3, typename FieldType<4>::T val4);
    488 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill4(typename FieldType<8>::T val1, typename FieldType<8>::T val2, typename FieldType<8>::T val3, typename FieldType<8>::T val4);
    489 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill4(typename FieldType<16>::T val1, typename FieldType<16>::T val2, typename FieldType<16>::T val3, typename FieldType<16>::T val4);
     484template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill16(fw1_t val1, fw1_t val2, fw1_t val3, fw1_t val4, fw1_t val5, fw1_t val6, fw1_t val7, fw1_t val8, fw1_t val9, fw1_t val10, fw1_t val11, fw1_t val12, fw1_t val13, fw1_t val14, fw1_t val15, fw1_t val16);
     485template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill16(fw2_t val1, fw2_t val2, fw2_t val3, fw2_t val4, fw2_t val5, fw2_t val6, fw2_t val7, fw2_t val8, fw2_t val9, fw2_t val10, fw2_t val11, fw2_t val12, fw2_t val13, fw2_t val14, fw2_t val15, fw2_t val16);
     486template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill16(fw4_t val1, fw4_t val2, fw4_t val3, fw4_t val4, fw4_t val5, fw4_t val6, fw4_t val7, fw4_t val8, fw4_t val9, fw4_t val10, fw4_t val11, fw4_t val12, fw4_t val13, fw4_t val14, fw4_t val15, fw4_t val16);
     487template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill16(fw8_t val1, fw8_t val2, fw8_t val3, fw8_t val4, fw8_t val5, fw8_t val6, fw8_t val7, fw8_t val8, fw8_t val9, fw8_t val10, fw8_t val11, fw8_t val12, fw8_t val13, fw8_t val14, fw8_t val15, fw8_t val16);
     488template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill4(fw1_t val1, fw1_t val2, fw1_t val3, fw1_t val4);
     489template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill4(fw2_t val1, fw2_t val2, fw2_t val3, fw2_t val4);
     490template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill4(fw4_t val1, fw4_t val2, fw4_t val3, fw4_t val4);
     491template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill4(fw8_t val1, fw8_t val2, fw8_t val3, fw8_t val4);
     492template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill4(fw16_t val1, fw16_t val2, fw16_t val3, fw16_t val4);
    490493template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<32>::fill4(fw32_t val1, fw32_t val2, fw32_t val3, fw32_t val4);
    491494template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::srli(bitblock128_t arg1);
     
    496499template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::srli(bitblock128_t arg1);
    497500template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::srli(bitblock128_t arg1);
    498 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill2(typename FieldType<1>::T val1, typename FieldType<1>::T val2);
    499 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill2(typename FieldType<2>::T val1, typename FieldType<2>::T val2);
    500 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill2(typename FieldType<4>::T val1, typename FieldType<4>::T val2);
    501 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill2(typename FieldType<8>::T val1, typename FieldType<8>::T val2);
    502 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill2(typename FieldType<16>::T val1, typename FieldType<16>::T val2);
     501template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill2(fw1_t val1, fw1_t val2);
     502template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill2(fw2_t val1, fw2_t val2);
     503template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill2(fw4_t val1, fw4_t val2);
     504template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill2(fw8_t val1, fw8_t val2);
     505template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill2(fw16_t val1, fw16_t val2);
    503506template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<32>::fill2(fw32_t val1, fw32_t val2);
    504 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill2(typename FieldType<64>::T val1, typename FieldType<64>::T val2);
     507template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill2(fw64_t val1, fw64_t val2);
    505508template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::dslli(bitblock128_t arg1, bitblock128_t arg2);
    506509template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::dslli(bitblock128_t arg1, bitblock128_t arg2);
     
    517520template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::slli(bitblock128_t arg1);
    518521template <> template <uint8_t sh> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::slli(bitblock128_t arg1);
    519 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill8(typename FieldType<1>::T val1, typename FieldType<1>::T val2, typename FieldType<1>::T val3, typename FieldType<1>::T val4, typename FieldType<1>::T val5, typename FieldType<1>::T val6, typename FieldType<1>::T val7, typename FieldType<1>::T val8);
    520 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill8(typename FieldType<2>::T val1, typename FieldType<2>::T val2, typename FieldType<2>::T val3, typename FieldType<2>::T val4, typename FieldType<2>::T val5, typename FieldType<2>::T val6, typename FieldType<2>::T val7, typename FieldType<2>::T val8);
    521 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill8(typename FieldType<4>::T val1, typename FieldType<4>::T val2, typename FieldType<4>::T val3, typename FieldType<4>::T val4, typename FieldType<4>::T val5, typename FieldType<4>::T val6, typename FieldType<4>::T val7, typename FieldType<4>::T val8);
    522 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill8(typename FieldType<8>::T val1, typename FieldType<8>::T val2, typename FieldType<8>::T val3, typename FieldType<8>::T val4, typename FieldType<8>::T val5, typename FieldType<8>::T val6, typename FieldType<8>::T val7, typename FieldType<8>::T val8);
    523 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill8(typename FieldType<16>::T val1, typename FieldType<16>::T val2, typename FieldType<16>::T val3, typename FieldType<16>::T val4, typename FieldType<16>::T val5, typename FieldType<16>::T val6, typename FieldType<16>::T val7, typename FieldType<16>::T val8);
     522template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill8(fw1_t val1, fw1_t val2, fw1_t val3, fw1_t val4, fw1_t val5, fw1_t val6, fw1_t val7, fw1_t val8);
     523template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill8(fw2_t val1, fw2_t val2, fw2_t val3, fw2_t val4, fw2_t val5, fw2_t val6, fw2_t val7, fw2_t val8);
     524template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill8(fw4_t val1, fw4_t val2, fw4_t val3, fw4_t val4, fw4_t val5, fw4_t val6, fw4_t val7, fw4_t val8);
     525template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill8(fw8_t val1, fw8_t val2, fw8_t val3, fw8_t val4, fw8_t val5, fw8_t val6, fw8_t val7, fw8_t val8);
     526template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill8(fw16_t val1, fw16_t val2, fw16_t val3, fw16_t val4, fw16_t val5, fw16_t val6, fw16_t val7, fw16_t val8);
    524527
    525528//Implementation Part
     
    14251428
    14261429//The total number of operations is 0
    1427 template <> template <typename FieldType<1>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::constant()
     1430//template <> template <fw1_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::constant()
     1431template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<1>::constant()
    14281432{
    14291433        return simd128<32>::constant<(-1*val)>();
     
    14311435
    14321436//The total number of operations is 0
    1433 template <> template <typename FieldType<2>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::constant()
     1437//template <> template <fw2_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::constant()
     1438template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<2>::constant()
    14341439{
    14351440        return simd128<(4)>::constant<((val<<2)|(val&(3)))>();
     
    14371442
    14381443//The total number of operations is 0
    1439 template <> template <typename FieldType<4>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<4>::constant()
     1444//template <> template <fw4_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<4>::constant()
     1445template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<4>::constant()
    14401446{
    14411447        return simd128<(8)>::constant<((val<<4)|(val&(15)))>();
     
    14431449
    14441450//The total number of operations is 0
    1445 template <> template <typename FieldType<8>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<8>::constant()
     1451//template <> template <fw8_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<8>::constant()
     1452template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<8>::constant()
    14461453{
    14471454        return _mm_set1_epi8((int32_t)(val));
     
    14491456
    14501457//The total number of operations is 0
    1451 template <> template <typename FieldType<16>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<16>::constant()
     1458//template <> template <fw16_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<16>::constant()
     1459template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<16>::constant()
    14521460{
    14531461        return _mm_set1_epi16((int32_t)(val));
     
    14551463
    14561464//The total number of operations is 0
    1457 template <> template <fw32_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<32>::constant()
     1465//template <> template <fw32_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<32>::constant()
     1466template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<32>::constant()
    14581467{
    14591468        return _mm_set1_epi32((int32_t)(val));
     
    14611470
    14621471//The total number of operations is 0
    1463 template <> template <typename FieldType<64>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::constant()
     1472//template <> template <fw64_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::constant()
     1473template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<64>::constant()
    14641474{
    14651475        return _mm_set_epi32((int32_t)((val>>32)), (int32_t)(val), (int32_t)((val>>32)), (int32_t)(val));
     
    14671477
    14681478//The total number of operations is 0
    1469 template <> template <typename FieldType<128>::T val> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::constant()
     1479//template <> template <fw128_t val> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::constant()
     1480template <> template <int val> IDISA_ALWAYS_INLINE bitblock128_t simd128<128>::constant()
    14701481{
    14711482        return _mm_set_epi32(0, 0, (int32_t)((val>>32)), (int32_t)(val));
     
    26022613
    26032614//The total number of operations is 1.0
    2604 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill(typename FieldType<1>::T val1)
     2615template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill(fw1_t val1)
    26052616{
    26062617        return mvmd128<32>::fill((-1*val1));
     
    26082619
    26092620//The total number of operations is 1.0
    2610 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill(typename FieldType<2>::T val1)
     2621template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill(fw2_t val1)
    26112622{
    26122623        return mvmd128<(4)>::fill(((val1<<2)|val1));
     
    26142625
    26152626//The total number of operations is 1.0
    2616 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill(typename FieldType<4>::T val1)
     2627template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill(fw4_t val1)
    26172628{
    26182629        return mvmd128<(8)>::fill(((val1<<4)|val1));
     
    26202631
    26212632//The total number of operations is 1.0
    2622 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill(typename FieldType<8>::T val1)
     2633template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill(fw8_t val1)
    26232634{
    26242635        return _mm_set1_epi8((int32_t)(val1));
     
    26262637
    26272638//The total number of operations is 1.0
    2628 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill(typename FieldType<16>::T val1)
     2639template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill(fw16_t val1)
    26292640{
    26302641        return _mm_set1_epi16((int32_t)(val1));
     
    26382649
    26392650//The total number of operations is 1.0
    2640 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill(typename FieldType<64>::T val1)
     2651template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill(fw64_t val1)
    26412652{
    26422653        return _mm_set_epi32((int32_t)((val1>>32)), (int32_t)(val1), (int32_t)((val1>>32)), (int32_t)(val1));
     
    26442655
    26452656//The total number of operations is 1.0
    2646 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::fill(typename FieldType<128>::T val1)
     2657template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<128>::fill(fw128_t val1)
    26472658{
    26482659        return _mm_set_epi32((int32_t)(0), (int32_t)(0), (int32_t)((val1>>32)), (int32_t)(val1));
     
    26502661
    26512662//The total number of operations is 1.0
    2652 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<1>::T mvmd128<1>::extract(bitblock128_t arg1)
     2663template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw1_t mvmd128<1>::extract(bitblock128_t arg1)
    26532664{
    26542665        return (((pos%2) == 0) ? (mvmd128<(2)>::extract<(pos/2)>(arg1)&(1)) : (mvmd128<(2)>::extract<(pos/2)>(arg1)>>1));
     
    26562667
    26572668//The total number of operations is 1.0
    2658 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<2>::T mvmd128<2>::extract(bitblock128_t arg1)
     2669template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw2_t mvmd128<2>::extract(bitblock128_t arg1)
    26592670{
    26602671        return (((pos%2) == 0) ? (mvmd128<(4)>::extract<(pos/2)>(arg1)&(3)) : (mvmd128<(4)>::extract<(pos/2)>(arg1)>>2));
     
    26622673
    26632674//The total number of operations is 1.0
    2664 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<4>::T mvmd128<4>::extract(bitblock128_t arg1)
     2675template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw4_t mvmd128<4>::extract(bitblock128_t arg1)
    26652676{
    26662677        return (((pos%2) == 0) ? (mvmd128<(8)>::extract<(pos/2)>(arg1)&(15)) : (mvmd128<(8)>::extract<(pos/2)>(arg1)>>4));
     
    26682679
    26692680//The total number of operations is 1.0
    2670 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<8>::T mvmd128<8>::extract(bitblock128_t arg1)
     2681template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw8_t mvmd128<8>::extract(bitblock128_t arg1)
    26712682{
    26722683        return (((pos%2) == 0) ? (mvmd128<(16)>::extract<(pos/2)>(arg1)&(255)) : (mvmd128<(16)>::extract<(pos/2)>(arg1)>>8));
     
    26742685
    26752686//The total number of operations is 1.0
    2676 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<16>::T mvmd128<16>::extract(bitblock128_t arg1)
     2687template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw16_t mvmd128<16>::extract(bitblock128_t arg1)
    26772688{
    26782689        return (65535&_mm_extract_epi16(arg1, (int32_t)(pos)));
     
    26862697
    26872698//The total number of operations is 4.0
    2688 template <> template <uint8_t pos> IDISA_ALWAYS_INLINE typename FieldType<64>::T mvmd128<64>::extract(bitblock128_t arg1)
    2689 {
    2690         return (((typename FieldType<64>::T)(mvmd128<(32)>::extract<((2*pos)+1)>(arg1))<<(32))|mvmd128<(32)>::extract<(2*pos)>(arg1));
     2699template <> template <uint8_t pos> IDISA_ALWAYS_INLINE fw64_t mvmd128<64>::extract(bitblock128_t arg1)
     2700{
     2701        return (((fw64_t)(mvmd128<(32)>::extract<((2*pos)+1)>(arg1))<<(32))|mvmd128<(32)>::extract<(2*pos)>(arg1));
    26912702}
    26922703
     
    27462757
    27472758//The total number of operations is 15.0
    2748 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill16(typename FieldType<1>::T val1, typename FieldType<1>::T val2, typename FieldType<1>::T val3, typename FieldType<1>::T val4, typename FieldType<1>::T val5, typename FieldType<1>::T val6, typename FieldType<1>::T val7, typename FieldType<1>::T val8, typename FieldType<1>::T val9, typename FieldType<1>::T val10, typename FieldType<1>::T val11, typename FieldType<1>::T val12, typename FieldType<1>::T val13, typename FieldType<1>::T val14, typename FieldType<1>::T val15, typename FieldType<1>::T val16)
     2759template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill16(fw1_t val1, fw1_t val2, fw1_t val3, fw1_t val4, fw1_t val5, fw1_t val6, fw1_t val7, fw1_t val8, fw1_t val9, fw1_t val10, fw1_t val11, fw1_t val12, fw1_t val13, fw1_t val14, fw1_t val15, fw1_t val16)
    27492760{
    27502761        return simd_or(mvmd128<(2)>::fill16((val1<<1), (val3<<1), (val5<<1), (val7<<1), (val9<<1), (val11<<1), (val13<<1), (val15<<1), (val1<<1), (val3<<1), (val5<<1), (val7<<1), (val9<<1), (val11<<1), (val13<<1), (val15<<1)), mvmd128<(2)>::fill16((val2&(1)), (val4&(1)), (val6&(1)), (val8&(1)), (val10&(1)), (val12&(1)), (val14&(1)), (val16&(1)), (val2&(1)), (val4&(1)), (val6&(1)), (val8&(1)), (val10&(1)), (val12&(1)), (val14&(1)), (val16&(1))));
     
    27522763
    27532764//The total number of operations is 7.0
    2754 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill16(typename FieldType<2>::T val1, typename FieldType<2>::T val2, typename FieldType<2>::T val3, typename FieldType<2>::T val4, typename FieldType<2>::T val5, typename FieldType<2>::T val6, typename FieldType<2>::T val7, typename FieldType<2>::T val8, typename FieldType<2>::T val9, typename FieldType<2>::T val10, typename FieldType<2>::T val11, typename FieldType<2>::T val12, typename FieldType<2>::T val13, typename FieldType<2>::T val14, typename FieldType<2>::T val15, typename FieldType<2>::T val16)
     2765template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill16(fw2_t val1, fw2_t val2, fw2_t val3, fw2_t val4, fw2_t val5, fw2_t val6, fw2_t val7, fw2_t val8, fw2_t val9, fw2_t val10, fw2_t val11, fw2_t val12, fw2_t val13, fw2_t val14, fw2_t val15, fw2_t val16)
    27552766{
    27562767        return simd_or(mvmd128<(4)>::fill16((val1<<2), (val3<<2), (val5<<2), (val7<<2), (val9<<2), (val11<<2), (val13<<2), (val15<<2), (val1<<2), (val3<<2), (val5<<2), (val7<<2), (val9<<2), (val11<<2), (val13<<2), (val15<<2)), mvmd128<(4)>::fill16((val2&(3)), (val4&(3)), (val6&(3)), (val8&(3)), (val10&(3)), (val12&(3)), (val14&(3)), (val16&(3)), (val2&(3)), (val4&(3)), (val6&(3)), (val8&(3)), (val10&(3)), (val12&(3)), (val14&(3)), (val16&(3))));
     
    27582769
    27592770//The total number of operations is 3.0
    2760 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill16(typename FieldType<4>::T val1, typename FieldType<4>::T val2, typename FieldType<4>::T val3, typename FieldType<4>::T val4, typename FieldType<4>::T val5, typename FieldType<4>::T val6, typename FieldType<4>::T val7, typename FieldType<4>::T val8, typename FieldType<4>::T val9, typename FieldType<4>::T val10, typename FieldType<4>::T val11, typename FieldType<4>::T val12, typename FieldType<4>::T val13, typename FieldType<4>::T val14, typename FieldType<4>::T val15, typename FieldType<4>::T val16)
     2771template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill16(fw4_t val1, fw4_t val2, fw4_t val3, fw4_t val4, fw4_t val5, fw4_t val6, fw4_t val7, fw4_t val8, fw4_t val9, fw4_t val10, fw4_t val11, fw4_t val12, fw4_t val13, fw4_t val14, fw4_t val15, fw4_t val16)
    27612772{
    27622773        return simd_or(mvmd128<(8)>::fill16((val1<<4), (val3<<4), (val5<<4), (val7<<4), (val9<<4), (val11<<4), (val13<<4), (val15<<4), (val1<<4), (val3<<4), (val5<<4), (val7<<4), (val9<<4), (val11<<4), (val13<<4), (val15<<4)), mvmd128<(8)>::fill16((val2&(15)), (val4&(15)), (val6&(15)), (val8&(15)), (val10&(15)), (val12&(15)), (val14&(15)), (val16&(15)), (val2&(15)), (val4&(15)), (val6&(15)), (val8&(15)), (val10&(15)), (val12&(15)), (val14&(15)), (val16&(15))));
     
    27642775
    27652776//The total number of operations is 1.0
    2766 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill16(typename FieldType<8>::T val1, typename FieldType<8>::T val2, typename FieldType<8>::T val3, typename FieldType<8>::T val4, typename FieldType<8>::T val5, typename FieldType<8>::T val6, typename FieldType<8>::T val7, typename FieldType<8>::T val8, typename FieldType<8>::T val9, typename FieldType<8>::T val10, typename FieldType<8>::T val11, typename FieldType<8>::T val12, typename FieldType<8>::T val13, typename FieldType<8>::T val14, typename FieldType<8>::T val15, typename FieldType<8>::T val16)
     2777template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill16(fw8_t val1, fw8_t val2, fw8_t val3, fw8_t val4, fw8_t val5, fw8_t val6, fw8_t val7, fw8_t val8, fw8_t val9, fw8_t val10, fw8_t val11, fw8_t val12, fw8_t val13, fw8_t val14, fw8_t val15, fw8_t val16)
    27672778{
    27682779        return _mm_set_epi8((int32_t)(val1), (int32_t)(val2), (int32_t)(val3), (int32_t)(val4), (int32_t)(val5), (int32_t)(val6), (int32_t)(val7), (int32_t)(val8), (int32_t)(val9), (int32_t)(val10), (int32_t)(val11), (int32_t)(val12), (int32_t)(val13), (int32_t)(val14), (int32_t)(val15), (int32_t)(val16));
     
    27702781
    27712782//The total number of operations is 5.0
    2772 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill4(typename FieldType<1>::T val1, typename FieldType<1>::T val2, typename FieldType<1>::T val3, typename FieldType<1>::T val4)
     2783template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill4(fw1_t val1, fw1_t val2, fw1_t val3, fw1_t val4)
    27732784{
    27742785        return simd128<1>::ifh(simd128<(4)>::himask(), mvmd128<1>::fill2(val1, val2), mvmd128<1>::fill2(val3, val4));
     
    27762787
    27772788//The total number of operations is 5.0
    2778 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill4(typename FieldType<2>::T val1, typename FieldType<2>::T val2, typename FieldType<2>::T val3, typename FieldType<2>::T val4)
     2789template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill4(fw2_t val1, fw2_t val2, fw2_t val3, fw2_t val4)
    27792790{
    27802791        return simd128<1>::ifh(simd128<(8)>::himask(), mvmd128<2>::fill2(val1, val2), mvmd128<2>::fill2(val3, val4));
     
    27822793
    27832794//The total number of operations is 5.0
    2784 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill4(typename FieldType<4>::T val1, typename FieldType<4>::T val2, typename FieldType<4>::T val3, typename FieldType<4>::T val4)
     2795template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill4(fw4_t val1, fw4_t val2, fw4_t val3, fw4_t val4)
    27852796{
    27862797        return simd128<1>::ifh(simd128<(16)>::himask(), mvmd128<4>::fill2(val1, val2), mvmd128<4>::fill2(val3, val4));
     
    27882799
    27892800//The total number of operations is 5.0
    2790 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill4(typename FieldType<8>::T val1, typename FieldType<8>::T val2, typename FieldType<8>::T val3, typename FieldType<8>::T val4)
     2801template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill4(fw8_t val1, fw8_t val2, fw8_t val3, fw8_t val4)
    27912802{
    27922803        return simd128<1>::ifh(simd128<(32)>::himask(), mvmd128<8>::fill2(val1, val2), mvmd128<8>::fill2(val3, val4));
     
    27942805
    27952806//The total number of operations is 3.0
    2796 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill4(typename FieldType<16>::T val1, typename FieldType<16>::T val2, typename FieldType<16>::T val3, typename FieldType<16>::T val4)
     2807template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill4(fw16_t val1, fw16_t val2, fw16_t val3, fw16_t val4)
    27972808{
    27982809        return simd_or(mvmd128<(32)>::fill4((val1<<16), (val3<<16), (val1<<16), (val3<<16)), mvmd128<(32)>::fill4((val2&(65535)), (val4&(65535)), (val2&(65535)), (val4&(65535))));
     
    28482859
    28492860//The total number of operations is 1.0
    2850 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill2(typename FieldType<1>::T val1, typename FieldType<1>::T val2)
     2861template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill2(fw1_t val1, fw1_t val2)
    28512862{
    28522863        return mvmd128<(2)>::fill(((val1<<1)|(val2&(1))));
     
    28542865
    28552866//The total number of operations is 1.0
    2856 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill2(typename FieldType<2>::T val1, typename FieldType<2>::T val2)
     2867template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill2(fw2_t val1, fw2_t val2)
    28572868{
    28582869        return mvmd128<(4)>::fill(((val1<<2)|(val2&(3))));
     
    28602871
    28612872//The total number of operations is 1.0
    2862 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill2(typename FieldType<4>::T val1, typename FieldType<4>::T val2)
     2873template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill2(fw4_t val1, fw4_t val2)
    28632874{
    28642875        return mvmd128<(8)>::fill(((val1<<4)|(val2&(15))));
     
    28662877
    28672878//The total number of operations is 1.0
    2868 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill2(typename FieldType<8>::T val1, typename FieldType<8>::T val2)
     2879template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill2(fw8_t val1, fw8_t val2)
    28692880{
    28702881        return mvmd128<(16)>::fill(((val1<<8)|(val2&(255))));
     
    28722883
    28732884//The total number of operations is 1.0
    2874 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill2(typename FieldType<16>::T val1, typename FieldType<16>::T val2)
     2885template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill2(fw16_t val1, fw16_t val2)
    28752886{
    28762887        return mvmd128<(32)>::fill(((val1<<16)|(val2&(65535))));
     
    28842895
    28852896//The total number of operations is 5.0
    2886 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill2(typename FieldType<64>::T val1, typename FieldType<64>::T val2)
     2897template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<64>::fill2(fw64_t val1, fw64_t val2)
    28872898{
    28882899        return simd128<1>::ifh(simd128<(128)>::himask(), mvmd128<64>::fill(val1), mvmd128<64>::fill(val2));
     
    29742985
    29752986//The total number of operations is 13.0
    2976 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill8(typename FieldType<1>::T val1, typename FieldType<1>::T val2, typename FieldType<1>::T val3, typename FieldType<1>::T val4, typename FieldType<1>::T val5, typename FieldType<1>::T val6, typename FieldType<1>::T val7, typename FieldType<1>::T val8)
     2987template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<1>::fill8(fw1_t val1, fw1_t val2, fw1_t val3, fw1_t val4, fw1_t val5, fw1_t val6, fw1_t val7, fw1_t val8)
    29772988{
    29782989        return simd128<1>::ifh(simd128<(8)>::himask(), mvmd128<1>::fill4(val1, val2, val3, val4), mvmd128<1>::fill4(val5, val6, val7, val8));
     
    29802991
    29812992//The total number of operations is 13.0
    2982 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill8(typename FieldType<2>::T val1, typename FieldType<2>::T val2, typename FieldType<2>::T val3, typename FieldType<2>::T val4, typename FieldType<2>::T val5, typename FieldType<2>::T val6, typename FieldType<2>::T val7, typename FieldType<2>::T val8)
     2993template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<2>::fill8(fw2_t val1, fw2_t val2, fw2_t val3, fw2_t val4, fw2_t val5, fw2_t val6, fw2_t val7, fw2_t val8)
    29832994{
    29842995        return simd128<1>::ifh(simd128<(16)>::himask(), mvmd128<2>::fill4(val1, val2, val3, val4), mvmd128<2>::fill4(val5, val6, val7, val8));
     
    29862997
    29872998//The total number of operations is 7.0
    2988 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill8(typename FieldType<4>::T val1, typename FieldType<4>::T val2, typename FieldType<4>::T val3, typename FieldType<4>::T val4, typename FieldType<4>::T val5, typename FieldType<4>::T val6, typename FieldType<4>::T val7, typename FieldType<4>::T val8)
     2999template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<4>::fill8(fw4_t val1, fw4_t val2, fw4_t val3, fw4_t val4, fw4_t val5, fw4_t val6, fw4_t val7, fw4_t val8)
    29893000{
    29903001        return simd_or(mvmd128<(8)>::fill8((val1<<4), (val3<<4), (val5<<4), (val7<<4), (val1<<4), (val3<<4), (val5<<4), (val7<<4)), mvmd128<(8)>::fill8((val2&(15)), (val4&(15)), (val6&(15)), (val8&(15)), (val2&(15)), (val4&(15)), (val6&(15)), (val8&(15))));
     
    29923003
    29933004//The total number of operations is 3.0
    2994 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill8(typename FieldType<8>::T val1, typename FieldType<8>::T val2, typename FieldType<8>::T val3, typename FieldType<8>::T val4, typename FieldType<8>::T val5, typename FieldType<8>::T val6, typename FieldType<8>::T val7, typename FieldType<8>::T val8)
     3005template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<8>::fill8(fw8_t val1, fw8_t val2, fw8_t val3, fw8_t val4, fw8_t val5, fw8_t val6, fw8_t val7, fw8_t val8)
    29953006{
    29963007        return simd_or(mvmd128<(16)>::fill8((val1<<8), (val3<<8), (val5<<8), (val7<<8), (val1<<8), (val3<<8), (val5<<8), (val7<<8)), mvmd128<(16)>::fill8((val2&(255)), (val4&(255)), (val6&(255)), (val8&(255)), (val2&(255)), (val4&(255)), (val6&(255)), (val8&(255))));
     
    29983009
    29993010//The total number of operations is 1.0
    3000 template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill8(typename FieldType<16>::T val1, typename FieldType<16>::T val2, typename FieldType<16>::T val3, typename FieldType<16>::T val4, typename FieldType<16>::T val5, typename FieldType<16>::T val6, typename FieldType<16>::T val7, typename FieldType<16>::T val8)
     3011template <> IDISA_ALWAYS_INLINE bitblock128_t mvmd128<16>::fill8(fw16_t val1, fw16_t val2, fw16_t val3, fw16_t val4, fw16_t val5, fw16_t val6, fw16_t val7, fw16_t val8)
    30013012{
    30023013        return _mm_set_epi16((int32_t)(val1), (int32_t)(val2), (int32_t)(val3), (int32_t)(val4), (int32_t)(val5), (int32_t)(val6), (int32_t)(val7), (int32_t)(val8));
Note: See TracChangeset for help on using the changeset viewer.