@@ -67,6 +67,12 @@ def ExtensionHVXV73: SubtargetFeature<"hvxv73", "HexagonHVXVersion",
6767 [ExtensionHVXV60, ExtensionHVXV62, ExtensionHVXV65, ExtensionHVXV66,
6868 ExtensionHVXV67, ExtensionHVXV68, ExtensionHVXV69, ExtensionHVXV71]>;
6969
70+ def ExtensionHVXV75: SubtargetFeature<"hvxv75", "HexagonHVXVersion",
71+ "Hexagon::ArchEnum::V75", "Hexagon HVX instructions",
72+ [ExtensionHVXV60, ExtensionHVXV62, ExtensionHVXV65, ExtensionHVXV66,
73+ ExtensionHVXV67, ExtensionHVXV68, ExtensionHVXV69, ExtensionHVXV71,
74+ ExtensionHVXV73]>;
75+
7076def ExtensionHVX64B: SubtargetFeature<"hvx-length64b", "UseHVX64BOps",
7177 "true", "Hexagon HVX 64B instructions", [ExtensionHVX]>;
7278def ExtensionHVX128B: SubtargetFeature<"hvx-length128b", "UseHVX128BOps",
@@ -137,6 +143,8 @@ def UseHVXV71 : Predicate<"HST->useHVXV71Ops()">,
137143 AssemblerPredicate<(all_of ExtensionHVXV71)>;
138144def UseHVXV73 : Predicate<"HST->useHVXV73Ops()">,
139145 AssemblerPredicate<(all_of ExtensionHVXV73)>;
146+ def UseHVXV75 : Predicate<"HST->useHVXV75Ops()">,
147+ AssemblerPredicate<(all_of ExtensionHVXV75)>;
140148def UseAudio : Predicate<"HST->useAudioOps()">,
141149 AssemblerPredicate<(all_of ExtensionAudio)>;
142150def UseZReg : Predicate<"HST->useZRegOps()">,
@@ -462,6 +470,12 @@ def : Proc<"hexagonv73", HexagonModelV73,
462470 ArchV68, ArchV69, ArchV71, ArchV73,
463471 FeatureCompound, FeatureDuplex, FeatureMemNoShuf, FeatureMemops,
464472 FeatureNVJ, FeatureNVS, FeaturePackets, FeatureSmallData]>;
473+ def : Proc<"hexagonv75", HexagonModelV75,
474+ [ArchV5, ArchV55, ArchV60, ArchV62, ArchV65, ArchV66, ArchV67,
475+ ArchV68, ArchV69, ArchV71, ArchV73, ArchV75, FeatureCompound,
476+ FeatureDuplex, FeatureMemNoShuf, FeatureMemops, FeatureNVJ,
477+ FeatureNVS, FeaturePackets, FeatureSmallData]>;
478+
465479// Need to update the correct features for tiny core.
466480// Disable NewValueJumps since the packetizer is unable to handle a packet with
467481// a new value jump and another SLOT0 instruction.
0 commit comments