_mm256_hadd_epi16 // Horizontally add eg.dst[15:0] := a[31:16] + a[15:0] _mm256_mulhi_epi16 // Multiply the packed signed 16-bit integers in a and b, producing intermediate 32-bit integers, and store the high 16 bits of the intermediate integers in dst. _mm256_sign_epi16 // 根据b的值,将-a/0/a存入dst // 乘加,乘减,的计算组合也有
BIC (bit clear) EON (Exclusive OR) ORR (OR operations on the values in Rn and Operand2)
InstRW的定义
1 2 3 4 5 6 7 8 9 10 11
// Map a set of opcodes to a list of SchedReadWrite types. This allows // the subtarget to easily override specific operations. // // SchedModel ties this opcode mapping to a processor. classInstRW<list<SchedReadWrite> rw, dag instrlist> { list<SchedReadWrite> OperandReadWrites = rw; dag Instrs = instrlist; SchedMachineModel SchedModel = ?; // Allow a subtarget to mark some instructions as unsupported. bit Unsupported = false; }
TSV110Wr_2cyc_1MDU的定义
1 2 3 4 5 6 7 8 9
def TSV110Wr_2cyc_1MDU : SchedWriteRes<[TSV110UnitMDU]> { let Latency = 2; }