@@ -36,14 +36,15 @@ let WantsRoot = true in
36
36
def am_sme_indexed_b4 : ComplexPattern<iPTR, 2, "SelectAddrModeIndexedSVE<0, 15>">;
37
37
38
38
// The FORM_TRANSPOSED_REG_TUPLE pseudos defined below are intended to
39
- // improve register allocation for intrinsics which use strided and contiguous
40
- // multi-vector registers, avoiding unnecessary copies.
41
- // If the operands of the pseudo are copies where the source register is in
42
- // the StridedOrContiguous class, the pseudo is used to provide a hint to the
43
- // register allocator suggesting a contigious multi-vector register which
44
- // matches the subregister sequence used by the operands.
45
- // If the operands do not match this pattern, the pseudos are expanded
46
- // to a REG_SEQUENCE using the post-isel hook.
39
+ // improve register allocation for intrinsics which use strided and
40
+ // contiguous multi-vector registers, avoiding unnecessary copies.
41
+ // The SMEPeepholeOpt pass will replace a REG_SEQUENCE instruction with the
42
+ // FORM_TRANSPOSED_REG_TUPLE pseudo if the operands are copies where the
43
+ // source register is in the StridedOrContiguous class. The operands in the
44
+ // sequence must all have the same subreg index.
45
+ // The pseudo is then used to provide a hint to the register allocator
46
+ // suggesting a contigious multi-vector register which matches the
47
+ // subregister sequence used by the operands.
47
48
48
49
def FORM_TRANSPOSED_REG_TUPLE_X2_PSEUDO :
49
50
Pseudo<(outs ZPR2:$tup),
0 commit comments