Changeset 4169
- Timestamp:
- Sep 13, 2014, 3:21:05 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
proto/s2k/trunk/framework/src/toolchain/b2k/lang/paramBuiltin/idisa/IDISABuiltin.java
r4109 r4169 20 20 * 21 21 * @author Ken Herdy <ksherdy at sfu dot ca> 22 * @autho sMeng22 * @author Meng 23 23 */ 24 24 … … 49 49 import static toolchain.b2k.lang.type.PrimitiveType.VOID; 50 50 import static toolchain.b2k.lang.paramBuiltin.idisa.IDISABuiltinsTranslator.IDENTITY_TRANSLATION; 51 import static toolchain.b2k.lang.paramBuiltin.idisa.IDISABuiltinsTranslator.PACK_TRANSLATION;; 51 import static toolchain.b2k.lang.paramBuiltin.idisa.IDISABuiltinsTranslator.HORIZONTAL_TRANSLATION; 52 import static toolchain.b2k.lang.paramBuiltin.idisa.IDISABuiltinsTranslator.EXPANSION_TRANSLATION; 52 53 53 54 public enum IDISABuiltin { … … 55 56 // C++: class_name<fw>::op(data_type arg, ...) 56 57 // C: class_name_op_fw(args...) 57 ESIMD_MERGEH ( "mergeh", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(1,BITBLOCK_SIZE/2, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 58 ESIMD_MERGEL ( "mergel", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(1,BITBLOCK_SIZE/2, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 59 ESIMD_MULTH ( "multh", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 60 ESIMD_MULTL ( "multl", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 61 ESIMD_SIGNEXTENDH ( "signextendh", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 62 ESIMD_SIGNEXTENDL ( "signextendl", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 63 ESIMD_ZEROEXTENDH ( "zeroextendh", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 64 ESIMD_ZEROEXTENDL ( "zeroextendl", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 58 ESIMD_MERGEH ( "mergeh", EXPANSION_TRANSLATION, makeRangeOfSimpleSignatures(1,BITBLOCK_SIZE/2, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 59 ESIMD_MERGEL ( "mergel", EXPANSION_TRANSLATION, makeRangeOfSimpleSignatures(1,BITBLOCK_SIZE/2, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 60 ESIMD_MULTH ( "multh", EXPANSION_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 61 ESIMD_MULTL ( "multl", EXPANSION_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 62 ESIMD_SIGNEXTENDH ( "signextendh", EXPANSION_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 63 ESIMD_SIGNEXTENDL ( "signextendl", EXPANSION_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 64 ESIMD_ZEROEXTENDH ( "zeroextendh", EXPANSION_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 65 ESIMD_ZEROEXTENDL ( "zeroextendl", EXPANSION_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 66 // << Not implemented in s2k. 65 67 HSIMD_ADD_HL ( "add_hl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 66 68 HSIMD_MIN_HL ( "min_hl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 67 HSIMD_PACKH ( "packh", PACK_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)),68 HSIMD_PACKL ( "packl", PACK_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)),69 69 HSIMD_PACKSS ( "packss", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 70 70 HSIMD_PACKUS ( "packus", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 71 71 HSIMD_SIGNMASK ( "signmask", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITFIELD)), 72 72 HSIMD_UMIN_HL ( "umin_hl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 73 // >> 74 HSIMD_PACKH ( "packh", HORIZONTAL_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 75 HSIMD_PACKL ( "packl", HORIZONTAL_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 76 73 77 MVMD_FILL ( "fill", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 78 // << Not implemented in s2k. 74 79 MVMD_FILL16 ( "fill16", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK)), 75 80 MVMD_FILL2 ( "fill2", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 76 81 MVMD_FILL4 ( "fill4", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK)), 77 82 MVMD_FILL8 ( "fill8", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK, BITBLOCK)), 83 // >> 78 84 //KH: shuffle dne ? 79 85 //MVMD_SHUFFLE ( "shuffle", makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), … … 93 99 SIMD_NEG ( "neg", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 94 100 SIMD_POPCOUNT ( "popcount", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 95 SIMD_SLL ( "sll", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 96 SIMD_SRA ( "sra", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 97 SIMD_SRL ( "srl", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 101 SIMD_SLL ( "sll", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(BITBLOCK_SIZE,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 102 //DNE 103 //SIMD_SRA ( "sra", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 104 SIMD_SRL ( "srl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(BITBLOCK_SIZE,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 98 105 SIMD_SUB ( "sub", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 99 106 SIMD_SUB_HL ( "sub_hl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 107 // << Not implemented in s2k. 100 108 SIMD_UGT ( "ugt", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 101 109 SIMD_ULT ( "ult", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), … … 103 111 SIMD_UMIN ( "umin", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 104 112 SIMD_UMULT ( "umult", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 113 // >> 105 114 SIMD_XOR_HL ( "xor_hl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 106 115 … … 108 117 SIMD_ANY ( "any", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 109 118 SIMD_ALL ( "all", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK)), 110 SIMD_VRSL( "vsrl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(64,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 111 SIMD_VRLL( "vsll", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(64,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 112 119 //<< Not implemented in s2k. 120 SIMD_VRSL( "vsrl", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(64,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 121 SIMD_VRLL( "vsll", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(64,BITBLOCK_SIZE, new SIMDBuiltinsGenerator(), BITBLOCK, BITBLOCK, BITBLOCK)), 122 //>> 113 123 // SIMD (opPatterns == 1) 114 124 // C++: class_name<fw>::op<x>(data_type arg, ...) 115 125 // C: class_name_op_fw(data_type arg, ..., x) 126 //<< Not implemented in s2k. 116 127 MVMD_DSLLI ( "dslli", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDConstantBuiltinsGenerator(), INTEGER, BITBLOCK, BITBLOCK, BITBLOCK)), 117 128 MVMD_DSRLI ( "dsrli", IDENTITY_TRANSLATION, makeRangeOfSimpleSignatures(2,BITBLOCK_SIZE, new SIMDConstantBuiltinsGenerator(), INTEGER, BITBLOCK, BITBLOCK, BITBLOCK)), … … 119 130 MVMD_INSERT ( "insert", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinsGenerator(), INTEGER, BITBLOCK, BITFIELD, BITBLOCK)), 120 131 MVMD_SHUFFLEI ( "shufflei", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinsGenerator(), INTEGER, BITBLOCK, BITBLOCK)), 132 //>> 121 133 MVMD_SLLI ( "slli", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinsGenerator(), INTEGER, BITBLOCK, BITBLOCK)), 122 134 MVMD_SPLAT ( "splat", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDConstantBuiltinsGenerator(), INTEGER, BITBLOCK, BITBLOCK)), … … 140 152 // C++: class_name::op(data_type arg, ...) 141 153 // C: class_name_op(data_type arg, ...) 154 //<< Not implemented in s2k. 142 155 BITBLOCK_ALL ( "all", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockBuiltinsGenerator(), BITBLOCK, BOOL)), 143 156 BITBLOCK_ANY ( "any", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockBuiltinsGenerator(), BITBLOCK, BOOL)), … … 159 172 BITBLOCK_LOAD_ALIGNED ( "load_aligned", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockLoadBuiltinsGenerator(), BITBLOCK_POINTER, BITBLOCK)), 160 173 BITBLOCK_LOAD_UNALIGNED ( "load_unaligned", IDENTITY_TRANSLATION, makeAllSimpleSignatures(BITBLOCK_SIZE, new SIMDBitblockLoadBuiltinsGenerator(), BITBLOCK_POINTER, BITBLOCK)), 161 174 //>> 162 175 NULL_BUILTIN("Null", IDENTITY_TRANSLATION ); 163 176
Note: See TracChangeset
for help on using the changeset viewer.