[llvm] [AArch64] SME definitions for C1-Nano scheduling model (PR #207174)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 16 05:39:31 PDT 2026


================
@@ -1382,176 +1629,218 @@ def : InstRW<[C1NanoWrite_68c_1VMC_66rc],
 
 
 // Bitwise select
-def : InstRW<[C1NanoWrite_3c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_3c_1VALU>],
              (instregex "^(BSL|BSL1N|BSL2N|NBSL)_ZZZZ")>;
 
 // Count/reverse bits
-def : InstRW<[C1NanoWrite_3c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_3c_1VALU>],
              (instregex "^(CLS|CLZ|RBIT)_ZPmZ_[BHSD]")>;
-def : InstRW<[C1NanoWrite_3c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_3c_1VALU>],
              (instregex "^CNT_ZPmZ_[BH]")>;
-def : InstRW<[C1NanoWrite_6c_2VALU_4rc],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_6c_2VALU_4rc>],
              (instregex "^CNT_ZPmZ_S")>;
-def : InstRW<[C1NanoWrite_9c_2VALU_7rc],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_9c_2VALU_7rc>],
              (instregex "^CNT_ZPmZ_D")>;
 // Broadcast logical bitmask immediate to vector.
-def : InstRW<[C1NanoWrite_4c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_4c_1VALU>],
              (instrs DUPM_ZI)>;
 
 // Compare and set flags
-def : InstRW<[C1NanoWrite_5c_2VALU_1rc],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVX0ALU,
+                                        C1NanoWrite_5c_2VALU_1rc>],
              (instregex "^CMP(EQ|GE|GT|HI|HS|LE|LO|LS|LT|NE)_PPzZ[IZ]_[BHSD]",
                         "^CMP(EQ|GE|GT|HI|HS|LE|LO|LS|LT|NE)_WIDE_PPzZZ_[BHS]")>;
 
 // Complex add
-def : InstRW<[C1NanoWrite_3c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_3c_1VALU>],
              (instregex "^CADD_ZZI_[BHSD]")>;
 
-def : InstRW<[C1NanoWrite_4c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_4c_1VALU>],
              (instregex "^SQCADD_ZZI_[BHSD]")>;
 
 // Complex dot product 8-bit element
-def : InstRW<[C1NanoWrite_4c_1VMAC],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_4c_1VMAC>],
              (instrs CDOT_ZZZ_S, CDOT_ZZZI_S)>;
 
 // Complex dot product 16-bit element
-def : InstRW<[C1NanoWrite_4c_1VMAC],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_4c_1VMAC>],
              (instrs CDOT_ZZZ_D, CDOT_ZZZI_D)>;
 
 // Complex multiply-add B, H, S element size
-def : InstRW<[C1NanoWrite_4c_1VMAC],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_4c_1VMAC>],
              (instregex "^CMLA_ZZZ_[BHS]", "^CMLA_ZZZI_[HS]")>;
 
 // Complex multiply-add D element size
-def : InstRW<[C1NanoWrite_4c_1VMAC],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEVXALU,
+                                        C1NanoWrite_4c_1VMAC>],
              (instrs CMLA_ZZZ_D)>;
 
 // Conditional extract operations, scalar form
-def : InstRW<[C1NanoWrite_4c_2VALU_4rc],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_12c_1CMEPERMF_1CMEVX0ALU_2rc,
+                                        C1NanoWrite_4c_2VALU_4rc>],
              (instregex "^CLAST[AB]_RPZ_[BHSD]")>;
 
 // Conditional extract operations, SIMD&FP scalar and vector forms
-def : InstRW<[C1NanoWrite_4c_1VALU],
+def : InstRW<[C1NanoStreamingSchedWrite<C1NanoWrite_4c_1CMEPERMF_1rc,
+                                        C1NanoWrite_4c_1VALU>],
              (instregex "^CLAST[AB]_[VZ]PZ_[BHSD]",
----------------
walkerkd wrote:

Fixed

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


More information about the llvm-commits mailing list