@@ -439,7 +439,7 @@ def FeatureSVEB16B16: ExtensionWithMArch<"sve-b16b16", "SVEB16B16", "FEAT_SVE_B1
439439 "Enable SVE2 non-widening and SME2 Z-targeting non-widening BFloat16 instructions">;
440440
441441def FeatureSMEB16B16 : ExtensionWithMArch<"sme-b16b16", "SMEB16B16", "FEAT_SME_B16B16",
442- "Enable SME2.1 ZA-targeting non-widening BFloat16 instructions",
442+ "Enable SME2.1 ZA-targeting non-widening BFloat16 instructions",
443443 [FeatureSME2, FeatureSVEB16B16]>;
444444
445445def FeatureSMEF16F16 : ExtensionWithMArch<"sme-f16f16", "SMEF16F16", "FEAT_SME_F16F16",
@@ -478,10 +478,10 @@ def FeatureFAMINMAX: ExtensionWithMArch<"faminmax", "FAMINMAX", "FEAT_FAMINMAX",
478478
479479def FeatureLUT: ExtensionWithMArch<"lut", "LUT", "FEAT_LUT",
480480 "Enable Lookup Table instructions">;
481-
481+
482482def FeatureFP8 : ExtensionWithMArch<"fp8", "FP8", "FEAT_FP8",
483483 "Enable FP8 instructions", [FeatureFAMINMAX, FeatureLUT, FeatureBF16]>;
484-
484+
485485def FeatureFP8FMA : ExtensionWithMArch<"fp8fma", "FP8FMA", "FEAT_FP8FMA",
486486 "Enable Armv9.5-A FP8 multiply-add instructions", [FeatureFP8]>;
487487
@@ -490,7 +490,7 @@ def FeatureSSVE_FP8FMA : ExtensionWithMArch<"ssve-fp8fma", "SSVE_FP8FMA", "FEAT_
490490
491491def FeatureFP8DOT4: ExtensionWithMArch<"fp8dot4", "FP8DOT4", "FEAT_FP8DOT4",
492492 "Enable FP8 4-way dot instructions", [FeatureFP8FMA]>;
493-
493+
494494def FeatureFP8DOT2: ExtensionWithMArch<"fp8dot2", "FP8DOT2", "FEAT_FP8DOT2",
495495 "Enable FP8 2-way dot instructions", [FeatureFP8DOT4]>;
496496
@@ -555,6 +555,14 @@ def FeatureSVEBFSCALE: ExtensionWithMArch<"sve-bfscale", "SVE_BFSCALE", "FEAT_SV
555555
556556def FeatureSVE_F16F32MM: ExtensionWithMArch<"sve-f16f32mm", "SVE_F16F32MM", "FEAT_SVE_F16F32MM",
557557 "Enable Armv9.6-A FP16 to FP32 Matrix Multiply instructions">;
558+ def FeatureLSUI: ExtensionWithMArch<"lsui", "LSUI", "FEAT_LSUI",
559+ "Enable Armv9.6-A unprivileged load/store instructions">;
560+
561+ def FeatureOCCMO: ExtensionWithMArch<"occmo", "OCCMO", "FEAT_OCCMO",
562+ "Enable Armv9.6-A Outer cacheable cache maintenance operations">;
563+
564+ def FeaturePCDPHINT: ExtensionWithMArch<"pcdphint", "PCDPHINT", "FEAT_PCDPHINT",
565+ "Enable Armv9.6-A Producer Consumer Data Placement hints">;
558566
559567//===----------------------------------------------------------------------===//
560568// Other Features
@@ -866,8 +874,9 @@ def HasV9_5aOps : Architecture64<9, 5, "a", "v9.5a",
866874 [HasV9_4aOps, FeatureCPA],
867875 !listconcat(HasV9_4aOps.DefaultExts, [FeatureCPA, FeatureLUT, FeatureFAMINMAX])>;
868876def HasV9_6aOps : Architecture64<9, 6, "a", "v9.6a",
869- [HasV9_5aOps, FeatureCMPBR, FeatureFPRCVT, FeatureSVE2p2],
870- !listconcat(HasV9_5aOps.DefaultExts, [FeatureCMPBR, FeatureFPRCVT, FeatureSVE2p2])>;
877+ [HasV9_5aOps, FeatureCMPBR, FeatureFPRCVT, FeatureSVE2p2, FeatureLSUI, FeatureOCCMO],
878+ !listconcat(HasV9_5aOps.DefaultExts, [FeatureCMPBR, FeatureFPRCVT, FeatureSVE2p2,
879+ FeatureLSUI, FeatureOCCMO])>;
871880def HasV8_0rOps : Architecture64<8, 0, "r", "v8r",
872881 [ //v8.1
873882 FeatureCRC, FeaturePAN, FeatureLSE, FeatureCONTEXTIDREL2,
0 commit comments