Skip to content

Commit fb8d23b

Browse files
committed
[AMDGPU] Define new feature HasFlatScratchSVSMode. NFC.
This is by analogy with HasFlatScratchSTMode and is slightly more informative than using isGFX940Plus. Differential Revision: https://reviews.llvm.org/D121804
1 parent e0aefb4 commit fb8d23b

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

llvm/lib/Target/AMDGPU/AMDGPU.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,8 @@ def HasD16LoadStore : Predicate<"Subtarget->hasD16LoadStore()">,
13961396

13971397
def HasFlatScratchSTMode : Predicate<"Subtarget->hasFlatScratchSTMode()">,
13981398
AssemblerPredicate<(any_of FeatureGFX10_3Insts, FeatureGFX940Insts)>;
1399+
def HasFlatScratchSVSMode : Predicate<"Subtarget->hasFlatScratchSVSMode()">,
1400+
AssemblerPredicate<(any_of FeatureGFX940Insts)>;
13991401

14001402
def HasGFX10_AEncoding : Predicate<"Subtarget->hasGFX10_AEncoding()">,
14011403
AssemblerPredicate<(all_of FeatureGFX10_AEncoding)>;

llvm/lib/Target/AMDGPU/FLATInstructions.td

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ multiclass FLAT_Scratch_Load_Pseudo<string opName, RegisterClass regClass, bit H
366366
def _SADDR : FLAT_Scratch_Load_Pseudo<opName, regClass, HasTiedOutput, 1>,
367367
FlatScratchInst<opName, "SS">;
368368

369-
let SubtargetPredicate = isGFX940Plus in
369+
let SubtargetPredicate = HasFlatScratchSVSMode in
370370
def _SVS : FLAT_Scratch_Load_Pseudo<opName, regClass, HasTiedOutput, 1, 1>,
371371
FlatScratchInst<opName, "SVS">;
372372

@@ -383,7 +383,7 @@ multiclass FLAT_Scratch_Store_Pseudo<string opName, RegisterClass regClass> {
383383
def _SADDR : FLAT_Scratch_Store_Pseudo<opName, regClass, 1>,
384384
FlatScratchInst<opName, "SS">;
385385

386-
let SubtargetPredicate = isGFX940Plus in
386+
let SubtargetPredicate = HasFlatScratchSVSMode in
387387
def _SVS : FLAT_Scratch_Store_Pseudo<opName, regClass, 1, 1>,
388388
FlatScratchInst<opName, "SVS">;
389389

@@ -1272,7 +1272,7 @@ multiclass ScratchFLATLoadPats<FLAT_Pseudo inst, SDPatternOperator node, ValueTy
12721272
}
12731273

12741274
def : ScratchLoadSVaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SVS"), node, vt> {
1275-
let SubtargetPredicate = isGFX940Plus;
1275+
let SubtargetPredicate = HasFlatScratchSVSMode;
12761276
let AddedComplexity = 27;
12771277
}
12781278
}
@@ -1288,7 +1288,7 @@ multiclass ScratchFLATStorePats<FLAT_Pseudo inst, SDPatternOperator node,
12881288
}
12891289

12901290
def : ScratchStoreSVaddrPat<!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SVS"), node, vt> {
1291-
let SubtargetPredicate = isGFX940Plus;
1291+
let SubtargetPredicate = HasFlatScratchSVSMode;
12921292
let AddedComplexity = 27;
12931293
}
12941294
}
@@ -1303,7 +1303,7 @@ multiclass ScratchFLATLoadPats_D16<FLAT_Pseudo inst, SDPatternOperator node, Val
13031303
}
13041304

13051305
def : ScratchLoadSVaddrPat_D16 <!cast<FLAT_Pseudo>(!cast<string>(inst)#"_SVS"), node, vt> {
1306-
let SubtargetPredicate = isGFX940Plus;
1306+
let SubtargetPredicate = HasFlatScratchSVSMode;
13071307
let AddedComplexity = 27;
13081308
}
13091309
}

llvm/lib/Target/AMDGPU/GCNSubtarget.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,8 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo,
571571
return hasFlatScratchInsts() && (hasGFX10_3Insts() || hasGFX940Insts());
572572
}
573573

574+
bool hasFlatScratchSVSMode() const { return GFX940Insts; }
575+
574576
bool hasScalarFlatScratchInsts() const {
575577
return ScalarFlatScratchInsts;
576578
}

0 commit comments

Comments
 (0)