diff options
author | Joseph Huber <huberjn@outlook.com> | 2024-01-29 14:07:58 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-29 14:07:58 -0600 |
commit | 5f12cc912ac90a2511f2a53c45dc9250945da18c (patch) | |
tree | b571689488fd4561de2ba3df847651f6873d1901 /llvm/lib/Target/NVPTX | |
parent | d492faa7aa995aedac41e1f86aaf42dc5b43db54 (diff) | |
download | llvm-5f12cc912ac90a2511f2a53c45dc9250945da18c.zip llvm-5f12cc912ac90a2511f2a53c45dc9250945da18c.tar.gz llvm-5f12cc912ac90a2511f2a53c45dc9250945da18c.tar.bz2 |
[NVPTX] Add builtin support for 'nanosleep' PTX instrunction (#79888)
Summary:
This patch adds a builtin for the `nanosleep` PTX function. It takes
either an immediate or a register and sleeps for [0, 2t] nanoseconds
given t. More information at the documentation:
https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#miscellaneous-instructions-nanosleep
Diffstat (limited to 'llvm/lib/Target/NVPTX')
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXIntrinsics.td | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td b/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td index 2df9315..c6f89f1 100644 --- a/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td +++ b/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td @@ -640,6 +640,12 @@ class F_MATH_3<string OpcStr, NVPTXRegClass t_regclass, def INT_NVVM_PRMT : F_MATH_3<"prmt.b32 \t$dst, $src0, $src1, $src2;", Int32Regs, Int32Regs, Int32Regs, Int32Regs, int_nvvm_prmt>; +def INT_NVVM_NANOSLEEP_I : NVPTXInst<(outs), (ins i32imm:$i), "nanosleep.u32 \t$i;", + [(int_nvvm_nanosleep imm:$i)]>, + Requires<[hasPTX<63>, hasSM<70>]>; +def INT_NVVM_NANOSLEEP_R : NVPTXInst<(outs), (ins Int32Regs:$i), "nanosleep.u32 \t$i;", + [(int_nvvm_nanosleep Int32Regs:$i)]>, + Requires<[hasPTX<63>, hasSM<70>]>; // // Min Max // |