forked from OSchip/llvm-project
[mlir][spirv] Add base classes for vendor ops
This is the first patch in the series to rename vendor ops from `spv.NameVENDOR` to `spv.VENDOR.Name`. The goal is to make the SPIR-V dialect more internally consistent. Issue: https://github.com/llvm/llvm-project/issues/56863
This commit is contained in:
parent
94c6dfbaeb
commit
6a378b38ff
|
@ -4541,4 +4541,28 @@ class SPV_ExtInstOp<string mnemonic, string setPrefix, string setName,
|
|||
string extendedInstSetName = setName;
|
||||
}
|
||||
|
||||
// Base classes for SPIR-V vendor ops. These have opcode in the form of
|
||||
// Op<Name><VENDOR>, e.g., OpCooperativeMatrixStoreNV.
|
||||
class SPV_VendorOp<string mnemonic, string vendorName,
|
||||
list<Trait> traits = []> :
|
||||
SPV_Op<mnemonic # vendorName, traits> {
|
||||
string spirvOpName = "Op" # mnemonic # vendorName;
|
||||
}
|
||||
|
||||
class SPV_ExtVendorOp<string mnemonic, list<Trait> traits = []> :
|
||||
SPV_VendorOp<mnemonic, "EXT", traits> {
|
||||
}
|
||||
|
||||
class SPV_KhrVendorOp<string mnemonic, list<Trait> traits = []> :
|
||||
SPV_VendorOp<mnemonic, "KHR", traits> {
|
||||
}
|
||||
|
||||
class SPV_IntelVendorOp<string mnemonic, list<Trait> traits = []> :
|
||||
SPV_VendorOp<mnemonic, "INTEL", traits> {
|
||||
}
|
||||
|
||||
class SPV_NvVendorOp<string mnemonic, list<Trait> traits = []> :
|
||||
SPV_VendorOp<mnemonic, "NV", traits> {
|
||||
}
|
||||
|
||||
#endif // MLIR_DIALECT_SPIRV_IR_BASE
|
||||
|
|
Loading…
Reference in New Issue