diff options
author | Guray Ozen <guray.ozen@gmail.com> | 2024-01-05 14:41:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-05 14:41:44 +0100 |
commit | 06f1e10908e624c1e90a0c647e9f74826ad3f011 (patch) | |
tree | b707f1ab763305092dcb5f20b16f77d74b4cb9a2 | |
parent | ae81400a0fad6040483f1af5947388aecca5c3f7 (diff) |
[mlir][nvvm] Add clock and clock64 special registers (#77088)
Tihs PR adds `clock` and `clock64` special registers to NVVM dialect.
-rw-r--r-- | mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td | 5 | ||||
-rw-r--r-- | mlir/test/Target/LLVMIR/nvvmir.mlir | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td index 57986f291de7..52857164ffaf 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td @@ -157,6 +157,11 @@ def NVVM_ClusterId : NVVM_SpecialRegisterOp<"read.ptx.sreg.cluster.ctarank">; def NVVM_ClusterDim : NVVM_SpecialRegisterOp<"read.ptx.sreg.cluster.nctarank">; //===----------------------------------------------------------------------===// +// Clock registers +def NVVM_ClockOp : NVVM_SpecialRegisterOp<"read.ptx.sreg.clock">; +def NVVM_Clock64Op : NVVM_SpecialRegisterOp<"read.ptx.sreg.clock64">; + +//===----------------------------------------------------------------------===// // NVVM approximate op definitions //===----------------------------------------------------------------------===// diff --git a/mlir/test/Target/LLVMIR/nvvmir.mlir b/mlir/test/Target/LLVMIR/nvvmir.mlir index 3fed2c24b314..6076fce598fb 100644 --- a/mlir/test/Target/LLVMIR/nvvmir.mlir +++ b/mlir/test/Target/LLVMIR/nvvmir.mlir @@ -58,6 +58,10 @@ llvm.func @nvvm_special_regs() -> i32 { %27 = nvvm.read.ptx.sreg.cluster.ctarank : i32 // CHECK: call i32 @llvm.nvvm.read.ptx.sreg.cluster.nctarank %28 = nvvm.read.ptx.sreg.cluster.nctarank : i32 + // CHECK: call i32 @llvm.nvvm.read.ptx.sreg.clock + %29 = nvvm.read.ptx.sreg.clock : i32 + // CHECK: call i64 @llvm.nvvm.read.ptx.sreg.clock64 + %30 = nvvm.read.ptx.sreg.clock64 : i64 llvm.return %1 : i32 } |