Skip to content

Commit

Permalink
[mlir] Clean up NVVM intrinsics definitions a little.
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D82750
  • Loading branch information
Stephan Herhut committed Jun 29, 2020
1 parent 1f228e5 commit 67ecd7e
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
Expand Up @@ -33,16 +33,25 @@ class NVVM_Op<string mnemonic, list<OpTrait> traits = []> :
LLVM_OpBase<NVVM_Dialect, mnemonic, traits> {
}

//===----------------------------------------------------------------------===//
// NVVM intrinsic operations
//===----------------------------------------------------------------------===//

class NVVM_IntrOp<string mnem, list<int> overloadedResults,
list<int> overloadedOperands, list<OpTrait> traits,
bit hasResult>
: LLVM_IntrOpBase<NVVM_Dialect, mnem, "nvvm_" # !subst(".", "_", mnem),
overloadedResults, overloadedOperands, traits, hasResult>;


//===----------------------------------------------------------------------===//
// NVVM special register op definitions
//===----------------------------------------------------------------------===//

class NVVM_SpecialRegisterOp<string mnemonic,
list<OpTrait> traits = []> :
NVVM_Op<mnemonic, !listconcat(traits, [NoSideEffect])>,
Results<(outs LLVM_Type:$res)>, Arguments<(ins)> {
string llvmBuilder = "$res = createIntrinsicCall(builder,"
# "llvm::Intrinsic::nvvm_" # !subst(".","_", mnemonic) # ");";
NVVM_IntrOp<mnemonic, [], [], !listconcat(traits, [NoSideEffect]), 1>,
Arguments<(ins)> {
let assemblyFormat = "attr-dict `:` type($res)";
}

Expand Down

0 comments on commit 67ecd7e

Please sign in to comment.