[PATCH] D90250: [AMDGPU] Change predicate for fma/fmac legacy
Stanislav Mekhanoshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 27 10:03:56 PDT 2020
rampitec created this revision.
rampitec added a reviewer: foad.
Herald added subscribers: kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl, arsenm.
Herald added a project: LLVM.
rampitec requested review of this revision.
Herald added a subscriber: wdng.
I do not exactly like the use of a negative predicate to
enable instructions' support. Change HasNoMadMacF32Insts
with isGFX10_3Plus.
https://reviews.llvm.org/D90250
Files:
llvm/lib/Target/AMDGPU/AMDGPU.td
llvm/lib/Target/AMDGPU/SIInstructions.td
llvm/lib/Target/AMDGPU/VOP2Instructions.td
llvm/lib/Target/AMDGPU/VOP3Instructions.td
Index: llvm/lib/Target/AMDGPU/VOP3Instructions.td
===================================================================
--- llvm/lib/Target/AMDGPU/VOP3Instructions.td
+++ llvm/lib/Target/AMDGPU/VOP3Instructions.td
@@ -297,7 +297,7 @@
def V_MAD_F32 : VOP3Inst <"v_mad_f32", VOP3_Profile<VOP_F32_F32_F32_F32>, fmad>;
} // End SubtargetPredicate = HasMadMacInsts
-let SubtargetPredicate = HasNoMadMacF32Insts in
+let SubtargetPredicate = isGFX10_3Plus in
def V_FMA_LEGACY_F32 : VOP3Inst <"v_fma_legacy_f32",
VOP3_Profile<VOP_F32_F32_F32_F32>,
int_amdgcn_fma_legacy>;
Index: llvm/lib/Target/AMDGPU/VOP2Instructions.td
===================================================================
--- llvm/lib/Target/AMDGPU/VOP2Instructions.td
+++ llvm/lib/Target/AMDGPU/VOP2Instructions.td
@@ -679,7 +679,7 @@
} // End SubtargetPredicate = HasDLInsts
-let SubtargetPredicate = HasNoMadMacF32Insts in {
+let SubtargetPredicate = isGFX10_3Plus in {
let Constraints = "$vdst = $src2",
DisableEncoding = "$src2",
@@ -687,7 +687,7 @@
isCommutable = 1 in
defm V_FMAC_LEGACY_F32 : VOP2Inst <"v_fmac_legacy_f32", VOP_MAC_LEGACY_F32>;
-} // End SubtargetPredicate = HasNoMadMacF32Insts
+} // End SubtargetPredicate = isGFX10_3Plus
let Constraints = "$vdst = $src2",
DisableEncoding="$src2",
Index: llvm/lib/Target/AMDGPU/SIInstructions.td
===================================================================
--- llvm/lib/Target/AMDGPU/SIInstructions.td
+++ llvm/lib/Target/AMDGPU/SIInstructions.td
@@ -897,7 +897,7 @@
// Don't allow source modifiers. If there are any source modifiers then it's
// better to select fma instead of fmac.
-let SubtargetPredicate = HasNoMadMacF32Insts in
+let SubtargetPredicate = isGFX10_3Plus in
def : GCNPat <
(f32 (int_amdgcn_fma_legacy (VOP3NoMods f32:$src0),
(VOP3NoMods f32:$src1),
Index: llvm/lib/Target/AMDGPU/AMDGPU.td
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPU.td
+++ llvm/lib/Target/AMDGPU/AMDGPU.td
@@ -1125,6 +1125,9 @@
Predicate<"Subtarget->getGeneration() >= AMDGPUSubtarget::GFX10">,
AssemblerPredicate<(all_of FeatureGFX10Insts)>;
+def isGFX10_3Plus : Predicate<"Subtarget->hasGFX10_3Insts()">,
+ AssemblerPredicate<(any_of FeatureGFX10_3Insts)>;
+
def HasFlatAddressSpace : Predicate<"Subtarget->hasFlatAddressSpace()">,
AssemblerPredicate<(all_of FeatureFlatAddressSpace)>;
@@ -1272,9 +1275,6 @@
def HasAtomicFaddInsts : Predicate<"Subtarget->hasAtomicFaddInsts()">,
AssemblerPredicate<(all_of FeatureAtomicFaddInsts)>;
-def HasNoMadMacF32Insts : Predicate<"!Subtarget->hasMadMacF32Insts()">,
- AssemblerPredicate<(all_of (not FeatureMadMacF32Insts))>;
-
def HasDsSrc2Insts : Predicate<"!Subtarget->hasDsSrc2Insts()">,
AssemblerPredicate<(all_of FeatureDsSrc2Insts)>;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90250.301046.patch
Type: text/x-patch
Size: 2930 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201027/212c37db/attachment-0001.bin>
More information about the llvm-commits
mailing list