Skip to content

Commit 06f1e10

Browse files
authored
[mlir][nvvm] Add clock and clock64 special registers (llvm#77088)
Tihs PR adds `clock` and `clock64` special registers to NVVM dialect.
1 parent ae81400 commit 06f1e10

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,11 @@ def NVVM_GridInClusterDimZOp : NVVM_SpecialRegisterOp<"read.ptx.sreg.cluster.nct
156156
def NVVM_ClusterId : NVVM_SpecialRegisterOp<"read.ptx.sreg.cluster.ctarank">;
157157
def NVVM_ClusterDim : NVVM_SpecialRegisterOp<"read.ptx.sreg.cluster.nctarank">;
158158

159+
//===----------------------------------------------------------------------===//
160+
// Clock registers
161+
def NVVM_ClockOp : NVVM_SpecialRegisterOp<"read.ptx.sreg.clock">;
162+
def NVVM_Clock64Op : NVVM_SpecialRegisterOp<"read.ptx.sreg.clock64">;
163+
159164
//===----------------------------------------------------------------------===//
160165
// NVVM approximate op definitions
161166
//===----------------------------------------------------------------------===//

mlir/test/Target/LLVMIR/nvvmir.mlir

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ llvm.func @nvvm_special_regs() -> i32 {
5858
%27 = nvvm.read.ptx.sreg.cluster.ctarank : i32
5959
// CHECK: call i32 @llvm.nvvm.read.ptx.sreg.cluster.nctarank
6060
%28 = nvvm.read.ptx.sreg.cluster.nctarank : i32
61+
// CHECK: call i32 @llvm.nvvm.read.ptx.sreg.clock
62+
%29 = nvvm.read.ptx.sreg.clock : i32
63+
// CHECK: call i64 @llvm.nvvm.read.ptx.sreg.clock64
64+
%30 = nvvm.read.ptx.sreg.clock64 : i64
6165

6266
llvm.return %1 : i32
6367
}

0 commit comments

Comments
 (0)