Changeset 3945 for trunk/lib_ir/s2p.h


Ignore:
Timestamp:
Aug 1, 2014, 5:27:53 PM (5 years ago)
Author:
linmengl
Message:

seperate s2p_ideal from s2p.ll, since it won't compile on SSE2 machine.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib_ir/s2p.h

    r3939 r3945  
    66extern "C" {
    77
     8  //Implemented in s2p.ll
    89  BitBlock packh_16(BitBlock a, BitBlock b);
    910  BitBlock packl_16(BitBlock a, BitBlock b);
    1011
     12  BitBlock ifh_1(BitBlock a, BitBlock b, BitBlock c);
     13  BitBlock srli_16(BitBlock a, BitBlock shift_mask);
     14  BitBlock slli_16(BitBlock a, BitBlock shift_mask);
     15
     16  void s2p_step_ir(BitBlock s0, BitBlock s1, BitBlock hi_mask, BitBlock shift_mask, BitBlock *p0, BitBlock *p1);
     17
     18  void s2p_bytepack_ir(BitBlock s0, BitBlock s1, BitBlock s2, BitBlock s3, BitBlock s4, BitBlock s5, BitBlock s6, BitBlock s7, BitBlock* p0, BitBlock* p1, BitBlock* p2, BitBlock* p3, BitBlock* p4, BitBlock* p5, BitBlock* p6, BitBlock* p7);
     19
     20  BitBlock const16_1();
     21  BitBlock const16_2();
     22  BitBlock const16_4();
     23
     24  BitBlock himask_2();
     25  BitBlock himask_4();
     26  BitBlock himask_8();
     27
     28  /////////////////////////////////////////
     29  //Implemented in s2p_ideal.ll, which can only be compiled on Haswell.
    1130  BitBlock packh_8(BitBlock a, BitBlock b);
    1231  BitBlock packl_8(BitBlock a, BitBlock b);
     
    1837  BitBlock packl_2(BitBlock a, BitBlock b);
    1938
    20   BitBlock ifh_1(BitBlock a, BitBlock b, BitBlock c);
    21   BitBlock srli_16(BitBlock a, BitBlock shift_mask);
    22   BitBlock slli_16(BitBlock a, BitBlock shift_mask);
    23 
    24   void s2p_step_ir(BitBlock s0, BitBlock s1, BitBlock hi_mask, BitBlock shift_mask, BitBlock *p0, BitBlock *p1);
    25 
    26   void s2p_bytepack_ir(BitBlock s0, BitBlock s1, BitBlock s2, BitBlock s3, BitBlock s4, BitBlock s5, BitBlock s6, BitBlock s7, BitBlock* p0, BitBlock* p1, BitBlock* p2, BitBlock* p3, BitBlock* p4, BitBlock* p5, BitBlock* p6, BitBlock* p7);
    27 
    2839  void s2p_ideal_ir(BitBlock s0, BitBlock s1, BitBlock s2, BitBlock s3, BitBlock s4, BitBlock s5, BitBlock s6, BitBlock s7, BitBlock *p0, BitBlock *p1, BitBlock *p2, BitBlock *p3, BitBlock *p4, BitBlock *p5, BitBlock *p6, BitBlock *p7);
    29 
    30   BitBlock const16_1();
    31   BitBlock const16_2();
    32   BitBlock const16_4();
    33 
    34   BitBlock himask_2();
    35   BitBlock himask_4();
    36   BitBlock himask_8();
    3740}
    3841
    39 //S2P_ALGORITHM: s2p_bytepack_inline, written in pure IR in order to use
    40 //immediate constants in shifting.
    41 //s2p_ideal: use 3 stage packh2,4,8
    42 #define S2P_ALGORITHM s2p_ideal
     42//S2P_ALGORITHM:
     43//s2p_bytepack_inline, written in pure IR in order to use immediate constants in shifting.
     44//s2p_ideal: use 3 stage packh2,4,8 (only available on Haswell avx2)
     45#define S2P_ALGORITHM s2p_bytepack_inline
    4346
    4447#define s2p_ideal(s0, s1, s2, s3, s4, s5, s6, s7, p0, p1, p2, p3, p4, p5, p6, p7) \
Note: See TracChangeset for help on using the changeset viewer.