Lines Matching +full:low +full:- +full:vt

1 //===-- SystemZPatterns.td - SystemZ-specific pattern rules ---*- tblgen-*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // Record that INSN performs a 64-bit version of unary operator OPERATOR
10 // in which the operand is sign-extended from 32 to 64 bits.
18 // Record that INSN performs a 64-bit version of binary operator OPERATOR
20 // is sign-extended from a 32-bit register.
38 // Record that INSN performs a binary read-modify-write operation,
68 // INSN stores the low 32 bits of a GPR to a memory with addressing mode MODE.
75 // INSN and INSNY are an RX/RXY pair of instructions that store the low
84 // INSN stores the low 32 bits of a GPR using PC-relative addressing.
89 // We want PC-relative addresses to be tried ahead of BD and BDX addresses.
95 // INSN and INSNINV conditionally store the low 32 bits of a GPR to memory,
115 // of the same size. VT is the type of the intermediate (legalized) value and
117 multiclass MVCLoadStore<SDPatternOperator load, ValueType vt, Instruction insn,
119 def : Pat<(mvc_store (vt (load bdaddr12only:$src)), bdaddr12only:$dest),
123 // Use NC-like instruction INSN for block_op operation OPERATOR.
125 // VT is the intermediate legalized type in which the binary operation
128 ValueType vt, Instruction insn, bits<5> length> {
129 def : Pat<(operator (vt (load bdaddr12only:$src)), bdaddr12only:$dest),
134 // LOAD/VT/LENGTH combination.
135 multiclass BlockLoadStore<SDPatternOperator load, ValueType vt,
138 defm : MVCLoadStore<load, vt, mvc, length>;
139 defm : BinaryLoadStore<block_and1, load, vt, nc, length>;
140 defm : BinaryLoadStore<block_and2, load, vt, nc, length>;
141 defm : BinaryLoadStore<block_or1, load, vt, oc, length>;
142 defm : BinaryLoadStore<block_or2, load, vt, oc, length>;
143 defm : BinaryLoadStore<block_xor1, load, vt, xc, length>;
144 defm : BinaryLoadStore<block_xor2, load, vt, xc, length>;
155 // Use INSN for performing binary operation OPERATION of type VT
158 SDPatternOperator operator, ValueType vt>
159 : Pat<(vt (operator cls:$x, cls:$y)), (insn cls:$x, cls:$y)>;
166 : Pat<(tr1.vt (operator (tr2.vt tr2.op:$vec))),
173 : Pat<(tr.vt (operator (tr.vt tr.op:$vec1), (tr.vt tr.op:$vec2))),