Changeset 868 for proto/u8u16


Ignore:
Timestamp:
Jan 3, 2011, 7:15:45 PM (9 years ago)
Author:
cameron
Message:

delmask optimization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/u8u16/pablo_template.c

    r867 r868  
    1515typedef SIMD_type BitBlock;
    1616
     17#include "../lib/block_carry.h"
    1718#include "../lib/carryQ.h"
    1819
     
    209210     
    210211       
    211       BitBlock shift1, shift2, shift4;
    212       del_info_8(shift1, shift2, shift4, delmask);
    213       do_right8_shifts(u16lo[0], shift1, shift2, shift4);
    214       do_right8_shifts(u16lo[1], shift1, shift2, shift4);
    215       do_right8_shifts(u16lo[2], shift1, shift2, shift4);
    216       do_right8_shifts(u16lo[3], shift1, shift2, shift4);
    217       do_right8_shifts(u16lo[4], shift1, shift2, shift4);
    218       do_right8_shifts(u16lo[5], shift1, shift2, shift4);
    219       do_right8_shifts(u16lo[6], shift1, shift2, shift4);
    220       do_right8_shifts(u16lo[7], shift1, shift2, shift4);
    221       do_right8_shifts(u16hi[0], shift1, shift2, shift4);
    222       do_right8_shifts(u16hi[1], shift1, shift2, shift4);
    223       do_right8_shifts(u16hi[2], shift1, shift2, shift4);
    224       do_right8_shifts(u16hi[3], shift1, shift2, shift4);
    225       do_right8_shifts(u16hi[4], shift1, shift2, shift4);
    226       do_right8_shifts(u16hi[5], shift1, shift2, shift4);
    227       do_right8_shifts(u16hi[6], shift1, shift2, shift4);
    228       do_right8_shifts(u16hi[7], shift1, shift2, shift4);
     212      if (bitblock_has_bit(delmask)) {
     213              BitBlock shift1, shift2, shift4;
     214              del_info_8(shift1, shift2, shift4, delmask);
     215              do_right8_shifts(u16lo[0], shift1, shift2, shift4);
     216              do_right8_shifts(u16lo[1], shift1, shift2, shift4);
     217              do_right8_shifts(u16lo[2], shift1, shift2, shift4);
     218              do_right8_shifts(u16lo[3], shift1, shift2, shift4);
     219              do_right8_shifts(u16lo[4], shift1, shift2, shift4);
     220              do_right8_shifts(u16lo[5], shift1, shift2, shift4);
     221              do_right8_shifts(u16lo[6], shift1, shift2, shift4);
     222              do_right8_shifts(u16lo[7], shift1, shift2, shift4);
     223              if (bitblock_has_bit(u8.scope33 | u8surrogate)) {
     224                      do_right8_shifts(u16hi[0], shift1, shift2, shift4);
     225                      do_right8_shifts(u16hi[1], shift1, shift2, shift4);
     226                      do_right8_shifts(u16hi[2], shift1, shift2, shift4);
     227                      do_right8_shifts(u16hi[3], shift1, shift2, shift4);
     228                      do_right8_shifts(u16hi[4], shift1, shift2, shift4);
     229              }
     230              do_right8_shifts(u16hi[5], shift1, shift2, shift4);
     231              do_right8_shifts(u16hi[6], shift1, shift2, shift4);
     232              do_right8_shifts(u16hi[7], shift1, shift2, shift4);
     233      }
    229234
    230235      unsigned char u16_units_per_reg[16];
Note: See TracChangeset for help on using the changeset viewer.