source: trunk/lib_ir/ir_common.h @ 4067

Last change on this file since 4067 was 4050, checked in by linmengl, 5 years ago

add p2s.ll file, p2s_step works now

File size: 1006 bytes
Line 
1#ifndef IR_COMMON
2#define IR_COMMON
3
4#include "idisa128.hpp"
5
6extern "C" {
7
8  //Implemented in s2p.ll
9  BitBlock packh_16(BitBlock a, BitBlock b);
10  BitBlock packl_16(BitBlock a, BitBlock b);
11
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  BitBlock const16_1();
17  BitBlock const16_2();
18  BitBlock const16_4();
19
20  BitBlock himask_2();
21  BitBlock himask_4();
22  BitBlock himask_8();
23
24  /////////////////////////////////////////
25  //Implemented in s2p_ideal.ll, which can only be compiled on Haswell.
26  BitBlock packh_8(BitBlock a, BitBlock b);
27  BitBlock packl_8(BitBlock a, BitBlock b);
28
29  BitBlock packh_4(BitBlock a, BitBlock b);
30  BitBlock packl_4(BitBlock a, BitBlock b);
31
32  BitBlock packh_2(BitBlock a, BitBlock b);
33  BitBlock packl_2(BitBlock a, BitBlock b);
34
35  //Implemented in p2s.ll
36  BitBlock mergeh_8(BitBlock a, BitBlock b);
37  BitBlock mergel_8(BitBlock a, BitBlock b);
38}
39
40#endif
Note: See TracBrowser for help on using the repository browser.