Skip to content

Commit ff70aa0

Browse files
committed
[MLIR][NVVM] Enable import of nvvm.barrier0
1 parent 0100c63 commit ff70aa0

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,13 @@ class NVVM_Attr<string attrName, string attrMnemonic, list<Trait> traits = []>
117117
// NVVM intrinsic operations
118118
//===----------------------------------------------------------------------===//
119119

120-
class NVVM_IntrOp<string mnem, list<Trait> traits,
121-
int numResults>
120+
class NVVM_IntrOp<string mnem, list<Trait> traits = [],
121+
int numResults = 0>
122122
: LLVM_IntrOpBase<NVVM_Dialect, mnem, "nvvm_" # !subst(".", "_", mnem),
123123
/*list<int> overloadedResults=*/[],
124124
/*list<int> overloadedOperands=*/[],
125125
traits, numResults>;
126126

127-
128127
//===----------------------------------------------------------------------===//
129128
// NVVM special register op definitions
130129
//===----------------------------------------------------------------------===//
@@ -431,7 +430,7 @@ def NVVM_MBarrierTestWaitSharedOp : NVVM_Op<"mbarrier.test.wait.shared">,
431430
// NVVM synchronization op definitions
432431
//===----------------------------------------------------------------------===//
433432

434-
def NVVM_Barrier0Op : NVVM_Op<"barrier0"> {
433+
def NVVM_Barrier0Op : NVVM_IntrOp<"barrier0"> {
435434
string llvmBuilder = [{
436435
createIntrinsicCall(builder, llvm::Intrinsic::nvvm_barrier0);
437436
}];

mlir/test/Target/LLVMIR/Import/nvvmir.ll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,13 @@ define float @nvvm_rcp(float %0) {
7171
ret float %2
7272
}
7373

74-
; TODO: Support the intrinsics below once they derive from NVVM_IntrOp rather than from NVVM_Op.
74+
define void @llvm_nvvm_barrier0() {
75+
call void @llvm.nvvm.barrier0()
76+
ret void
77+
}
7578

76-
; define void @llvm_nvvm_barrier0() {
77-
; call void @llvm.nvvm.barrier0()
78-
; ret void
79-
; }
79+
80+
; TODO: Support the intrinsics below once they derive from NVVM_IntrOp rather than from NVVM_Op.
8081
;
8182
; define i32 @nvvm_shfl(i32 %0, i32 %1, i32 %2, i32 %3, float %4) {
8283
; %6 = call i32 @llvm.nvvm.shfl.sync.bfly.i32(i32 %0, i32 %3, i32 %1, i32 %2)

0 commit comments

Comments
 (0)