[llvm] 3ca428c - [AMDGPU][True16] Add VOP1Inst_t16_with_profiles class (#92184)
via llvm-commits
llvm-commits at lists.llvm.org
Tue May 14 15:29:19 PDT 2024
Author: Joe Nash
Date: 2024-05-14T18:29:16-04:00
New Revision: 3ca428c090624d3cfc530144da6dcd3abfd9ea63
URL: https://github.com/llvm/llvm-project/commit/3ca428c090624d3cfc530144da6dcd3abfd9ea63
DIFF: https://github.com/llvm/llvm-project/commit/3ca428c090624d3cfc530144da6dcd3abfd9ea63.diff
LOG: [AMDGPU][True16] Add VOP1Inst_t16_with_profiles class (#92184)
NFC. Makes the VOP1Inst_t16 interface more generic to support future
instructions cleanly.
Added:
Modified:
llvm/lib/Target/AMDGPU/VOP1Instructions.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/VOP1Instructions.td b/llvm/lib/Target/AMDGPU/VOP1Instructions.td
index 4a56fad0cd603..b875ddc62a7a0 100644
--- a/llvm/lib/Target/AMDGPU/VOP1Instructions.td
+++ b/llvm/lib/Target/AMDGPU/VOP1Instructions.td
@@ -153,20 +153,26 @@ multiclass VOP1Inst <string opName, VOPProfile P,
def : LetDummies, AMDGPUMnemonicAlias<opName#"_dpp", opName, AMDGPUAsmVariants.DPP>;
}
-multiclass VOP1Inst_t16<string opName,
+multiclass VOP1Inst_t16_with_profiles<string opName,
VOPProfile P,
+ VOPProfile P_t16,
+ VOPProfile P_fake16,
SDPatternOperator node = null_frag> {
let OtherPredicates = [NotHasTrue16BitInsts, Has16BitInsts] in {
defm NAME : VOP1Inst<opName, P, node>;
}
let OtherPredicates = [UseRealTrue16Insts] in {
- defm _t16 : VOP1Inst<opName#"_t16", VOPProfile_True16<P>, node>;
+ defm _t16 : VOP1Inst<opName#"_t16", P_t16, node>;
}
let OtherPredicates = [UseFakeTrue16Insts] in {
- defm _fake16 : VOP1Inst<opName#"_fake16", VOPProfile_Fake16<P>, node>;
+ defm _fake16 : VOP1Inst<opName#"_fake16", P_fake16, node>;
}
}
+multiclass VOP1Inst_t16<string opName, VOPProfile P,
+ SDPatternOperator node = null_frag> :
+ VOP1Inst_t16_with_profiles<opName, P, VOPProfile_True16<P>, VOPProfile_Fake16<P>, node>;
+
// Special profile for instructions which have clamp
// and output modifiers (but have no input modifiers)
class VOPProfileI2F<ValueType dstVt, ValueType srcVt> :
More information about the llvm-commits
mailing list