[llvm] [AArch64][SME2] Add FORM_STRIDED_TUPLE pseudo nodes (PR #116399)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 10 01:56:22 PST 2024


================
@@ -8641,6 +8646,55 @@ static bool checkZExtBool(SDValue Arg, const SelectionDAG &DAG) {
   return ZExtBool;
 }
 
+bool shouldUseFormStridedPseudo(MachineInstr &MI) {
+  MachineRegisterInfo &MRI = MI.getMF()->getRegInfo();
+  bool UseFormStrided = false;
+  unsigned NumOperands =
+      MI.getOpcode() == AArch64::FORM_STRIDED_TUPLE_X2_PSEUDO ? 2 : 4;
+
+  // The FORM_STRIDED_TUPLE pseudo should only be used if the input operands
+  // are copy nodes where the source register is in a StridedOrContiguous
+  // class. For example:
+  //   %3:zpr2stridedorcontiguous = LD1B_2Z_IMM_PSEUDO ..
+  //   %4:zpr = COPY %3.zsub1:zpr2stridedorcontiguous
+  //   %5:zpr = COPY %3.zsub0:zpr2stridedorcontiguous
+  //   %6:zpr2stridedorcontiguous = LD1B_2Z_PSEUDO ..
+  //   %7:zpr = COPY %6.zsub1:zpr2stridedorcontiguous
+  //   %8:zpr = COPY %6.zsub0:zpr2stridedorcontiguous
+  //   %9:zpr2mul2 = FORM_STRIDED_TUPLE_X2_PSEUDO %5:zpr, %8:zpr
----------------
sdesmalen-arm wrote:

nit: Please move the comment above the function name.

https://github.com/llvm/llvm-project/pull/116399


More information about the llvm-commits mailing list