Home | History | Annotate | Download | only in SystemZ

Lines Matching full:operator

10 // Record that INSN performs a 64-bit version of unary operator OPERATOR
12 multiclass SXU<SDPatternOperator operator, Instruction insn> {
13 def : Pat<(operator (sext (i32 GR32:$src))),
15 def : Pat<(operator (sext_inreg GR64:$src, i32)),
19 // Record that INSN performs a 64-bit version of binary operator OPERATOR
22 multiclass SXB<SDPatternOperator operator, RegisterOperand cls,
24 def : Pat<(operator cls:$src1, (sext GR32:$src2)),
26 def : Pat<(operator cls:$src1, (sext_inreg GR64:$src2, i32)),
31 multiclass ZXB<SDPatternOperator operator, RegisterOperand cls,
33 def : Pat<(operator cls:$src1, (zext GR32:$src2)),
35 def : Pat<(operator cls:$src1, (and GR64:$src2, 0xffffffff)),
40 // with LOAD, OPERATOR and STORE being the read, modify and write
43 class RMWI<SDPatternOperator load, SDPatternOperator operator,
46 : Pat<(store (operator (load mode:$addr), imm:$src), mode:$addr),
51 multiclass RMWIByte<SDPatternOperator operator, AddressingMode mode,
53 def : RMWI<anyextloadi8, operator, truncstorei8, mode, imm32, insn>;
54 def : RMWI<anyextloadi8, operator, truncstorei8, mode, imm64, insn>;
70 // Record that it is equivalent to using OPERATOR to store a GR64.
71 class StoreGR64<Instruction insn, SDPatternOperator operator,
73 : Pat<(operator GR64:$R1, mode:$XBD2),
78 // OPERATOR to store a GR64.
80 SDPatternOperator operator> {
81 def : StoreGR64<insn, operator, bdxaddr12pair>;
82 def : StoreGR64<insny, operator, bdxaddr20pair>;
86 // Record that it is equivalent to using OPERATOR to store a GR64.
87 class StoreGR64PC<Instruction insn, SDPatternOperator operator>
88 : Pat<(operator GR64:$R1, pcrel32:$XBD2),
124 // Use NC-like instruction INSN for block_op operation OPERATOR.
128 multiclass BinaryLoadStore<SDPatternOperator operator, SDPatternOperator load,
130 def : Pat<(operator (vt (load bdaddr12only:$src)), bdaddr12only:$dest),
160 SDPatternOperator operator, ValueType vt>
161 : Pat<(vt (operator cls:$x, cls:$y)), (insn cls:$x, cls:$y)>;
163 // Use INSN to perform conversion operation OPERATOR, with the input being
166 class FPConversion<Instruction insn, SDPatternOperator operator, TypedReg tr1,
168 : Pat<(tr1.vt (operator (tr2.vt tr2.op:$vec))),