Skip to content

Commit 4aaf47e

Browse files
authored
AMDGPU: Fix mis-selecting saddr flat atomics on gfx9 (#156860)
This would select the pseudo and then crash when the MC instruction was used. I believe this has been broken since 9912ccb
1 parent 820f440 commit 4aaf47e

File tree

3 files changed

+7832
-76
lines changed

3 files changed

+7832
-76
lines changed

llvm/lib/Target/AMDGPU/AMDGPU.td

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,15 @@ def FeatureFlatInstOffsets : SubtargetFeature<"flat-inst-offsets",
6868
def FeatureFlatGlobalInsts : SubtargetFeature<"flat-global-insts",
6969
"FlatGlobalInsts",
7070
"true",
71-
"Have global_* flat memory instructions"
71+
"Have global_* flat memory instructions",
72+
[FeatureFlatAddressSpace]
7273
>;
7374

7475
def FeatureFlatScratchInsts : SubtargetFeature<"flat-scratch-insts",
7576
"FlatScratchInsts",
7677
"true",
77-
"Have scratch_* flat memory instructions"
78+
"Have scratch_* flat memory instructions",
79+
[FeatureFlatAddressSpace]
7880
>;
7981

8082
def FeatureScalarFlatScratchInsts : SubtargetFeature<"scalar-flat-scratch-insts",
@@ -92,7 +94,8 @@ def FeatureEnableFlatScratch : SubtargetFeature<"enable-flat-scratch",
9294
def FeatureFlatGVSMode : SubtargetFeature<"flat-gvs-mode",
9395
"FlatGVSMode",
9496
"true",
95-
"Have GVS addressing mode with flat_* instructions"
97+
"Have GVS addressing mode with flat_* instructions",
98+
[FeatureFlatAddressSpace]
9699
>;
97100

98101
def FeatureAddNoCarryInsts : SubtargetFeature<"add-no-carry-insts",
@@ -934,13 +937,15 @@ def FeatureAtomicFMinFMaxF64GlobalInsts : SubtargetFeature<"atomic-fmin-fmax-glo
934937
def FeatureAtomicFMinFMaxF32FlatInsts : SubtargetFeature<"atomic-fmin-fmax-flat-f32",
935938
"HasAtomicFMinFMaxF32FlatInsts",
936939
"true",
937-
"Has flat memory instructions for atomicrmw fmin/fmax for float"
940+
"Has flat memory instructions for atomicrmw fmin/fmax for float",
941+
[FeatureFlatAddressSpace]
938942
>;
939943

940944
def FeatureAtomicFMinFMaxF64FlatInsts : SubtargetFeature<"atomic-fmin-fmax-flat-f64",
941945
"HasAtomicFMinFMaxF64FlatInsts",
942946
"true",
943-
"Has flat memory instructions for atomicrmw fmin/fmax for double"
947+
"Has flat memory instructions for atomicrmw fmin/fmax for double",
948+
[FeatureFlatAddressSpace]
944949
>;
945950

946951
def FeatureAtomicFaddNoRtnInsts : SubtargetFeature<"atomic-fadd-no-rtn-insts",
@@ -992,7 +997,8 @@ def FeatureFlatAtomicFaddF32Inst
992997
: SubtargetFeature<"flat-atomic-fadd-f32-inst",
993998
"HasFlatAtomicFaddF32Inst",
994999
"true",
995-
"Has flat_atomic_add_f32 instruction"
1000+
"Has flat_atomic_add_f32 instruction",
1001+
[FeatureFlatAddressSpace]
9961002
>;
9971003

9981004
def FeatureFlatBufferGlobalAtomicFaddF64Inst

0 commit comments

Comments
 (0)